[LANGAGE C] Morpion
4 participants
Forum UVSQ :: DUT :: Informatique :: Programmation :: Programmes
Page 1 sur 1
[LANGAGE C] Morpion
Voila, je me suis mis en tête l'idée de créé un morpion en mode console en C, voici une ébauche de travail, qui permet déja placé le premier X et le premier O.
C'est vraiment une ébauche non optimiser et non finie, bref voila dites moi ce que vous en pensez pour le moment...
jviens de voir, il propose bien de placer O mais pas d'affichage encore.
C'est vraiment une ébauche non optimiser et non finie, bref voila dites moi ce que vous en pensez pour le moment...
- Spoiler:
- Code:
#include <stdio.h>
#include <stdlib.h>
void ecran_jeu(a,b,c,d,e,f,g,h,i)
{
printf(" %c | %c | %c |\n", a,b,c);
printf(" %c | %c | %c |\n", d,e,f);
printf(" %c | %c | %c |\n\n", g,h,i);
}
int main(int argc, char *argv[])
{
char a='a',b='b',c='c',d='d',e='e',f='f',g='g',h='h',i='i';
char choix;
int ResScanf, ResScanf2;
do
{
ecran_jeu(a,b,c,d,e,f,g,h,i);
/* printf(" %c | %c | %c |\n", a,b,c);
printf(" %c | %c | %c |\n", d,e,f);
printf(" %c | %c | %c |\n\n", g,h,i);*/
printf(" Ou voulez placez votre X ?\n");
ResScanf=scanf("%c", &choix);
}while(ResScanf!=1);
switch(choix)
{
case 'a':{ a='X';
}
break;
case 'b':{ b='X';;
}
break;
case 'c':{ c='X';
}
break;
case 'd':{ d='X';
}
break;
case 'e':{ e='X';
}
break;
case 'f':{ f='X';
}
break;
case 'g':{ g='X';
}
break;
case 'h':{ h='X';
}
break;
case 'i':{ i='X';
}
break;
}
do
{
ecran_jeu(a,b,c,d,e,f,g,h,i);
printf("Ou voulez vous placez votre O?\n");
ResScanf2=scanf("%c", &choix);
}while (ResScanf2!=1);
switch(choix)
{
case 'a':{ a='O';
}
break;
case 'b':{ b='O';;
}
break;
case 'c':{ c='O';
}
break;
case 'd':{ d='O';
}
break;
case 'e':{ e='O';
}
break;
case 'f':{ f='O';
}
break;
case 'g':{ g='O';
}
break;
case 'h':{ h='O';
}
break;
case 'i':{ i='O';
}
break;
}
ecran_jeu(a,b,c,d,e,f,g,h,i);
system("PAUSE");
return 0;
}
jviens de voir, il propose bien de placer O mais pas d'affichage encore.
DamienRD- Développeur
- Messages : 59
Date d'inscription : 28/09/2011
Re: [LANGAGE C] Morpion
utilise des "system(cls)" ce sera déjà plus lisible et puis moi je trouve que c'est pas si mal que ça !!
Re: [LANGAGE C] Morpion
justement je savais pas comment "nettoyer" la console, bref je modifie ça demain =)
DamienRD- Développeur
- Messages : 59
Date d'inscription : 28/09/2011
Re: [LANGAGE C] Morpion
Je propose ma v2, avec des system("cls"), un peu d'esthétique, les scanf complètement sécurisés, et quelques petits trucs...
Il reste à mettre ça dans une boucle avec une condition de fin (que tous les a,b,c,d,e,f,g,h,i soient remplis, voire qu'il y ait une ligne de 3 O ou 3 X, mais ça risque d'être chaud de sortir un algo pour cette dernière) et d'empêcher d'écraser un O par un X ou le contraire.
À quand une IA contre laquelle jouer ? ;)
- Spoiler:
- Code:
#include <stdio.h>
#include <stdlib.h>
void ecran_jeu(a,b,c,d,e,f,g,h,i)
{
system("cls");
printf(" %c | %c | %c \n", a,b,c);
printf("---+---+---\n");
printf(" %c | %c | %c \n", d,e,f);
printf("---+---+---\n");
printf(" %c | %c | %c \n\n", g,h,i);
}
int main(int argc, char *argv[])
{
char a='a',b='b',c='c',d='d',e='e',f='f',g='g',h='h',i='i';
char choix;
int ResScanf, ResScanf2;
do
{
ecran_jeu(a,b,c,d,e,f,g,h,i);
/* printf(" %c | %c | %c |\n", a,b,c);
printf(" %c | %c | %c |\n", d,e,f);
printf(" %c | %c | %c |\n\n", g,h,i);*/
printf(" O%c voulez-vous pla%cer votre X ?\n", 151, 135);
ResScanf=scanf("%c", &choix);
fflush(stdin);
}while(ResScanf!=1 || (choix != 'a' && choix != 'b' && choix != 'c' && choix != 'd' &&choix != 'e' &&choix != 'f' &&choix != 'g' && choix != 'h' &&choix != 'i'));
switch(choix)
{
case 'a':{ a='X';
}
break;
case 'b':{ b='X';;
}
break;
case 'c':{ c='X';
}
break;
case 'd':{ d='X';
}
break;
case 'e':{ e='X';
}
break;
case 'f':{ f='X';
}
break;
case 'g':{ g='X';
}
break;
case 'h':{ h='X';
}
break;
case 'i':{ i='X';
}
break;
}
do
{
ecran_jeu(a,b,c,d,e,f,g,h,i);
printf("O%c voulez-vous pla%cer votre O?\n", 151, 135);
ResScanf2=scanf("%c", &choix);
}while (ResScanf2!=1 || (choix != 'a' && choix != 'b' && choix != 'c' && choix != 'd' &&choix != 'e' &&choix != 'f' &&choix != 'g' && choix != 'h' &&choix != 'i'));
switch(choix)
{
case 'a':{ a='O';
}
break;
case 'b':{ b='O';;
}
break;
case 'c':{ c='O';
}
break;
case 'd':{ d='O';
}
break;
case 'e':{ e='O';
}
break;
case 'f':{ f='O';
}
break;
case 'g':{ g='O';
}
break;
case 'h':{ h='O';
}
break;
case 'i':{ i='O';
}
break;
}
ecran_jeu(a,b,c,d,e,f,g,h,i);
system("PAUSE");
return 0;;
}
Il reste à mettre ça dans une boucle avec une condition de fin (que tous les a,b,c,d,e,f,g,h,i soient remplis, voire qu'il y ait une ligne de 3 O ou 3 X, mais ça risque d'être chaud de sortir un algo pour cette dernière) et d'empêcher d'écraser un O par un X ou le contraire.
À quand une IA contre laquelle jouer ? ;)
Thibaut J- Mini Développeur
- Messages : 39
Date d'inscription : 28/09/2011
Age : 111
Re: [LANGAGE C] Morpion
Ha bah bravo, jvoulais le faire moi même mais jsuis deg: le tien a l'air mieux et il est déjà fini, tant pis je m'approprie ton code et je trouverai commet trouver le gagnant mais pour verrouiller une case ça risque d'être plus dur mais je le ferais.
DamienRD- Développeur
- Messages : 59
Date d'inscription : 28/09/2011
Re: [LANGAGE C] Morpion
Je suis désolé de te griller encore, mais j'ai ceci qui te trouve le gagnant, est dans une boucle, mais ne verrouille pas les cases déjà prises :
Maintenant, il faut trouver une solution pour verrouiller les cases déjà occupées, et enfin optimiser tout ça !
Bon, ce sera plus tard dans la semaine, 'vais faire
- Spoiler:
- Code:
#include <stdio.h>
#include <stdlib.h>
void ecran_jeu(a,b,c,d,e,f,g,h,i)
{
system("cls");
printf(" %c | %c | %c \n", a,b,c);
printf("---+---+---\n");
printf(" %c | %c | %c \n", d,e,f);
printf("---+---+---\n");
printf(" %c | %c | %c \n\n", g,h,i);
}
int main(int argc, char *argv[])
{
char a='a',b='b',c='c',d='d',e='e',f='f',g='g',h='h',i='i';
char choix;
int ResScanf, ResScanf2, findujeu;
do
{
do
{
ecran_jeu(a,b,c,d,e,f,g,h,i);
/* printf(" %c | %c | %c |\n", a,b,c);
printf(" %c | %c | %c |\n", d,e,f);
printf(" %c | %c | %c |\n\n", g,h,i);*/
printf("O%c voulez-vous pla%cer votre X ?\n", 151, 135);
ResScanf=scanf("%c", &choix);
fflush(stdin);
}while(ResScanf!=1 || (choix != 'a' && choix != 'b' && choix != 'c' && choix != 'd' &&choix != 'e' &&choix != 'f' &&choix != 'g' && choix != 'h' &&choix != 'i'));
switch(choix)
{
case 'a':{ a='X';
}
break;
case 'b':{ b='X';;
}
break;
case 'c':{ c='X';
}
break;
case 'd':{ d='X';
}
break;
case 'e':{ e='X';
}
break;
case 'f':{ f='X';
}
break;
case 'g':{ g='X';
}
break;
case 'h':{ h='X';
}
break;
case 'i':{ i='X';
}
break;
}
ecran_jeu(a,b,c,d,e,f,g,h,i);
if ((a=='X' && e=='X' && i=='X' ) || (a=='X' && b=='X' && c=='X' )||(a=='X' && d=='X' && g=='X') || (c=='X' &&e=='X' && g=='X') || (d=='X' && e=='X' && f=='X') || (b=='X' && e=='X' && h=='X'))
{
printf("Le joueur X gagne !\n");
findujeu=1;
system("PAUSE");
return 0;
}
do
{
ecran_jeu(a,b,c,d,e,f,g,h,i);
printf("O%c voulez-vous pla%cer votre O?\n", 151, 135);
ResScanf2=scanf("%c", &choix);
fflush(stdin);
}while (ResScanf2!=1 || (choix != 'a' && choix != 'b' && choix != 'c' && choix != 'd' &&choix != 'e' &&choix != 'f' &&choix != 'g' && choix != 'h' &&choix != 'i'));
switch(choix)
{
case 'a':{ a='O';
}
break;
case 'b':{ b='O';;
}
break;
case 'c':{ c='O';
}
break;
case 'd':{ d='O';
}
break;
case 'e':{ e='O';
}
break;
case 'f':{ f='O';
}
break;
case 'g':{ g='O';
}
break;
case 'h':{ h='O';
}
break;
case 'i':{ i='O';
}
break;
}
ecran_jeu(a,b,c,d,e,f,g,h,i);
if ((a=='O' && e=='O' && i=='O' ) || (a=='O' && b=='O' && c=='O' )||(a=='O' && d=='O' && g=='O') || (c=='O' &&e=='O' && g=='O') || (d=='O' && e=='O' && f=='O') || (b=='O' && e=='O' && h=='O'))
{
printf("Le joueur O gagne !\n");
findujeu=1;
system("PAUSE");
return 0;
}
}while (findujeu != 1);
}
Maintenant, il faut trouver une solution pour verrouiller les cases déjà occupées, et enfin optimiser tout ça !
Bon, ce sera plus tard dans la semaine, 'vais faire
Thibaut J- Mini Développeur
- Messages : 39
Date d'inscription : 28/09/2011
Age : 111
Re: [LANGAGE C] Morpion
pfff la prochaine fois je garde mon projet pour moi tout seul ... -_-
Dernière édition par DamienRD le Mer 16 Nov - 8:30, édité 1 fois
DamienRD- Développeur
- Messages : 59
Date d'inscription : 28/09/2011
Re: [LANGAGE C] Morpion
Je rappelle que quand quelqu'un soumet un projet dans la partie "Programmes" le but est de l'aider a le réaliser et non pas de le faire soi-même et de s'attribuer le mérite, pour cela on va dans la section "Défis"...
Thibaut la prochaine fois tu y penseras
Thibaut la prochaine fois tu y penseras
Re: [LANGAGE C] Morpion
Je ne m'attribue pas le mérite...
Et je pensais aider, justement...
De même je n'avais pas non plus compris le concept de cette section du forum alors...
Mais c'est vrai que j'aurais peut-être pas dû être au taquet, j'avais crû que c'était un truc collaboratif, je suis désolé de t'avoir coupé dans ton élan, je t'avais manifesté (Damien) mon intérêt pour ce projet...
Mille excuses.
Je supprime mes posts et fait ça dans mon coin alors (cette question est posée sur un ton neutre et non avec de la remontrance comme on pourrait le penser; ce n'est pas une question rhétorique non plus, je suis réellement prêt à le faire) ?
On supprime ce topic et recommençons chacun de son côté un programme-morpion ?
Et je pensais aider, justement...
De même je n'avais pas non plus compris le concept de cette section du forum alors...
Mais c'est vrai que j'aurais peut-être pas dû être au taquet, j'avais crû que c'était un truc collaboratif, je suis désolé de t'avoir coupé dans ton élan, je t'avais manifesté (Damien) mon intérêt pour ce projet...
Mille excuses.
Je supprime mes posts et fait ça dans mon coin alors (cette question est posée sur un ton neutre et non avec de la remontrance comme on pourrait le penser; ce n'est pas une question rhétorique non plus, je suis réellement prêt à le faire) ?
On supprime ce topic et recommençons chacun de son côté un programme-morpion ?
Thibaut J- Mini Développeur
- Messages : 39
Date d'inscription : 28/09/2011
Age : 111
Re: [LANGAGE C] Morpion
bof ca passe pour cette fois
Par contre pour mon prochain projet, si tu veux je veux le faire a deux ^^
Par contre pour mon prochain projet, si tu veux je veux le faire a deux ^^
DamienRD- Développeur
- Messages : 59
Date d'inscription : 28/09/2011
Re: [LANGAGE C] Morpion
Je comprends Thibaut, je t'engueules pas non plus
Je vais de ce pas rajouter une section pour les projets avec le choix entre perso (et demande d'aide) ou collaboratif.
Concernant la suppression de tes posts, moi ça m'est égal, vois-ça avec Damien
Je vais de ce pas rajouter une section pour les projets avec le choix entre perso (et demande d'aide) ou collaboratif.
Concernant la suppression de tes posts, moi ça m'est égal, vois-ça avec Damien
Sujets similaires
» [LANGAGE C] Le GPS du champ !
» [LANGAGE C] GrpB - Marées
» [LANGAGE C]Salaire Net[V1.1]
» [LANGAGE C] La Calculatrice basique
» [COURS] Langage C [Non officiels]
» [LANGAGE C] GrpB - Marées
» [LANGAGE C]Salaire Net[V1.1]
» [LANGAGE C] La Calculatrice basique
» [COURS] Langage C [Non officiels]
Forum UVSQ :: DUT :: Informatique :: Programmation :: Programmes
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|