C/Visual C - nelek como se borra la memoria en C

 
Vista:

nelek como se borra la memoria en C

Publicado por diego (15 intervenciones) el 21/07/2006 23:13:09
tengo es turbo c, ya la matriz que da en 0 y to do bien pero cuando le doy a la opcion continuar sale del progrma y no continua, como haria para que se reinicie el juego sin salir ayudame el proyecto es para el lunes;

#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <stdlib.h>
#include <io.h>
char j1[20],j2[20],m[3][3];
int c1,c2,lv,i,j;
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();
m[i][j]=0;
c1=0;
c2=0;
lv=0;
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");
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++)
while(m[i][j]==0)
{
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 ("\\");
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;}
break;
}
}
menu ()
{
int opcion;
printf ("\n\n\n");
printf ("Que deseas hacer?");
printf ("Opcion 1: continuar");
printf ("Opcion 2:salir");
scanf ("%d", &opcion);
switch (opcion)
{
case 1:goto(mostrar());
gotoxy(1,13);cprintf("%s [X]:%d\n",j1,c1);c1=c1+1;
gotoxy(1,15);cprintf("%s [O]:%d\n",j2,c2);c2=c2+1;
gotoxy(1,17);cprintf("vieja :%d\n",lv);
case 2:return 0;

}
}
main()
{
clrscr();
leer ();
mostrar ();
usuarios ();
menu ();
gotoxy(1,13);cprintf("%s [X]:%d\n",j1,c1);c1=c1+1;
gotoxy(1,15);cprintf("%s [O]:%d\n",j2,c2);c2=c2+1;
gotoxy(1,17);cprintf("vieja :%d\n",lv);
}
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:nelek como se borra la memoria en C

Publicado por Nelek (816 intervenciones) el 24/07/2006 09:47:47
En primer lugar siento no haber podido contestar antes. Se me estropeó la tarjeta gráfica del portatil y me he quedado sin ordenador en casa temporalmente.

No te continua porque estas haciendo un goto (funcion ()) y deberia ser un goto (etiqueta). Por eso se sale del programa, para que se repita deberías poner la etiqueta en el punto a partir del cual quieres que vuelva, en este caso poner la etiqueta justo antes de la llamada a mostrar () que hay dentro del main.

main()
{
clrscr();
leer ();
Etiqueta: // Aqui
mostrar ();
usuarios ();
menu ();
gotoxy(1,13);cprintf("%s [X]:%d\n",j1,c1);c1=c1+1;
gotoxy(1,15);cprintf("%s [O]:%d\n",j2,c2);c2=c2+1;
gotoxy(1,17);cprintf("vieja :%d\n",lv);
}

y luego en el otro sitio goto Etiqueta;
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

Espero que llegara a tiempo

Publicado por Nelek (816 intervenciones) el 24/07/2006 09:49:42
Acabo de ver que era para hoy la entrega. Lo siento muchísimo si no llegué a tiempo.
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