C/Visual C - para Nelek

 
Vista:

para Nelek

Publicado por Diego (15 intervenciones) el 18/07/2006 14:26:55
hola disculpa que te pregunte tanto pero es que soy nuevo en esto. aqui te envio lo que llevo hecho en el juego el me corre bien pero quiero que el vuelva a empezar cuando alguiene gane si puedes darme algunas cosas que debo agregar o quitar.

#include <stdio.h>
#include <conio.h>
#include <dos.h>
char j1[20],j2[20],m[3][3];
int c1,c2,lv;
char continuar;
void erase(int,int,int);
leer ()
{
int i,j,sitio;
c1=0;
c2=0;
lv=0;

gotoxy(10,2);printf("BIENVENIDO AL GRAN JUEGO DE LA VIEJA\n");
gotoxy(10,6);printf("Ingrese Nombre del jugador 1\n");
gotoxy(15,8);scanf("%s",&j1);
gotoxy(10,10);printf("Ingrese Nombre del jugador 2\n");
gotoxy(15,12);scanf("%s",&j2);
}
mostrar()
{
clrscr();
textcolor(GREEN);
gotoxy(1,2);cprintf("Instituto Universitario de Tecnologia José Antonio Anzoategui\n");
gotoxy(20,3);cprintf("I.U.J.A.A\n");
textcolor(YELLOW);
gotoxy(15,1);cprintf("''''''''''LA VIEJA''''''''''\n");
textcolor(CYAN);
gotoxy(1,13);cprintf("%s [X]:%d\n",j1,c1);
gotoxy(1,15);cprintf("%s [O]:%d\n",j2,c2);
gotoxy(1,17);cprintf("vieja :%d\n",lv);
gotoxy(30,8);printf("%s juega con casillas\n",j1);gotoxy(56,8);printf("%s juega con casillas\n",j2);
gotoxy(16,11);printf(" | | \n");gotoxy(40,9);printf(" | | \n");gotoxy(65,9);printf(" | | \n");
gotoxy(16,12);printf(" | | \n");gotoxy(40,10);printf(" 1 | 2 | 3 \n");gotoxy(65,10);printf(" 10 | 11 | 12 \n");
gotoxy(16,13);printf(" | | \n");gotoxy(40,11);printf("---|---|---\n");gotoxy(65,11);printf("----|----|----\n");
gotoxy(16,14);printf("-----|-----|-----\n");gotoxy(40,12);printf(" 4 | 5 | 6 \n");gotoxy(65,12);printf(" 13 | 14 | 15 \n");
gotoxy(16,15);printf(" | | \n");gotoxy(40,13);printf("---|---|---\n");gotoxy(65,13);printf("----|----|----\n");
gotoxy(16,16);printf(" | | \n");gotoxy(40,14);printf(" 7 | 8 | 9 \n");gotoxy(65,14);printf(" 16 | 17 | 18 \n");
gotoxy(16,17);printf(" | | \n");gotoxy(40,15);printf(" | | \n");gotoxy(65,15);printf(" | | \n");
gotoxy(16,18);printf("-----|-----|-----\n");
gotoxy(16,19);printf(" | | \n");
gotoxy(16,20);printf(" | | \n");
gotoxy(16,21);printf(" | | \n");
}
usuarios ()
{
int i,j,sitio;
for(sitio=1;sitio<=19;sitio++)
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
{
do
{
gotoxy(1,4);printf("Ingrese el sitio de tu jugada [1-18]: ");
scanf("%d",&sitio);

/*Jugadas para 'X'*/
if (sitio<=0 || sitio>18)
{gotoxy (1,6); printf ("Entrada incorrecta, introduzca un no. valido:");}
else if (sitio==1) {i=j=1;}
else if (sitio==2) {i=1; j=2;}
else if (sitio==3) {i=1; j=3;}
else if (sitio==4) {i=2; j=1;}
else if (sitio==5) {i=j=2;}
else if (sitio==6) {i=2; j=3;}
else if (sitio==7) {i=3; j=1;}
else if (sitio==8) {i=3; j=2;}
else if (sitio==9) {i=j=3;}
/*Jugadas Para 'O'*/
else if (sitio==10) {i=j=1;}
else if (sitio==11) {i=1; j=2;}
else if (sitio==12) {i=1; j=3;}
else if (sitio==13) {i=2; j=1;}
else if (sitio==14) {i=j=2;}
else if (sitio==15) {i=2; j=3;}
else if (sitio==16) {i=3; j=1;}
else if (sitio==17) {i=3; j=2;}
else if (sitio==18) {i=j=3;}

if (m[i][j]=='O'||m[i][j]=='X')
{gotoxy (1,5); printf ("Esta casilla esta  ocupada, introduzca una nueva: ");
sitio=0;}
}
/*Formula para imprimir la jugada donde corresponda*/
while (sitio <=0 || sitio>18);
{

if(sitio<10)
{gotoxy(((j+1)*6)+6,((i+1)*3)+7); printf ("X");
m[i][j]='X';}

if(sitio>9)
{gotoxy(((j+1)*6)+6,((i+1)*3)+7); printf ("O");
m[i][j]='O';}

}
/*Revisar Ganador para 'X'*/
if (m[1][1]=='X'&& m[1][1]==m[2][2]&& m[2][2]==m[3][3])
{
gotoxy(14,23);printf("%s Gano la Partida\n",j1);
gotoxy(18,13); printf ("\\");gotoxy(24,16); printf ("\\");gotoxy(30,19); printf ("\\");getch();
return 0;}
if (m[3][1]=='X'&& m[3][1]==m[2][2]&& m[2][2]==m[1][3])
{
gotoxy(14,23);printf("%s Gano la Partida\n",j1);
gotoxy(30,13); printf ("/");gotoxy(24,16); printf ("/");gotoxy(18,19); printf ("/");
return 0;}
if (m[1][1]=='X'&& m[1][1]==m[2][1]&& m[2][1]==m[3][1])
{
gotoxy(14,23);printf("%s Gano la Partida\n",j1);
gotoxy(18,13); printf ("|");gotoxy(18,16); printf ("|");gotoxy(18,19); printf ("|");
return 0;}
if (m[1][2]=='X'&& m[1][2]==m[2][2]&& m[2][2]==m[3][2])
{
gotoxy(14,23);printf("%s Gano la Partida\n",j1);
gotoxy(24,13); printf ("|");gotoxy(24,16); printf ("|");gotoxy(24,19); printf ("|");
return 0;}
if (m[1][3]=='X'&& m[1][3]==m[2][3]&& m[2][3]==m[3][3])
{
gotoxy(14,23);printf("%s Gano la Partida\n",j1);
gotoxy(30,13); printf ("|");gotoxy(30,16); printf ("|");gotoxy(30,19); printf ("|");
return 0;}
if (m[1][1]=='X'&& m[1][1]==m[1][2]&& m[1][2]==m[1][3])
{
gotoxy(14,23);printf("%s Gano la Partida\n",j1);
gotoxy(18,13); printf ("_"); gotoxy(24,13); printf ("_");gotoxy(30,13); printf ("_");
return 0;}
if (m[2][1]=='X'&& m[2][1]==m[2][2]&& m[2][2]==m[2][3])
{
gotoxy(14,23);printf("%s Gano la Partida\n",j1);
gotoxy(18,16); printf ("_"); gotoxy(24,16); printf ("_");gotoxy(30,16); printf ("_");
return 0;}
if (m[3][1]=='X'&& m[3][1]==m[3][2]&& m[3][2]==m[3][3])
{
gotoxy(14,23);printf("%s Gano la Partida\n",j1);
gotoxy(18,19); printf ("_"); gotoxy(24,19); printf ("_");gotoxy(30,19); printf ("_");
return 0;}

/*Revisar Ganador para 'O'*/

if (m[1][1]=='O'&& m[1][1]==m[2][2]&& m[2][2]==m[3][3])
{
gotoxy(14,23);printf("%s Gano la Partida\n",j2);
gotoxy(18,13); printf ("\\");gotoxy(24,16); printf ("\\");gotoxy(30,19); printf ("\\");
return 0;}
if (m[3][1]=='O'&& m[3][1]==m[2][2]&& m[2][2]==m[1][3])
{
gotoxy(14,23);printf("%s Gano la Partida\n",j2);
gotoxy(30,13); printf ("/");gotoxy(24,16); printf ("/");gotoxy(18,19); printf ("/");
return 0;}
if (m[1][1]=='O'&& m[1][1]==m[2][1]&& m[2][1]==m[3][1])
{
gotoxy(14,23);printf("%s Gano la Partida\n",j2);
gotoxy(18,13); printf ("|");gotoxy(18,16); printf ("|");gotoxy(18,19); printf ("|");
return 0;}
if (m[1][2]=='O'&& m[1][2]==m[2][2]&& m[2][2]==m[3][2])
{
gotoxy(14,23);printf("%s Gano la Partida\n",j2);
gotoxy(24,13); printf ("|");gotoxy(24,16); printf ("|");gotoxy(24,19); printf ("|");
return 0;}
if (m[1][3]=='O'&& m[1][3]==m[2][3]&& m[2][3]==m[3][3])
{
gotoxy(14,23);printf("%s Gano la Partida\n",j2);
gotoxy(30,13); printf ("|");gotoxy(30,16); printf ("|");gotoxy(30,19); printf ("|");
return 0;}
if (m[1][1]=='O'&& m[1][1]==m[1][2]&& m[1][2]==m[1][3])
{
gotoxy(14,23);printf("%s Gano la Partida\n",j2);
gotoxy(18,13); printf ("_"); gotoxy(24,13); printf ("_");gotoxy(30,13); printf ("_");
return 0;}
if (m[2][1]=='O'&& m[2][1]==m[2][2]&& m[2][2]==m[2][3])
{
gotoxy(14,23);printf("%s Gano la Partida\n",j2);
gotoxy(18,16); printf ("_"); gotoxy(24,16); printf ("_");gotoxy(30,16); printf ("_");
return 0;}
if (m[3][1]=='O'&& m[3][1]==m[3][2]&& m[3][2]==m[3][3])
{
gotoxy(14,23);printf("%s Gano la Partida\n",j2);
gotoxy(18,19); printf ("_"); gotoxy(24,19); printf ("_");gotoxy(30,19); printf ("_");
return 0;}
}
return (mostrar());}

main()
{
clrscr();
leer ();
mostrar ();
usuarios ();
getch();
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:para Nelek

Publicado por Nelek (816 intervenciones) el 18/07/2006 16:31:40
Mmmm,

No lo estoy mirando con demasiado detenimiento porque no tengo mucho tiempo, ademas dices que funciona, asi que si lo unico que quieres es el añadir el menu de volver a jugar y demas, seria modificar solo el main.

Por ejemplo:

main ()
{
StartLabel: //Etiqueta para ir si vuelves a empezar
clrscr ();
leer ();
mostrar ();
usuarios ();
menu (); //esto seria lo que falta para determinar que se hace.
}

void menu ()
{
int opcion;
printf ("\n\n\n");
printf ("Que deseas hacer?");
printf ("Opcion 1: Lo que sea);
printf ("Opcion 2: Lo que sea);
printf ("Opcion 3: Lo que sea);
printf ("Opcion 4: Lo que sea);
.... //las opciones necesarias
scanf ("%d", &opcion);

switch (opcion)
{
case 1: Funcion_asociada (); break;
case 2: Funcion_asociada (); break;
//los otros que falten
default: break; //para casos que no esten contemplados en el menu, no va
}

y ahora seria hacer lo que quisieras en las funciones_asociadas.

Nota: Para cosas sencillas no hace falta que implementes otra funcion, es decir, si la opcion 1 es volver a jugar entonces, case 1: goto StartLabel; break;
si la opcion 4 es salir, entonces case 4: exit ();
etc...

Era esto lo que querias?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:para Nelek

Publicado por Nelek (816 intervenciones) el 18/07/2006 16:40:51
Perdona, no me acorde que tambien querias usar un contador de partidas, o algo asi, no?

Eso se puede lograr de dos maneras, con variables globales y al final de cada partida incrementas la que toca. O haciendo que tu funcion de juego sea tipo
int jugar_partida ();
y asi, cuando acabas devuelves un 1 o un 2 segun haya ganado un jugador u otro.
Luego en la funcion principal, te declaras las variables de tanteo de los jugadores y cada vez que acaba una partida haces un if con el resultado, sumando el punto al que sea necesario.

main ()
{ int puntos1 = 0, puntos2 = 0;
//FUNCIONAMIENTO NORMAL
int ganador = funcion_de_juego () //creo que es usuarios, no?
if (ganador == 1) { puntos1++; }
else if (ganador == 2) { puntos2++; }
//Date cuenta que no puse un "else" sino el "else if" que puede que no gane
//nadie y ese seria el 3 caso
//RESTO DEL PROGRAMA
}

y dentro de la funcion que ejecuta realmente el juego...

int usuarios ()
{.....................
//Todo como lo tienes y al final del todo, cuando la partida ha acabado
if (ganador == 1) {return 1;}
else if (ganador == 2) {return 2;}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar