Projet de la snake+.....

achraf.mouni

  • Hero Member
  • *****
    • مشاركة: 2439
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
في: نيسـان 29, 2009, 09:47:28 مسائاً
Projet de la snake

                                                                                                                                   
       
       
snake en C
               
                 

                 Snake Game
#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#include<string.h>
class Snake
{
 
int p1,p2,v1,v2,v3,e1,e2,prev,now,n,colr,dsp,cnt,dly,m;
 
int stp,egGen;
 
int xr,yr;
 
void caught();
 public:
  
long scr;
 
int strtX,strtY,endX,endY;
 
int pos[100][2];
 
void show();
 
void init();
 
void egg();
 
void transpose();
 
void gnrtCond();
 
void gnrtUnCond();
 
void check();
 
void checkEgg();
 
void move();
 
void chngDir();
 
void sndEt();
 
void sndCgt();
 
int test();
 
void score();
 
Snake();
 
Snake(Snake*);
 ~
Snake();
 };
Snake::Snake()
 {
 }
Snake::~Snake()
{
}
void Snake::checkEgg()
{
 if((
e1 == p1) && (e2 == p2))
 {
sndEt();
  
egg();
  
dly--;
  
score();
  
n++;
  }
}
void Snake::sndEt()
{
nosound();
 
sound(2500);
 
delay(2);
 
nosound();
}
void Snake::sndCgt()
{
nosound();
 for(
int x=1000;x>0;x--)
 {
sound(x);
  
delay(1);
  }
 
nosound();
}
void Snake::score()
char *p;
  
ltoa(scr,p,10);
  
settextstyle(8,0,1);
  
setcolor(0);
  
outtextxy(585,40,p);
  if(
egGen != 1){
  
scr scr dly 10;
  }
  
ltoa(scr,p,10);
  
setcolor(10);
  
outtextxy(585,40,p);
}
void Snake::gnrtCond()
{if(
367)
 {if(
now == && (prev != && prev != 2))
  {
pos[0][0] = p1;
   
pos[0][1] = p2 dsp;
   
prev now;
   }
  if(
now == && (prev != && prev != 1))
  {
pos[0][0] = p1 dsp;
   
pos[0][1] = p2;
   
prev now;
   }
  if(
now == && (prev != && prev != 2))
  {
pos[0][0] = p1;
   
pos[0][1] = p2 dsp;
   
prev now;
   }
  if(
now == && (prev != && prev != 4))
  {
pos[0][0] = p1 dsp;
   
pos[0][1] = p2;
   
prev now;
   }
}
}
void Snake::gnrtUnCond()
{
  if( 
prev == )
  {
pos[0][0] = p1;
   
pos[0][1] = p2 dsp;
   }
 if( 
prev == )
  {
pos[0][0] = p1 dsp;
   
pos[0][1] = p2;
   }
 if( 
prev == )
  {
pos[0][0] = p1;
   
pos[0][1] = p2 dsp;
   }
 if( 
prev == )
  {
pos[0][0] = p1 dsp;
   
pos[0][1] = p2;
   }
 
p1 pos[0][0];
 
p2 pos[0][1];
}
void Snake::check()
{
 if(
p1 endX)
  {
p1 strtX;}
 else if(
p1 strtX)
  {
p1 endX;}
 if(
p2 endY)
  {
p2 strtY;}
 else if(
p2 strtY)
  {
p2 endY;}
 
pos[0][0] = p1;
 
pos[0][1] = p2;
for(
int i 1;n;i++)
  { if(
p1 == pos[i][0] && p2 == pos[i][1])
  {
caught();
   break;
  }
 }
}
void Snake::show()
{
  
int x getcolor();
  if(
egGen != 1)
  {
  
setcolor(getbkcolor());
  
setfillstyle(1,getbkcolor());
  
fillellipse(v1,v2,yr,yr);
   }
  else
   
egGen 0;
  if(
egGen == 2)
   
egGen--;
  
setcolor(colr);
  
setfillstyle(1,9);
  if(
now == || now == 2)
   
fillellipse(pos[0][0],pos[0][1],xr,yr);
  else if(
now == || now == 1)
   
fillellipse(pos[0][0],pos[0][1],yr,xr);
  
setcolor(x);
}
void Snake::transpose()
int i,j,x,y;
   
p1 pos[0][0];
   
p2 pos[0][1];
   if(!
egGen){
   
v1 pos[n-1][0];
   
v2 pos[n-1][1];
   }
   else
    
egGen 0;
   for(
n-1;>= 1;i--)
   {
pos[i][0] = pos[i-1][0];
    
pos[i][1] = pos[i-1][1];
   }
}
void Snake::move()
int st 0;
  do{
   if(!
kbhit())
   {
checkEgg();
    if(!
st)
     
show();
    else
     
st 0;
    
delay(dly/4);
    
transpose();
    
delay(dly/4);
    
gnrtUnCond();
    
delay(dly/4);
    
check();
   
delay(dly/4);
    }
   else if(
stp){
   
chngDir();
   
gnrtCond();
   
check();
   
show();
   
st 1;
   }
   }while(
stp);
}
void Snake::init()
{
time_t tm;
 
srand(time(&tm));
 
dsp 20;
 
5;
 
prev 4;
 for(
int i 4;>= 0;i--)
 {
pos[i][0] = 201 + (1) * dsp;
  
pos[i][1] = 301;
  }
  
strtX 21;
  
strtY 21;
  
endX 481;
  
endY 361;
  
colr 14;
  
now prev;
  
dsp 20;
  
stp 111;
  
cnt = -1;
  
scr 0;
  
dly 150;
   
xr 3;
   
yr 9;
  
egg();
  
egGen 1;
  
score();
  
int x getcolor();
  
setlinestyle(0,1,3);
  
setcolor(15);
  
rectangle(strtX-15,strtY-15,endX+15,endY+15);
  
rectangle(endX+25,strtY-15,getmaxx()-15,endY+15);
  
rectangle(strtX-15,endY+25,getmaxx()-15,getmaxy()-5);
  
line(endX+25,strtY+75,getmaxx()-15,strtY+75);
  
line(endX+25,strtY+200,getmaxx()-15,strtY+200);
  
line(endX+25,strtY+275,getmaxx()-15,strtY+275);
  
setlinestyle(0,1,1);
  
settextstyle(8,0,1);
  
setcolor(11);
  
outtextxy(514,40,"SCORE");
  
setcolor(14);
  
settextstyle(11,0,5);
  
outtextxy(524,110," CONTROLS ");
  
outtextxy(522,135,"p = PAUSE");
  
outtextxy(522,155,"g = RESUME");
  
outtextxy(522,175,"e = EXIT");
  
outtextxy(513,195,"ARROWS");
  
outtextxy(512,205,"    -MOVEMENT");
  
setcolor(14);
  
settextstyle(4,0,9);
  
outtextxy(getmaxx()-500,getmaxy()-110,"SNAKE");
  
settextstyle(8,0,1);
  
setcolor(x);
}
void Snake::caught()
{
 
stp 0;
 
sndCgt();
for(
int i=0;i<=7;i++)
 {if(
i%2)
  {
setcolor(10);
   
outtextxy(512,250,"GAME OVER");
   
delay(900);
   }
  else
  {
setcolor(0);
   
outtextxy(512,250,"GAME OVER");
   
delay(500);
  }
  }
sleep(1);
}
void Snake::chngDir()
{
int clr;
 
fillsettingstype *p;
 
char x getch();
 if(
== 72)
  
now 8;
 else if(
== 77)
  
now 4;
 else if(
== 80)
  
now 2;
 else if(
== 75)
  
now 1;
 else if(
== 'e')
  
caught();
 else if(
== 'p')
 {
//int y = getcolor();
  
int twnkl 1;
  
settextstyle(11,0,9);
  while(
1)
  {if(
kbhit())
   {
int c getch();
    if(
== 'g')
    {
clr getcolor();
     
setcolor(0);
     
rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160);
     
outtextxy(endX+60,endY-29,"PAUSE");
     break;
     }
    }
   else
   {if(
twnkl%2)
    {
clr getcolor();
     
setcolor(10);
     
rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160);
     
outtextxy(endX+60,endY-29,"PAUSE");
     
setcolor(clr);
      
delay(1000);
     }
    else
    {
     
clr getcolor();
     
setcolor(0);
     
rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160);
     
outtextxy(endX+60,endY-29,"PAUSE");
     
delay(1000);
    }
   }
   
twnkl++;
  }
    
settextstyle(8,0,1);
 }
}
Snake::Snake(Snake *p)
{
 *
p=NULL;
}
void Snake::egg()
{ do
  {
e1 = (rand() % 100) * dsp strtX;
   
e2 = (rand() % 100) * dsp strtY;
   }while(
test());
  
int x getcolor();
  
setcolor(7);
  
setfillstyle(1,random(15)+1);
  
fillellipse(e1,e2,xr+2,xr+2);
  
setcolor(x);
  
egGen 2;
}
int Snake::test()
{ for(
int i=0;i<n;i++)
  {if(
e1 == pos[i][0] && e2 == pos[i][1])
    break;
   if(
v1 == e1 && v2 == e2)
    break;
   if((
e1 >= endX+1) || (e2 >= endY+1))
    break;
   }
 if(
!= n)
  return 
1;
 else
  return 
0;
}
void main()
{
Snake snk;
 
int gd=DETECT,gm,i,j,k,x,y;
 
clrscr();
 
initgraph(&gd,&gm,"E:\Turboc3");
 
snk.init();
 
snk.move();
 
closegraph();
 
restorecrtmode();
 }


******************************************

+
projet de calculatrice

      Calculatrice en JAVA
            
	
	
Calculatrice en JAVA 
	
	
	
	
 
	
	
	
	
 
	
	
	
	
 
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
 
 
public class 
Calculatrice extends JFrame {
 
        private 
JPanel container = new JPanel();
        
        
String[] tab_string = {"1""2""3""4""5""6""7""8""9""0"".""=""C""+""-""*""/"};
        
JButton[] tab_button = new JButton[tab_string.length];
        
        private 
JLabel ecran = new JLabel();
        private 
Dimension dim = new Dimension(5040);
        private 
Dimension dim2 = new Dimension(5031);
        private 
double chiffre1;
        private 
boolean clicOperateur falseupdate false;
        private 
String operateur "";
        
        public 
Calculatrice(){
                
                
this.setSize(240280);
                
this.setTitle("Calculette");
                
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                
this.setLocationRelativeTo(null);
                
this.setResizable(false);
                
initComposant();
                
                
this.setContentPane(container);
                
this.setVisible(true);
        }
        
        private 
void initComposant(){

                
Font police = new Font("Arial"Font.BOLD20);
                
ecran = new JLabel("0");
                
ecran.setFont(police);
                
ecran.setHorizontalAlignment(JLabel.RIGHT);
                
ecran.setPreferredSize(new Dimension(22020));
                
                
JPanel operateur = new JPanel();        
                
operateur.setPreferredSize(new Dimension(55225));
                
JPanel chiffre = new JPanel();
                
chiffre.setPreferredSize(new Dimension(165225));
                
JPanel panEcran = new JPanel();
                
panEcran.setPreferredSize(new Dimension(22030));

                
                for(
int i 0tab_string.lengthi++)
                {
                    
                    
tab_button[i] = new JButton(tab_string[i]);
                    
tab_button[i].setPreferredSize(dim);
                    
                    switch(
i){
                 
                    
	
case 
11 :
                    
	
	
tab_button[i].addActionListener(new EgalListener());
                    
	
	
chiffre.add(tab_button[i]);
                    
	
	
break;
                     
                    
	
case 
12 :
                    
	
	
tab_button[i].setForeground(Color.red);
                         
tab_button[i].addActionListener(new ResetListener());
                         
operateur.add(tab_button[i]);
                    
	
	
break;
                    
	
    
                    
	
case 
13 :
                    
	
	
tab_button[i].addActionListener(new PlusListener());
                    
	
	
tab_button[i].setPreferredSize(dim2);
                    
	
	
operateur.add(tab_button[i]);
                    
	
	
break;
                     
                    
	
case 
14 :
                    
	
	
tab_button[i].addActionListener(new MoinsListener());
                    
	
	
tab_button[i].setPreferredSize(dim2);
                    
	
	
operateur.add(tab_button[i]);
                    
	
	
break; 
                     
                    
	
case 
15 
                    
	
	
tab_button[i].addActionListener(new MultiListener());
                    
	
	
tab_button[i].setPreferredSize(dim2);
                    
	
	
operateur.add(tab_button[i]);
                    
	
	
break;
                     
                    
	
case 
16 :
                    
	
	
tab_button[i].addActionListener(new DivListener());
                    
	
	
tab_button[i].setPreferredSize(dim2);
                    
	
	
operateur.add(tab_button[i]);
                    
	
	
break;
                    
	
                     
                    
	
default :
                    
	
	
chiffre.add(tab_button[i]);
                    
	
	
tab_button[i].addActionListener(new ChiffreListener());
                    
	
	
break;
                    }
                    
                }
                
                
panEcran.add(ecran);
                
panEcran.setBorder(BorderFactory.createLineBorder(Color.black));
 
                
container.add(panEcranBorderLayout.NORTH);
                
container.add(chiffreBorderLayout.CENTER);
                
container.add(operateurBorderLayout.EAST);
                
        }
        
        
        private 
void calcul(){
                if(
operateur.equals("+"))
                {
                        
chiffre1 chiffre1 Double.valueOf(ecran.getText()).doubleValue();
                        
ecran.setText(String.valueOf(chiffre1));
                }
                        
                if(
operateur.equals("-"))
                {
                        
chiffre1 chiffre1 Double.valueOf(ecran.getText()).doubleValue();
                        
ecran.setText(String.valueOf(chiffre1));
                }               
                
                if(
operateur.equals("*"))
                {
                        
chiffre1 chiffre1 Double.valueOf(ecran.getText()).doubleValue();
                        
ecran.setText(String.valueOf(chiffre1));
                }       
                        
                if(
operateur.equals("/"))
                {
                        try{
                                
chiffre1 chiffre1 Double.valueOf(ecran.getText()).doubleValue();
                                
ecran.setText(String.valueOf(chiffre1));
                        }catch(
ArithmeticException e){
                                
ecran.setText("0");
                        }
                }
        }
        
        class 
ChiffreListener implements ActionListener{
 
                
                public 
void actionPerformed(ActionEvent e) {
                        
//On affiche le chiffre en plus dans le label
                        
String str = ((JButton)e.getSource()).getText();
                        
                        if(
update)
                        {
                                
update false;
                        }
                        else
                        {
                                if(!
ecran.getText().equals("0"))
                                        
str ecran.getText() + str;
                        }
                        
                        
ecran.setText(str);
                }
                
        }
 
        
        class 
EgalListener implements ActionListener{
 
               
                public 
void actionPerformed(ActionEvent arg0) {
                        
calcul();
                        
update true;
                        
clicOperateur false;
                }
                
        }
        
        
        class 
PlusListener implements ActionListener{
 
               
                public 
void actionPerformed(ActionEvent arg0) {
                        
                        if(
clicOperateur)
                        {
                                
calcul();
                                
ecran.setText(String.valueOf(chiffre1));
                        }
                        else
                        {
                                
chiffre1 Double.valueOf(ecran.getText()).doubleValue();
                                
clicOperateur true;
                        }
                        
operateur "+";
                        
update true;
                }
                
        }
        
        class 
MoinsListener implements ActionListener{
 
                
                public 
void actionPerformed(ActionEvent arg0) {
                        if(
clicOperateur)
                        {
                                
calcul();
                                
ecran.setText(String.valueOf(chiffre1));
                        }
                        else
                        {
                                
chiffre1 Double.valueOf(ecran.getText()).doubleValue();
                                
clicOperateur true;
                        }
                        
operateur "-";
                        
update true;
                }
                
        }
        
        
        class 
MultiListener implements ActionListener{
 
               
                public 
void actionPerformed(ActionEvent arg0) {
                        if(
clicOperateur)
                        {
                                
calcul();
                                
ecran.setText(String.valueOf(chiffre1));
                        }
                        else
                        {
                                
chiffre1 Double.valueOf(ecran.getText()).doubleValue();
                                
clicOperateur true;
                        }
                        
operateur "*";
                        
update true;
                }
                
        }
        
        
        class 
DivListener implements ActionListener{
 
               
                public 
void actionPerformed(ActionEvent arg0) {
                        if(
clicOperateur)
                        {
                                
calcul();
                                
ecran.setText(String.valueOf(chiffre1));
                        }
                        else
                        {
                                
chiffre1 Double.valueOf(ecran.getText()).doubleValue();
                                
clicOperateur true;
                                
                        }
                        
operateur "/";
                        
update true;
                }
                
        }
        
        
        class 
ResetListener implements ActionListener{
 
                
                public 
void actionPerformed(ActionEvent arg0) {
                        
clicOperateur false;
                        
update true;
                        
chiffre1 0;
                        
operateur "";
                        
ecran.setText("");
                }
                
        }
        
       public static 
void main(String[] args) {
                
Calculatrice calculette = new Calculatrice();
 
        }
 
}
 


lucky girl

  • Hero Member
  • *****
    • مشاركة: 1151
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #1 في: نيسـان 29, 2009, 09:59:37 مسائاً
ربي يبارك فيك ان شاء الله و يكثر من حسناتك يـــــــــــــــــــــارب العالمين...........مشكور على المجهود


achraf.mouni

  • Hero Member
  • *****
    • مشاركة: 2439
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #2 في: نيسـان 29, 2009, 10:02:24 مسائاً
ويبارك فيك يا اختي دليلة ........على تشجيعك المستمر يعطيك الصحة..


روبن

  • Full Member
  • ***
    • مشاركة: 144
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #3 في: نيسـان 30, 2009, 07:52:00 صباحاً
مشكووور بارك الله فيك
تبرهن  يوما بعد يوم على مكانتك
ودورك الهام في المنتدى
أثابكم الله وجعل هذا في ميزان حسناتكم



achraf.mouni

  • Hero Member
  • *****
    • مشاركة: 2439
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #4 في: نيسـان 30, 2009, 07:58:26 صباحاً
لا شكر على واجب..........................الله يخليك يا اخي العزيز هذا واجبي اسأل الله المدد والعون..


abdosite

  • Jr. Member
  • **
    • مشاركة: 59
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
رد #5 في: أيار 12, 2009, 10:42:52 مسائاً
بارك الله فيك