Zelda (petit jeu mode console en c++)

Soyez le premier à donner votre avis sur cette source.

Vue 10 338 fois - Téléchargée 1 160 fois

Description

ZELDA est un petit jeu en mode console.

Ce jeu est composé de deux petits niveaux le but étant de tuer les petits bonhommes noirs (les nuckers) à l'aide du clavier numérique.
(Les touches 2,6,8,4 pour se déplacer et les touches 7,9,0 pour sortir son épée).

Le code source peut être certainement amélioré car il est très loin d'être parfait alors si vous avez des critiques à faire ou des conseils à me donner n'hésitez pas à les poster ou à me les envoyer par mail.
fantasydreams@free.fr

Source / Exemple :


/******************************************                                                                  

  • Programmed by Squallgamer
  • ZELDA
                                                                                    • /
#include <iostream.h> #include <math.h> #include <windows.h> #include <ctime> #include <conio.h> char tabl[20][20]; //Tableau de jeu niveau 1 char tabl2[20][20]; //Tableau de jeu niveau 2 int vie=1; int niveau1(); int niveau2(); //////////////////////////////////////////////////////////////////// int main() //Fonction principale { niveau1(); //Va à la fonction niveaux1 return 0; //Quitte le programme } //////////////////////////////////////////////////////////////////// int niveau1() { int static r=0; if(r==0) { cout <<"Bienvenue dans le jeu ZELDA niveau1!!!\n"; //Phrase d'intro cout <<"Le but est de tuer le petit nuckers qui a envahi la foret magique et emprisoner ton amie.\nPour cela bouger"; cout <<" le \02 pour cela utiliser les touches 2,6,4,8.\n";r++; } int static a=2; int static b=1; int p = 18; int d = 18; tabl[p][d]='\01'; // \01 est un nuckers tabl[17][16]='\03'; // \03 est une vie for(;;) { if(b==15&&a==18){cout<<"Rends toi ou je te tue.\n";tabl[17][18]='-';} if(b==19&&a==18){niveau2();return 0;} if(tabl[b][a]==tabl[17][16]){vie++;cout<<";Vous avez gagner une vie.Vous en avez "<<vie<<" vie\n";} system("cls"); tabl[b][a]='\02'; // \02 est le héros for(int y=0;y<20;y++) //Création du tableau (La carte du jeu) { for(int x=0;x<20;x++) { if(x==0){tabl[x][y]='\06';} //Création du décor (Les arbres qui ne resemble pas à des arbres) if(y==0){tabl[x][y]='\06';} if(x==19&&y!=18){tabl[x][y]='\06';} if(y==19){tabl[x][y]='\06';} if(y==13&&x!=7&&x!=8&&x!=17){tabl[x][y]='\06';} if(y==17&&x!=5){tabl[x][y]='\06';} if(x==15&&y!=5&&y!=18){tabl[x][y]='\06';} cout <<tabl[x][y]; } cout <<endl; } unsigned int g = getch(); //Getch() permet de taper sur une touche sans devoir appuyé sur Entrée if(g==57) //Si on appuie sur 9 le héros sort son épée à droite { for(int t=0;t<1;t++) { tabl[1+b][a]='-'; if(tabl[1+b][a]=='-'){tabl[2+b][a]='-';} if(tabl[1+b][a]==tabl[p][d]||tabl[b+2][a]==tabl[p][d]){tabl[p][d]=NULL;tabl[17][18]=NULL;cout<<"Bien jouez!!!\n";Sleep(1000);} } } if(g==48) //Si on appuie sur 0 le héros sort son épée en bas { for(int t=0;t<1;t++) { tabl[b][1+a]='I'; if(tabl[b][1+a]=='I'){tabl[b][2+a]='I';} if(tabl[b][1+a]==tabl[p][d]||tabl[b][2+a]==tabl[p][d]){cout<<"Bien jouez!!!\n";Sleep(1000);} } } if(g==55) //Si on appuie sur 7 le héros sort son épée à guauche { for(int t=0;t<1;t++) { tabl[b-1][a]='-'; if(tabl[b-1][a]=='-'){tabl[b-2][a]='-';} if(tabl[b-1][a]==tabl[p][d]||tabl[b-2][a]==tabl[p][d]){cout<<"Bien jouez!!!\n";Sleep(1000);} } } //Si on appuie sur 6 le héros va à droite if(g==50&&a!=18&&(a!=12||(b==7||b==8||b==17))&&(a!=16||(b==5))){tabl[b][a]=NULL;tabl[b][1+a]='\02';a++;continue;} if(g==54&&tabl[p][d]!=NULL&&b==17&&a==18) { vie--; cout<<"tu a ete toucher il te reste "<<vie<<"\n"; if(vie<1){break;return main();} if(vie>=1){tabl[b][a]=NULL;a=2;b=2;return niveau1();} } if(g==54&&tabl[p][d]!=NULL&&b==16&&a==18) { vie--; cout<<"tu a ete toucher il te reste "<<vie<<"\n"; if(vie<1){break;return main();} if(vie>=1){tabl[b][a]=NULL;a=2;b=2;return niveau1();} } //Si on appuie sur 8 le héros va en haut if(g==54&&(b!=18||(a==18))&&(b!=14||(a==5||a==18))){tabl[b][a]=NULL;tabl[1+b][a]='\02';b++;continue;} //Si on appuie sur 4 le héros va à guauche if(g==56&&a!=1&&(a!=14||(b==7||b==8||b==17))&&(a!=18||(b==5))){tabl[b][a]=NULL;tabl[b][a-1]='\02';a--;continue;} //Si on appuie sur 2 le héros va en bas if(g==52&&b!=1&&(b!=16||(a==5||a==18))){tabl[b][a]=NULL;tabl[b-1][a]='\02';b--;continue;} } } /////////////////////////////////////////////////////////////////////////////////////// int niveau2() //Pour le niveau 2 c'est le même principe { { int static r=0; if(r==0) { cout <<"Bienvenue dans le jeu ZELDA niveau2!!!\n"; cout <<"Vous arivez plus profond dans la foret"; cout <<" il faut sauver votre compagnon\02 et detruire les derniers petits \01\n";r++; } int static a=2; int static b=1; tabl2[18][18]='\01'; tabl2[17][16]='\02'; tabl2[14][16]='\01'; tabl2[6][16]='\01'; for(;;) { if(tabl2[18][18]==tabl2[b][a]) { vie--; cout<<"Vous etes mort.Il vous reste "<<vie<<"\n"; if(vie<1){break;return main();} if(vie>=1){return niveau1();} } system("cls"); tabl2[b][a]='\02'; for(int y=0;y<20;y++) { for(int x=0;x<20;x++) { if(x==0){tabl2[x][y]='\06';} if(y==0){tabl2[x][y]='\06';} if(x==19){tabl2[x][y]='\06';} if(y==19){tabl2[x][y]='\06';} if(y==15&&x!=7){tabl2[x][y]='\06';} if(y==17&&x!=15){tabl2[x][y]='\06';} if(x==10&&y!=4&&y!=18&&y!=16&&y!=12&&y!=9){tabl2[x][y]='\06';} if(x==3&&y!=2){tabl2[x][y]='\06';} if(y==10&&x!=16){tabl2[x][y]='\06';} if(x==1&&y!=2&&y!=1&&y!=3){tabl2[x][y]='\06';} if(x==2&&y!=2&&y!=1&&y!=3){tabl2[x][y]='\06';} if(y==5&&x!=17){tabl2[x][y]='\06';} cout <<tabl2[x][y]; } cout <<endl; } unsigned int g = getch(); if(a==14&&b==7){tabl2[6][16]=NULL;tabl2[7][16]='\01';} if(g==57) { for(int t=0;t<1;t++) { tabl2[1+b][a]='-'; if(tabl2[1+b][a]=='-'){tabl2[2+b][a]='-';} if(tabl2[1+b][a]==tabl2[18][18]||tabl2[b+2][a]==tabl2[18][18]){cout<<"Bien jouez!!!\n";Sleep(1000);return 0;} } } if(g==48) { for(int t=0;t<1;t++) { tabl2[b][1+a]='I'; if(tabl2[b][1+a]=='I'){tabl2[b][2+a]='I';} if(tabl2[b][1+a]==tabl2[18][18]||tabl2[b][2+a]==tabl2[18][18]){cout<<"Bien jouez!!!\n";Sleep(1000);return 0;} } } if(g==55) { for(int t=0;t<1;t++) { tabl2[b-1][a]='-'; if(tabl2[b-1][a]=='-'){tabl2[b-2][a]='-';} if(tabl2[b-1][a]==tabl2[18][18]||tabl2[b-2][a]==tabl2[18][18]){cout<<"Bien jouez!!!\n";Sleep(1000);return 0;} } } if(g==50&&tabl2[7][16]=='\01'&&b==7&&a==15) { vie--; cout<<"Vous etes mort.Il vous reste "<<vie<<"\n"; if(vie<1){break;return main();} if(vie>=1){return niveau1();} } if(g==54&&tabl2[14][16]=='\01'&&b==13&&a==16) { vie--; cout<<"Vous etes mort.Il vous reste "<<vie<<"\n"; if(vie<1){break;return main();} if(vie>=1){return niveau1();} } if(g==50&&a!=18&&(a!=4||(b==17))&&(a!=9||(b==16))&&(a!=14||(b==7))&&(a!=16||(b==15))){tabl2[b][a]=NULL;tabl2[b][1+a]='\02';a++;continue;} if(g==54&&b!=18&&(b!=9||(a==4||a==9||a==12||a==16||a==18))&&(b!=2||(a==2))){tabl2[b][a]=NULL;tabl2[1+b][a]='\02';b++;continue;} if(g==56&&a!=1&&(a!=6||(b==17))&&(a!=11||(b==16))&&(a!=16||(b==7))&&(a!=18||(b==15))){tabl2[b][a]=NULL;tabl2[b][a-1]='\02';a--;continue;} if(g==52&&b!=1&&(b!=11||(a==4||a==9||a==12||a==16||a==18))&&(b!=4||(a==2))){tabl2[b][a]=NULL;tabl2[b-1][a]='\02';b--;continue;} } } return 0; }

Conclusion :


Si vous avez du temps à perdre ou que vous ne savez pas quoi faire, allez faire un tour sur mon site qui est en cours de construction www.winlinx.fr.st

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
6
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
2 juin 2004

jaime bien le "tu a etait toucher..." lol
sinon il est cool ton prog, original :)
bonne continuation :)
++
Messages postés
6
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
2 juin 2004

jaime bien le "tu a etait toucher..." lol
sinon il est cool ton prog, original :)
bonne continuation :)
++
Messages postés
7
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
2 juin 2010

En effet il y a un gros bug quand on termine le jeu avec le dernier monstre, il faut que je corrige cette erreur.
Malheureusement on approche des exams et j'ai de moins en moins le temps de programmer.
Mais je vais corriger ce bug vite fait bien vait (Il ne doit normalement pas prendre beaucoup de temps à corriger).
Messages postés
1
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
27 avril 2004

:-) sympa, mais ca bug beaucoup : le probleme des ennemis au 2°niveau, une fois qu'on est "mort" on peut toujours réapparaitre (en bougeant un peu) et ensuite traverser des murs et faire planter le jeu, l'ennemi du 1er niveau peut toujours etre frappé meme quand il est mort... ah oui, il laisse son épée par terre aussi :-)
Et c'est vrai que commenter ta source est tres important (pour tout le monde), imagine un peu un programme de 100 000 lignes sans commentaires :-P
...
En relisant ce que je viens d'écrire j'ai vu que j'ai pas dit grand chose de gentil :-/ Je voulais pas faire un commentaire méchant alors : bon boulot, et bon prog !
Messages postés
6
Date d'inscription
samedi 10 avril 2004
Statut
Membre
Dernière intervention
24 septembre 2004

a la fin du 2° niveau, dernier ennemi, ca coince un peu :/
ca le tue pas, mais ca en fait apparaitre 2 autres plus haut...
Afficher les 12 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.