voila un petit jeu dans le genre de pong, ou vous etes mort des que le temps est ecoule, et le temps augmente quand vous avez plus de points que l'ennemi et diminue quand vous en avez moins
Source / Exemple :
#include <stdio.h>
#include <conio.c>
#define GAUCHE 75
#define DROITE 77
#define HAUT 72
#define BAS 80
#define ENTER 13
#define ESCAPE 27
#define JAUNE 14
#define ROUGE 12
#define VERT 10
#define BLANC 15
#define SORTIE 0
#define NORMAL 1
#define MENU 2
int hasard();
typedef struct
{
int X;
int Y;
int A;
int B;
} POS;
void main()
{
POS balle;
int increment;
int increment2;
int divers;
int joueur;
int compteur;
int ennemi;
int points;
int points2;
int direction;
int action=MENU;
char touche;
while (action!=SORTIE)
{
if (action==MENU)
{
clrscr();
gotoxy(1,1);
textcolor(ROUGE);
printf("\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\n");
textcolor(JAUNE);
printf("---PONG---\n");
textcolor(ROUGE);
printf("\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\n");
textcolor(VERT);
printf("\nLe but du jeu est d'essayer de faire passer la balle\n");
printf("dans le camp ennemi et d'empecher l'ennemi d'envoyer la balle\n");
printf("dans votre camp.\n");
printf("A chaque fois que vous faites passer la balle dans le camp ennemi,\n");
printf("vous gagnez 100 points, et tant que vous avez un nombre de points \n");
printf("plus haut que l'ennemi le temps augmente, et quand vous avez \n");
printf("moins de points que l'ennemi le temps diminue.\n");
printf("Si le temps est completement \x82 \bcoul\x82 vous avez perdu.");
getch();
/*REINITIALISE TOUT*/
clrscr();
balle.X=3;
balle.Y=3;
joueur=1;
ennemi=1;
divers=1;
compteur=0;
points=0;
points2=0;
direction=7;
gotoxy(1,24);
textcolor(ROUGE);
printf("\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4");
printf("\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC2\xC4");
printf("\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4");
printf("\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4");
printf("\xC4\xC4\xC4\xC4\xC4\xC4\xC2\xC4\xC4\xC4");
printf("\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4");
printf("\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4");
printf("\xC4\xC2\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4");
action=NORMAL;
}
/*DESSINE LA BALLE*/
gotoxy(balle.X,balle.Y);
textcolor(VERT);
printf("\x0F");
/*EFFACE L'ANCIENNE POSITION DE LA BALLE*/
gotoxy(balle.A,balle.B);
printf(" ");
balle.A=balle.X;
balle.B=balle.Y;
/*SI TOUCHE LE MUR GAUCHE OU DROIT*/
if ((balle.X==80)||(balle.X==1))
{
switch (direction)
{
case 1: direction=4;
divers=4;
break;
case 2: direction=3;
divers=4;
break;
case 3: direction=2;
divers=4;
break;
case 4: direction=1;
divers=4;
break;
case 5: direction=11;
divers=0;
break;
case 6: direction=12;
divers=0;
break;
case 7: direction=9;
divers=0;
break;
case 8: direction=10;
divers=0;
break;
case 9: direction=7;
divers=0;
break;
case 10: direction=8;
divers=0;
break;
case 11: direction=5;
divers=0;
break;
case 12: direction=6;
divers=0;
break;
}
}
/*SI TOUCHE LE MUR BAS OU HAUT*/
if (balle.Y==1)
{
printf("\a");
points=points+100;
direction=7;
balle.X=3;
balle.Y=3;
}
if (balle.Y==23)
{
printf("\a");
points2=points2+100;
direction=7;
balle.X=3;
balle.Y=3;
}
if ((balle.Y==21)&&((balle.X==joueur)||(balle.X==joueur+1)||(balle.X==joueur+6)||(balle.X==joueur+7)))
{
switch (direction)
{
case 2:
case 7: direction=5;
divers=0;
points++;
break;
case 8: direction=6;
divers=0;
points++;
break;
case 3:
case 10: direction=12;
divers=0;
points++;
break;
case 9: direction=11;
divers=0;
points++;
break;
}
}
if ((balle.Y==21)&&((balle.X==joueur+2)||(balle.X==joueur+3)||(balle.X==joueur+4)||(balle.X==joueur+5)))
{
switch (direction)
{
case 2:
case 7:
case 8: direction=1;
divers=4;
points=points+5;
break;
case 3:
case 9:
case 10: direction=4;
divers=4;
points=points+5;
break;
}
}
if ((balle.Y==3)&&((balle.X==ennemi)||(balle.X==ennemi+1)||(balle.X==ennemi+6)||(balle.X==ennemi+7)))
{
switch (direction)
{
case 1:
case 6: direction=8;
divers=0;
points2++;
break;
case 5: direction=7;
divers=0;
points++;
break;
case 4:
case 11: direction=9;
divers=0;
points2++;
break;
case 12: direction=10;
divers=0;
points2++;
break;
}
}
if ((balle.Y==3)&&((balle.X==ennemi+2)||(balle.X==ennemi+3)||(balle.X==ennemi+4)||(balle.X==ennemi+5)))
{
switch (direction)
{
case 1:
case 5:
case 6: direction=2;
divers=4;
points2=points2+5;
break;
case 4:
case 11:
case 12: direction=3;
divers=4;
points2=points2+5;
break;
}
}
/*CHANGE LA POSITION DE LA BALLE*/
switch (direction)
{
case 1: balle.X++;
balle.Y--;
break;
case 2: balle.X++;
balle.Y++;
break;
case 3: balle.X--;
balle.Y++;
break;
case 4: balle.X--;
balle.Y--;
break;
case 5: if (divers==0)
{
balle.X++;
balle.Y--;
}
else if (divers<3) balle.Y--;
break;
case 6: if (divers==0)
{
balle.X++;
balle.Y--;
}
else if (divers<3) balle.X++;
break;
case 7: if (divers==0)
{
balle.X++;
balle.Y++;
}
else if (divers<3) balle.X++;
break;
case 8: if (divers==0)
{
balle.X++;
balle.Y++;
}
else if (divers<3) balle.Y++;
break;
case 9: if (divers==0)
{
balle.X--;
balle.Y++;
}
else if (divers<3) balle.Y++;
break;
case 10: if (divers==0)
{
balle.X--;
balle.Y++;
}
else if (divers<3) balle.X--;
break;
case 11: if (divers==0)
{
balle.X--;
balle.Y--;
}
else if (divers<3) balle.X--;
break;
case 12: if (divers==0)
{
balle.X--;
balle.Y--;
}
else if (divers<3) balle.Y--;
break;
}
/*DESSINE LA RAQUETTE DU JOUEUR*/
gotoxy(1,21);
for (increment=1 ; increment<=80 ; increment++) printf(" ");
textcolor(JAUNE);
if (joueur==1)
{
gotoxy(1,21);
printf("\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB");
}
else
{
if (joueur==73)
{
gotoxy(73,21);
printf("\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB");
}
else
{
gotoxy(joueur,21);
printf("\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB");
}
}
/*DESSINE LA RAQUETTE ENNEMIE*/
gotoxy(1,3);
for (increment=1 ; increment<=80 ; increment++) printf(" ");
textcolor(JAUNE);
if (ennemi==1)
{
gotoxy(1,3);
printf("\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB");
}
else
{
if (ennemi==73)
{
gotoxy(73,3);
printf("\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB");
}
else
{
gotoxy(ennemi,3);
printf("\xDB\xDB\xDB\xDB\xDB\xDB\xDB\xDB");
}
}
if (((balle.X<ennemi+3)&&(balle.X<ennemi-hasard()))&&(ennemi>4)) ennemi=ennemi-3;
else if (((balle.X>ennemi+3)&&(balle.X>ennemi+hasard()))&&(ennemi<71)) ennemi=ennemi+3;
while (kbhit())
{
touche=getch();
switch (touche)
{
case GAUCHE: joueur=joueur-3;
if (joueur<1) joueur=1;
break;
case DROITE: joueur=joueur+3;
if (joueur>73) joueur=73;
break;
case ENTER: gotoxy(74,25);
textcolor(BLANC);
printf("PAUSE");
touche=0;
while (touche!=ENTER) touche=getch();
gotoxy(74,25);
printf(" ");
break;
case ESCAPE: action=SORTIE;
break;
}
}
sleep(35);
if (direction>4) divers++;
else divers=0;
if (divers==3) divers=0;
gotoxy(1,25);
textcolor(BLANC);
printf(" points : %6d ",points);
textcolor(ROUGE);
printf("\xB3");
textcolor(BLANC);
printf(" points ennemis : %6d ",points2);
textcolor(ROUGE);
printf("\xB3");
textcolor(BLANC);
printf(" temps restant : %6d",compteur);
textcolor(ROUGE);
printf("\xB3");
if (points2>points) compteur--;
else compteur++;
if (compteur<0)
{
gotoxy(30,8);
textcolor(ROUGE);
printf("---GAME OVER---");
textcolor(JAUNE);
gotoxy(30,9);
printf("Score : %7d");
gotoxy(20,10);
printf("Appuyez sur enter pour continuer");
do
{
touche=getch();
} while (touche!=ENTER);
action=MENU;
}
}
}
int hasard()
{
srand(time(NULL));
return (rand() % 5);
}
Conclusion :
voila c tout je nai pas trouve de bug, l' "intelligence" artificielle n'est pas fantastique c'est tout
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.