Foros del Web » Programación para mayores de 30 ;) » C/C++ »

por favor ayuda!!!

Estas en el tema de por favor ayuda!!! en el foro de C/C++ en Foros del Web. tengo este pequeno problema, hice un juego del gato, ya saben el de X y O donde se deben unir 3 del mismo ya sean ...
  #1 (permalink)  
Antiguo 23/01/2011, 18:22
 
Fecha de Ingreso: enero-2011
Ubicación: XD
Mensajes: 3
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta por favor ayuda!!!

tengo este pequeno problema, hice un juego del gato, ya saben el de X y O donde se deben unir 3 del mismo ya sean vertical u horizontal o diagonal, pero al terminar de hacerlo guarde y corri mi codigo fuente y me marco ciertos errores que no se porque estan mal ; (

LOS "warnings" o alertas no importan ya que se sigue ejecutando mi programa bn, lo fallido son los "errors" o errores que no tengo ni la mas remota idea de lo ke tengo ke hacer para corregirlo y ke corra bien y poder jugar gato.

por favor ayudenme que este es una tarea ke tengo ke entregar para el martes 25!!!!

aki esta el codigo, es ANSI C o lenguaje C

--------------------------------------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <time.h>



//variables globales
void inicializar_tablero();
void nuevo_tablero();
void jugada();
char ganador();
time_t t;
char turno;
char matriz_nueva_posicion[3][3];
int i,j;



int main() {



//1.inicializar y despleguar el tablero
inicializar_tablero();
printf("\n");
//2.dar un volado para ver quien empieza
srand((unsigned) time(&t));
turno = rand()%2;
if(turno==1){
printf("Empieza el usuario");
}
else{
printf("Empieza la maquina");
}
//3.Usuario o maquina juega y se guarda la jugada. Y verificar si hay un ganador

do{
jugada();
ganador();
}while(ganador() == 0);

//4. Decir el ganador del juego
if(matriz_nueva_posicion[0][0] == 'X' || matriz_nueva_posicion[1][0] == 'X' || matriz_nueva_posicion[2][0] == 'X' || matriz_nueva_posicion[0][1] == 'X' || matriz_nueva_posicion[0][2] == 'X'){
puts("\n\n\tFELICIDADES GANASTE ");
}
else{
puts("\n\n\tLO SIENTO PERIDSTES ;-(");
}
return EXIT_SUCCESS;
}















//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@ FUNCIONES @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@

inicializar_tablero()
{
//declarar variables locales

//inicializar tablero, 3x3
char matriz_posicion[3][3];


//desplegar posiciones y valores actuales del tablero
printf("+++JUGEMOS GATO+++\n\n");
for(i=0;i<3;i++){

for(j=0;j<3;j++){
matriz_posicion[i][j]='-';
matriz_posicion[i][j]='-';

printf("%c",matriz_posicion[i][j]); printf("\t");
}

printf("\n");
}

}



///////////////////////////////////////////////////////////// JUGADA /////////////////////////////////////////////////////////////

jugada()
{
//variables locales


if(turno==1){
printf("Ingresa la posicion de tu jugada");
printf("FILA: ");
scanf("%i", & i);
printf("COLUMNA: ");
scanf("%i", & j);
matriz_nueva_posicion[i][j]='X';
}
else{
i = rand()%3;//fila
j = rand()%3;//columna
matriz_nueva_posicion[i][j]='O';
printf("La maquina ha ingresado su jugada");
}

nuevo_tablero();


}









///////////////////////////////////////////////////////////// NUEVO TABLERO ////////////////////////////////////////////////////
nuevo_tablero()
{

//desplegar el tablero actualizado

system("cls");

printf("+++JUGEMOS GATO+++\n\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(matriz_nueva_posicion == '0' || matriz_nueva_posicion == 'X'){
printf("%c",matriz_nueva_posicion[i][j]); printf("\t");
}
else{
matriz_nueva_posicion= '-';
printf("%c",matriz_nueva_posicion[i][j]); printf("\t");
}
}

printf("\n");
}
}





///////////////////////////////////////////////////////////// GANADOR //////////////////////////////////////////////////////////



ganador()
{

//verificacion de uniones horizontales (filas)
if(matriz_nueva_posicion[0][0] == matriz_nueva_posicion[0][1] && matriz_nueva_posicion[0][1] == matriz_nueva_posicion[0][2]){
return matriz_nueva_posicion[0][0];
}


else{
if(matriz_nueva_posicion[1][0] == matriz_nueva_posicion[1][1] && matriz_nueva_posicion[1][1] == matriz_nueva_posicion[1][2]){
return matriz_nueva_posicion[1][0];
}


else{
if(matriz_nueva_posicion[2][0] == matriz_nueva_posicion[2][1] && matriz_nueva_posicion[2][1] == matriz_nueva_posicion[2][2]){
return matriz_nueva_posicion[2][0];
}

else{
//verificacion de uniones verticales (columnas)
if(matriz_nueva_posicion[0][0] == matriz_nueva_posicion[1][0] && matriz_nueva_posicion[1][0] == matriz_nueva_posicion[2][0]){
return matriz_nueva_posicion[0][0];
}
else{
if(matriz_nueva_posicion[0][1] == matriz_nueva_posicion[1][1] && matriz_nueva_posicion[1][1] == matriz_nueva_posicion[2][1]){
return matriz_nueva_posicion[0][1];
}

else{
if(matriz_nueva_posicion[0][2] == matriz_nueva_posicion[1][2] && matriz_nueva_posicion[1][2] == matriz_nueva_posicion[2][2]){
return matriz_nueva_posicion[0][2];
}

else{
//verificacion de uniones diagonales (solamente hay 2 diagonales)
if(matriz_nueva_posicion[0][0] == matriz_nueva_posicion[1][1] && matriz_nueva_posicion[1][1] == matriz_nueva_posicion[2][2]){
return matriz_nueva_posicion[0][0];
}
else{
if(matriz_nueva_posicion[0][2] == matriz_nueva_posicion[1][1] && matriz_nueva_posicion[1][1] == matriz_nueva_posicion[2][0]){
return matriz_nueva_posicion[0][2];
}
else{
return 0;
}

}
}
} //cierres de los 6 else's
}
}
}
}

} //cierre de funcion ganador
  #2 (permalink)  
Antiguo 24/01/2011, 09:01
Avatar de Munire  
Fecha de Ingreso: julio-2010
Ubicación: en el ciberdespacio (España)
Mensajes: 150
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: por favor ayuda!!!

si declaras la funcion

void inicializar_tablero();

al escribirla tienes que poner tambien

void inicializar_tablero()
{
}


if(matriz_nueva_posicion == '0' || matriz_nueva_posicion == 'X'){

esto esta mal. tienes que ponerlo asi:

matriz_nueva_posicion[][] (dentro de los corchetes lo que creas necesario)


aqui lo mismo

matriz_nueva_posicion[][]= '-';
  #3 (permalink)  
Antiguo 24/01/2011, 16:14
 
Fecha de Ingreso: enero-2011
Ubicación: XD
Mensajes: 3
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: por favor ayuda!!!

gracias de verdad gran ayuda gracias ahora si funcionan mis funciones y parametros, pero tengo solamente 2 problemas mas:

1. como pongo cclear screen, tengo macbook pro y uso eclipse helios. intente system("cls"); pero no funciona y uso #include <conio.h> para usar getch(); pero me pone como error el #include <conio.h>.

2.si alguien puede lo compila y corre en su compu porfa, para ke vea a lo ke me refiero, en la funcion ganador(); lo que kiero ke haga es ke compare las posibles jugadas para ganar,horizontales o vetricales o diagonales, pero al ke 1 se cumpla ke retorne el caracter de dicha jugada y asi en main comparo para ver kien gano, pero el do while nomas se hace una vez y ya???? creo ke esta mal el while porfa ayudenme ke me falto poner o ke corrigo?

Última edición por MPSLOL; 24/01/2011 a las 17:01

Etiquetas: ansi, incompatible, integer, tarea, type
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:11.