begin process at 2012 05 27 20:12:32
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > JEU DU SERPENT AVEC CHOIX DU NIVEAUX [VC++ 6.0]

JEU DU SERPENT AVEC CHOIX DU NIVEAUX [VC++ 6.0]


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Jeux Niveau :Débutant Date de création :18/10/2003 Date de mise à jour :10/11/2003 21:44:53 Vu / téléchargé :5 317 / 430

Auteur : djl

Ecrire un message privé
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
le jeu dessine le niveau choisie a partir du fichier Niveaux.bmp(la capture d'ecran montre le niveau 6)
on donc peut editer les niveaux avec paint par exemple ou meme en rajouter a la suite(en rajoutant 40 pixel a la hauteur de l'image pour chaque niveau suplementaire)
sinon il y a toujours les 9 niveaux de difficulté correspondant a la vitesse du serpent
et il se joue avec les touche 4,5,6,8 du numpad

maj: voila une version ou on peut jouer a 2 joueur, le joueur 2 se sert des touches z,q,s,d
ca marche bien mais parfois ca bug?

maj: j'ai remis la version 1 joueur(la version 2 joueurs est toujours presente dans le zip) car avec 2 joueurs ya pas mal de bug

Source

  • #include "terrain.h"
  • #define QUITTER 'a'
  • #define P1_HAUT '8'
  • #define P1_BAS '5'
  • #define P1_GAUCHE '4'
  • #define P1_DROITE '6'
  • #define P2_HAUT 'z'
  • #define P2_BAS 's'
  • #define P2_GAUCHE 'q'
  • #define P2_DROITE 'd'
  • /************** fonction utilisée dans jeu() *******************/
  • void info()
  • {
  • gotoxy(0,MAX_H+2);
  • textcolor(ROUGE_C,BG);
  • cout<<"score j1:"<<P1_score<<endl
  • <<"score j2:"<<P2_score<<flush;
  • gotoxy(0,0);
  • }
  • bool P1_testC(char c,char tmp)
  • {
  • if(c==P1_HAUT || c==P1_GAUCHE || c==P1_BAS || c==P1_DROITE || c==QUITTER)
  • if(!((c==P1_DROITE && tmp==P1_GAUCHE)||(tmp==P1_DROITE && c==P1_GAUCHE)||(c==P1_HAUT && tmp==P1_BAS)||(tmp==P1_HAUT && c==P1_BAS)) || c==QUITTER)
  • return true;
  • return false;
  • }
  • bool P2_testC(char c,char tmp)
  • {
  • if(c==P2_HAUT || c==P2_GAUCHE || c==P2_BAS || c==P2_DROITE || c==QUITTER)
  • if(!((c==P2_DROITE && tmp==P2_GAUCHE)||(tmp==P2_DROITE && c==P2_GAUCHE)||(c==P2_HAUT && tmp==P2_BAS)||(tmp==P2_HAUT && c==P2_BAS)) || c==QUITTER)
  • return true;
  • return false;
  • }
  • int getDir(char c)
  • {
  • switch(c)
  • {
  • case P1_HAUT :return 1;
  • case P1_BAS :return 2;
  • case P1_GAUCHE :return 3;
  • case P1_DROITE :return 4;
  • case P2_HAUT :return 1;
  • case P2_BAS :return 2;
  • case P2_GAUCHE :return 3;
  • case P2_DROITE :return 4;
  • }
  • }
  • void fin()
  • {
  • textcolor(BLANC,BG);
  • system("cls");
  • gotoxy(15,15);
  • cout<<"perdu!!! score joueur1 ="<<P1_score<<" points"
  • <<" score joueur2 ="<<P2_score<<" points"<<endl<<endl;
  • cout<<" appuyez sur une touche pour recommencer"<<endl;
  • getch();
  • }
  • void jeu()
  • {
  • int P1_dir, P2_dir;
  • char c,tmp1,tmp2;
  • bool touche=false;
  • char terrain[MAX_L][MAX_H];
  • SERPENT s1(5,10,4,VERT_C,VERT), s2(5,17,4,BLEU_C,BLEU);
  • srand(time(NULL));
  • system("cls");
  • setcursortype(1);
  • P1_score=0;
  • P2_score=0;
  • init(terrain,nbniveaux(),niveau);
  • s1.affiche();
  • s2.affiche();
  • s1.getCoord(terrain);
  • s2.getCoord(terrain);
  • genereCible(terrain);
  • info();
  • getch();
  • P1_dir=DROITE_;
  • P2_dir=DROITE_;
  • tmp1=P1_DROITE;
  • tmp2=P2_DROITE;
  • while(c!=QUITTER )
  • {
  • while((!kbhit() || touche) )
  • {
  • touche=false;
  • s1.avance(P1_dir);
  • s2.avance(P2_dir);
  • s1.getCoord(terrain);
  • s2.getCoord(terrain);
  • if(s1.colision(terrain) || s2.colision(terrain))
  • {
  • getch();getch();
  • goto fin;
  • }
  • if(s1.mange(cible))
  • {
  • s1.grandir();
  • P1_score+=difficulte;
  • info();
  • genereCible(terrain);
  • }
  • if(s2.mange(cible))
  • {
  • s2.grandir();
  • P2_score+=difficulte;
  • info();
  • genereCible(terrain);
  • }
  • Sleep(30+(9-difficulte)*8);
  • }
  • c=getch();
  • if(P1_testC(c,tmp1))
  • {
  • tmp1=c;
  • P1_dir=getDir(tmp1);
  • }
  • if(P2_testC(c,tmp2))
  • {
  • tmp2=c;
  • P2_dir=getDir(tmp2);
  • }
  • touche=true;
  • }
  • fin:
  • setcursortype(2);
  • }
  • /********************** programme principal ********************/
  • void main()
  • {
  • int nbn=nbniveaux();
  • system("title SNAKE III");
  • setcursortype(2);
  • for(;;){
  • while(niveau<1 || niveau>nbn)
  • {
  • system("cls");
  • cout<<endl<<endl<<" niveau(1 a "<<nbn<<"):";
  • cin>>niveau;// variable globale
  • }
  • while(difficulte<1 || difficulte>9)
  • {
  • system("cls");
  • cout<<endl<<endl<<" niveau de difficulte (1 a 9):";
  • cin>>difficulte;// variable globale
  • }
  • jeu();
  • fin();
  • niveau=0;
  • difficulte=0;}
  • }
#include "terrain.h"

#define QUITTER 'a' 

#define P1_HAUT '8'
#define P1_BAS '5'
#define P1_GAUCHE '4'
#define P1_DROITE '6'

#define P2_HAUT 'z'
#define P2_BAS 's'
#define P2_GAUCHE 'q'
#define P2_DROITE 'd'


/************** fonction utilisée dans jeu() *******************/
void info()
{
	gotoxy(0,MAX_H+2);
	textcolor(ROUGE_C,BG);
	cout<<"score j1:"<<P1_score<<endl
		<<"score j2:"<<P2_score<<flush;
	gotoxy(0,0);
}

bool P1_testC(char c,char tmp)
{
	if(c==P1_HAUT || c==P1_GAUCHE || c==P1_BAS || c==P1_DROITE || c==QUITTER)
    if(!((c==P1_DROITE && tmp==P1_GAUCHE)||(tmp==P1_DROITE && c==P1_GAUCHE)||(c==P1_HAUT && tmp==P1_BAS)||(tmp==P1_HAUT && c==P1_BAS)) || c==QUITTER)
		return true;
	return false;
}

bool P2_testC(char c,char tmp)
{
	if(c==P2_HAUT || c==P2_GAUCHE || c==P2_BAS || c==P2_DROITE || c==QUITTER)
    if(!((c==P2_DROITE && tmp==P2_GAUCHE)||(tmp==P2_DROITE && c==P2_GAUCHE)||(c==P2_HAUT && tmp==P2_BAS)||(tmp==P2_HAUT && c==P2_BAS)) || c==QUITTER)
		return true;
	return false;
}

int getDir(char c)
{
	switch(c)
	{
	case P1_HAUT   :return 1;
	case P1_BAS    :return 2;
	case P1_GAUCHE :return 3;
	case P1_DROITE :return 4;
	case P2_HAUT   :return 1;
	case P2_BAS    :return 2;
	case P2_GAUCHE :return 3;
	case P2_DROITE :return 4;
	}
}

void fin()
{
	textcolor(BLANC,BG);
	system("cls");
	gotoxy(15,15);
	cout<<"perdu!!!   score joueur1 ="<<P1_score<<" points"
		<<"  score joueur2 ="<<P2_score<<" points"<<endl<<endl;
	cout<<"                appuyez sur une touche pour recommencer"<<endl;
	getch();
}


void jeu()
{
	int P1_dir, P2_dir;
    char c,tmp1,tmp2;
    bool touche=false;
	char terrain[MAX_L][MAX_H];
	SERPENT s1(5,10,4,VERT_C,VERT), s2(5,17,4,BLEU_C,BLEU);
    
	srand(time(NULL));
	system("cls");
	setcursortype(1);
	P1_score=0;
	P2_score=0;
    init(terrain,nbniveaux(),niveau);
    s1.affiche();
	s2.affiche();
	s1.getCoord(terrain);
	s2.getCoord(terrain);
	genereCible(terrain);
	info();
	getch();
    P1_dir=DROITE_;
	P2_dir=DROITE_;
	tmp1=P1_DROITE;
	tmp2=P2_DROITE;

    while(c!=QUITTER )
    {
        while((!kbhit() || touche) ) 
        {
            touche=false;			
            s1.avance(P1_dir);
			s2.avance(P2_dir);
	     	s1.getCoord(terrain);
			s2.getCoord(terrain);
	        if(s1.colision(terrain) || s2.colision(terrain))
			{
				getch();getch();
				goto fin;
			}
			if(s1.mange(cible))
			{
				s1.grandir();
				P1_score+=difficulte;
				info();
				genereCible(terrain);
			}
			if(s2.mange(cible))
			{
				s2.grandir();
				P2_score+=difficulte;
				info();
				genereCible(terrain);
			}
			Sleep(30+(9-difficulte)*8);
        }
		c=getch();
		if(P1_testC(c,tmp1))
		{
			tmp1=c;
			P1_dir=getDir(tmp1);
		}
		if(P2_testC(c,tmp2))
		{
			tmp2=c;
			P2_dir=getDir(tmp2);
		}
        touche=true;
    }
fin:
	setcursortype(2);
}

/********************** programme principal ********************/
void main()
{
	int nbn=nbniveaux();

	system("title SNAKE III");
	setcursortype(2);
	for(;;){
	while(niveau<1 || niveau>nbn)
    {
        system("cls");
		cout<<endl<<endl<<"     niveau(1 a "<<nbn<<"):";
        cin>>niveau;// variable globale
	}
    while(difficulte<1 || difficulte>9)
    {
        system("cls");
        cout<<endl<<endl<<"     niveau de difficulte (1 a 9):";
        cin>>difficulte;// variable globale
    }
	jeu();
	fin();
	niveau=0;
	difficulte=0;}
}

 Conclusion

il faur bien sur ne pas oublier de redimensionner la fenetre pour qu'elle ait une hauteur de 45 lignes au moins

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip COS ET SIN PLUS RAPIDE QUE MATH.H
Source avec Zip Source avec une capture [C++/DEVCPP] EXPLORATEUR EN OPENGL
Source avec Zip Source avec une capture TABLEAU 2D GENERIQUE MATRICE...
Source avec Zip CLASSE PILE&TABLEAU GENERIQUE
Source avec Zip Source avec une capture PETIT DOOM LIKE EN OPENGL [VC++]

 Sources de la même categorie

Source avec Zip Source avec une capture JEU DES CARTES par eapaceinfo
PROGRAMME DE JEU DE MPT par KerizGarmm
Source avec Zip Source avec une capture JEUX SERPENT par antho974
Source avec Zip Source avec une capture PENDU EN SDL par Damsou91
Source avec Zip STATE MACHINE MODIFICATION MATH BUCKHAM par billybones79

Commentaires et avis

Commentaire de MoDDiB le 18/10/2003 12:40:13

Enfin un facile simple et jouable ^^
Des que j'ai le temps j'en fais un tron 2 joueurs via socket ^^

Commentaire de djl le 18/10/2003 13:24:09

cool, merci pour la note!
et bonne chance pour tron!

Commentaire de jb60 le 18/10/2003 13:29:07

Je ne l'ai pas encore essayé mais je suis sûr qu'il est bien, vu la capture d'écran, alors bonne continuation à toi djl, et si un jour, il existe en mode deux joueurs, ca serait super cool. Alors n'hésite pas MoDDiB, et surtout, n'oublie pas de mettre ta source en ligne pour qu'on puisse tous en profiter...
Au fait, djl, il marche ton serpent sous borland C++ 5.02?

Commentaire de djl le 18/10/2003 13:32:53

pour le faire marcher sous borland c++ 5.02 il faudra que tu vire l'entete sconio.h et remplacer la fonction textcolor qui doit s'utiliser differement
c pour ca que g mis l'exe dans le zip!

Commentaire de MoDDiB le 19/10/2003 21:33:35

Sniff j'allais commencer le ptit multi mais ben j'ai pas sconio.h c'est normal (g visual c++ 6.0)
quelqu'un peut til me lenvoyer ? modkiller@wanadoo.fr

Merci bcoup ^^

Commentaire de djl le 19/10/2003 22:09:59

g te l'ai envoyer, sinon moi aussi g suis sous vc++ 6.0 et d'ailleur, sconio.h, que tu peut trouver sur ce site  a ete developper pour vc++

Commentaire de genus1002 le 05/08/2004 02:23:46

esque il marche avec dev-C++

Commentaire de djl le 05/08/2004 20:07:52

avec quelque modif oui, du coté de sconio (conio.h sous devcpp )

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales