Pong basique
alexandre9475
Messages postés
1313
Date d'inscription
Statut
Membre
Dernière intervention
-
Eldanor -
Eldanor -
Bonjour les amis
Je suis en train de programmer un pong basique , deux questions surviennent :
-La première est un plutot un problème , comment faire en sorte de mettre une limite dans le deplacement des raquettes en haut et en bas ?
- Pour le score , je pensais incrémenté à chaque fois que la balle se trouvait à x<1 et x>79 , c'est a dire les colonnes , donc si <1 ca veut dire que c'est derrière la raquette donc perdu ect , est ce une bonne methode ?
merci d'avance .
Voici mon code source :
/****************************************************************************
* *
* File : main.c *
* *
* Purpose : Console mode (command line) program. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/
#include <stdio.h>
#include <conio.h>
/****************************************************************************
* *
* Function: main *
* *
* Purpose : Main entry point. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/
void delay(int nbre)
{
int i, j, k;
for(i=0; i<nbre; i++)
{
i=i+1;
i=i-1;
for(j=0; j<200;j++)
{
j=j+1;
j=j-1;
for(k=0;k<200; k++)
{
k=k+1;
k=k-1;
}
}
}
}
int main(int argc, char *argv[])
{
char c;
int FLG;
char o;
float cx,cy,dx,dy ;
cx=20;
cy=11;
dx=0.2;
dy=0.8;
FLG=0;
int x=1;
int yg=11;
int yd=11;
int i;
int scoreA=0;
int scoreB=0;
do
{
_gotoxy(cx,cy);
printf ("o");
delay(300);
_gotoxy(cx,cy);
printf(" ");
if(yg==1 || yg==23 || yd==1 || yg==23)
{
yg=yg;
yd=yd;}
else
{
_gotoxy(1,yg-1);
printf(" ");
_gotoxy(79,yd-1);
printf(" ");
for(i=0;i<5;i++)
{
_gotoxy(1,yg+i);
printf("|");
_gotoxy(79,yd+i);
printf("|");
}
_gotoxy(1,yg+5);
printf(" ");
_gotoxy(79,yd+5);
printf(" ");
}
for(i=0;i<5;i++)
{
_gotoxy(15,1);
printf("Score joueur A");
_gotoxy(50,1);
printf("Score joueur B");
}
cx = cx + dx;
cy = cy + dy;
if (cx >79 || cx < 2)
dx = -dx;
if (cy > 23 || cy < 2)
dy = -dy;
if (_kbhit()!=0)
{
c= _getch();
switch(c)
{
case 27:
FLG=1;
break;
case '7' :
yg=yg-1;
break;
case '1' :
yg=yg+1;
break ;
case '9' :
yd=yd-1;
break;
case '3' :
yd=yd+1;
break;
}
}
}
while(FLG==0);
return (0);
Je suis en train de programmer un pong basique , deux questions surviennent :
-La première est un plutot un problème , comment faire en sorte de mettre une limite dans le deplacement des raquettes en haut et en bas ?
- Pour le score , je pensais incrémenté à chaque fois que la balle se trouvait à x<1 et x>79 , c'est a dire les colonnes , donc si <1 ca veut dire que c'est derrière la raquette donc perdu ect , est ce une bonne methode ?
merci d'avance .
Voici mon code source :
/****************************************************************************
* *
* File : main.c *
* *
* Purpose : Console mode (command line) program. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/
#include <stdio.h>
#include <conio.h>
/****************************************************************************
* *
* Function: main *
* *
* Purpose : Main entry point. *
* *
* History : Date Reason *
* 00/00/00 Created *
* *
****************************************************************************/
void delay(int nbre)
{
int i, j, k;
for(i=0; i<nbre; i++)
{
i=i+1;
i=i-1;
for(j=0; j<200;j++)
{
j=j+1;
j=j-1;
for(k=0;k<200; k++)
{
k=k+1;
k=k-1;
}
}
}
}
int main(int argc, char *argv[])
{
char c;
int FLG;
char o;
float cx,cy,dx,dy ;
cx=20;
cy=11;
dx=0.2;
dy=0.8;
FLG=0;
int x=1;
int yg=11;
int yd=11;
int i;
int scoreA=0;
int scoreB=0;
do
{
_gotoxy(cx,cy);
printf ("o");
delay(300);
_gotoxy(cx,cy);
printf(" ");
if(yg==1 || yg==23 || yd==1 || yg==23)
{
yg=yg;
yd=yd;}
else
{
_gotoxy(1,yg-1);
printf(" ");
_gotoxy(79,yd-1);
printf(" ");
for(i=0;i<5;i++)
{
_gotoxy(1,yg+i);
printf("|");
_gotoxy(79,yd+i);
printf("|");
}
_gotoxy(1,yg+5);
printf(" ");
_gotoxy(79,yd+5);
printf(" ");
}
for(i=0;i<5;i++)
{
_gotoxy(15,1);
printf("Score joueur A");
_gotoxy(50,1);
printf("Score joueur B");
}
cx = cx + dx;
cy = cy + dy;
if (cx >79 || cx < 2)
dx = -dx;
if (cy > 23 || cy < 2)
dy = -dy;
if (_kbhit()!=0)
{
c= _getch();
switch(c)
{
case 27:
FLG=1;
break;
case '7' :
yg=yg-1;
break;
case '1' :
yg=yg+1;
break ;
case '9' :
yd=yd-1;
break;
case '3' :
yd=yd+1;
break;
}
}
}
while(FLG==0);
return (0);