Debut du jeu du serpent

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 194 fois - Téléchargée 32 fois

Contenu du snippet

Ce n'est qu'un petit debut, mais aussi une variante du jeu serpent (pour l'instant).
Il suffit de diriger le "serpent" avec les touches directionnelles, pour quitter le jeu, tapez la lettre a.
Pour l'instant, il n'y a pas de condition pour perdre, donc le jeu est infini.
De plus, les variations de niveau ne sont pas optimisées du tout.

Voila, je pense que j'ai à peu près tout dit.
Je vous laisse tester, maintenant. Et bien sûr, j'attends vos remarques et vos suggestions avec impatience...

Source / Exemple :


#include <iostream.h>
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
#include <time.h>

#define haut 72
#define bas 80
#define gauche 75
#define droite 77

struct coord
{
int x, y;
};

coord s={10,10};
coord cible;
int niveau=10;
int touche=droite;

void genere(void)
{
randomize();
int x=random(80)+1;
int y=random(24)+1;
cible.x=x;cible.y=y;
gotoxy(cible.x,cible.y); cout<<"O";
}

void effacer(void)
{gotoxy(s.x,s.y); cout<<" ";}

void avancer(int direction)
{
switch(direction)
	{
   case haut : effacer();if (s.y>1) gotoxy(s.x,--s.y); else {s.y=24; gotoxy(s.x,s.y);} cout<<"X"; Sleep((1000/((niveau+8)/2))); break;
   case bas : effacer();if (s.y<24) gotoxy(s.x,++s.y); else {s.y=1; gotoxy(s.x,s.y);} cout<<"X"; Sleep((1000/((niveau+8)/2)));  break;
   case gauche : effacer();if (s.x>1) gotoxy(--s.x,s.y); else {s.x=80; gotoxy(s.x,s.y);} cout<<"X"; Sleep((1000/niveau)); break;
   case droite : effacer();if (s.x<80)gotoxy(++s.x,s.y); else {s.x=1; gotoxy(s.x,s.y);} cout<<"X"; Sleep((1000/niveau)); break;
   default : if (direction==97) touche=97; else touche=droite; break;
	}
}

bool manger(void)
{
return ((s.x==cible.x)&&(s.y==cible.y));
}

int main(void)
{
int temp;
bool ok=0;
genere();
gotoxy(cible.x,cible.y); cout<<"O";

do {
if (kbhit()!=0) temp=getch(); if ((temp==haut)||(temp==bas)||(temp==gauche)||(temp==droite)||(temp==97)) touche=temp; else ;
avancer(touche);
ok=manger();
if (ok==1) {genere(); !ok; niveau+=10;}
	} while (touche!=97);

gotoxy(10,10);
cout<<"Merci d'avoir tester ce jeu fait par JB...\n";
gotoxy(10,12);
cout<<"Appuyez sur une touche pour quitter...";
getch();

return 0;
}

A voir également

Ajouter un commentaire

Commentaires

Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
ba en fait c un bug sans en etre 1, si ca le fait pas chez toi c que ton tampon doit etre plus grand
de toute facon au pire ca ce regle en 2sec!
sinon pour ton serpent ta juste a reflechir a l'algo sur un bout de papier et apres tu pourra le coder rapidement!
Messages postés
55
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
4 août 2008

Non, djl, chez moi il n'y a pas de bug lorsque je traverse par la gauche (en tout cas, ca fait la meme chose que par la droite).
Ce bug se manifeste comment chez toi? Peux tu m'envoyer une capture d'écran?
Je vais aller voir ton serpent, j'ai vu que tu en avais mis un nouveau !!! :)

A+
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
g sai pas si ta remarquer les bugs qd tu traverse l'ecran par la gauche
> pour resoudre ce pb empeche le serpent(caracter) d'aller jusqu'a la limite du tampon de la fenetre en largeur, remplace 80 par 70 par ex.
Messages postés
55
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
4 août 2008

Et puis, mon but premier est d'apprendre, et non de faire quelque chose d'innovant (en tout cas, pas pour l'instant)...
Je suis encore trop faible en programmation, c'est pour quoi je refait des trucs deja fait en ce moment, simplement.
Mais d'ici 300 ou 400 ans, j'ai décidé de créér JBnux, le meilleur de tous les systemes d'exploitation, et ceci, grâce a un simple début de jeu de serpent, si nul soit il!
Voila, c'est tout ce que j'avais a dire la dessus Kirua. Et djl, merci de me défendre.
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
on est pas obligé d'utiliser allegro pour un premier serpent
g tester et ya qq bugs, qd on passe par la gauche les X ne s'efface pas
Afficher les 6 commentaires

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.