void analizarOpcion(int opcion, tJuego * juego) { switch (opcion) { case JUEGO_NUEVO: pedirDimensiones(juego); pedirNiveles(juego); juegoNuevo(juego); break; case JUEGO_BITACORA: juegoBitacora(); break; case RECUPERAR: recuperar(); break; case TERMINAR: // Permite continuar el programa para finalizar break; default: printf("Opcion invalida\n"); break; } }
/* main crea la partida según las especificaciones del usuario ** y llama a jugar con dicha partida. */ int main(void){ int opcion; int modo; tPartida partida; char nombre[MAX_NOM]; tFlag ganador; int filas, columnas; printf("\n\t\t=*=*=*=*=*=*=*=*=*==FANORONA==*=*=*=*=*=*=*=*=*=*="); printf("\n\t\t=*=*=*=*=*=*=*=*=FUTURAMA EDITION=*=*=*=*=*=*=*=*=\n\n"); printf("\n\t\t=*=*=*=*=*=*=*==NOTAS SOBRE EL JUEGO=*=*=*=*=*=*=*=\n"); printf("\n\t\t\t\tLa captura es obligatoria\n"); printf("\n\t\tLas casillas fuertes se marcan con letras mayusculas\n"); printf("\t\ty las debiles oon minuscula"); printf("\n\n\t\tEl formato de movida es \"M [Fo,Co][Fd,Cd][w]\", o bien\n"); printf("\t\t\"M [Fo,Co][Fd,Cd][a]\", siendo Fo,Co Fd,Cd las coordenadas\n"); printf("\t\tde origen y destino, y w/a el tipo de movida (WITHDRAWAL \n"); printf("\t\t o APPROACH)\n\n"); printf("\t\t=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n\n"); printf("\tElija una opcion:\n\n"); printf("\t\t1. Juego nuevo: vs PC\n"); printf("\t\t2. Juego nuevo: dos jugadores\n"); printf("\t\t3. Cargar partida de archivo\n"); printf("\t\t4. Salir\n\n"); do{ opcion=getint("Ingrese un numero de opcion > "); }while(opcion<1 || opcion>4); if(opcion == 1 || opcion == 2){ modo = opcion == 1 ? PVE : PVP; /* 1 es juego contra la computadora, 2 es dos jugadores*/ pedirDimensiones(&filas, &columnas); partida=generarPartida(filas,columnas, modo); if(partida == NULL){ imprimirError(ERR_MEM_COMPU); return 1; } } else if(opcion == 3){ /*Cargar partida*/ printf("Ingrese el nombre del archivo:\n > "); leerLinea(nombre, MAX_NOM); partida=cargarPartida(nombre); /*modo cambia al correspondiente (0 o 1)*/ if(partida == NULL){ printf("\nError al intentar abrir el archivo \"%s\". Abortando...\n\n", nombre); return 1; } printf("\nMODO DE JUEGO: %s\n", modoJuego(partida)?"DOS JUGADORES":"JUGADOR VS COMPUTADORA"); printf("TURNO DEL JUGADOR %s\n", jugadorActual(partida)?"NEGRO":"BLANCO"); printf("DIMENSIONES DEL TABLERO: %dx%d\n\n", numFilas(partida),numCols(partida)); } else{ /* Salir */ printf("\n\t\t¡Adios!\n\n"); return 0; } ganador = jugar(partida); switch(ganador) { case GANADOR_BLANCO: printf("\a\n\n\t===========GANADOR: BLANCO==========\n\n"); break; case EMPATE: printf("\a\n\n\t===========EMPATE===========\n\n"); break; case GANADOR_NEGRO: printf("\a\n\n\t==========GANADOR: NEGRO===========\n\n"); break; } eliminarPartida(partida); return 0; }
int main(void){ enum tOpcion opcion; int modo; tTablero tablero; int jugador; char nombre[MAX_NOM]; tFlag ganador; srand(time(0)); printf("\n\t\t=*=*=*=*=*=*=*=*=*==FANORONA==*=*=*=*=*=*=*=*=*=*="); printf("\n\t\t=*=*=*=*=*=*=*=*=FUTURAMA EDITION=*=*=*=*=*=*=*=*=\n\n"); printf("\n\t\t=*=*=*=*=*=*=*=*=REGLAS DE JUEGO==*=*=*=*=*=*=*=*=\n"); printf("\n\t\t Hay bastantes reglas, Wikipedialo, ni idea\n\t\t Ah, salvo que hay que capturar si o si\n\n"); printf("\t\t=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n\n"); printf("\tElija una opcion:\n\n"); printf("\t\t1. Juego nuevo: vs PC\n"); printf("\t\t2. Juego nuevo: dos jugadores \n"); printf("\t\t3. Cargar partida de archivo\n"); printf("\t\t4. Salir\n\n"); do{ opcion=getint("Ingrese un numero de opcion > ") - 1; }while(opcion<0 || opcion>3); if(opcion == PVP || opcion == PVE){ modo = opcion; /* )1 para dos jugadores, 0 para juego contra la computadora*/ jugador=BLANCO; pedirDimensiones(&tablero); tablero=generarTablero(tablero.filas,tablero.cols); } else if(opcion == CARGAR){ printf("Ingrese el nombre del archivo:\n > "); getlinea(nombre, MAX_NOM); tablero=cargarPartida(&modo, &jugador, nombre); /*modo cambia al correspondiente (0 o 1)*/ if(tablero.matriz == NULL){ printf("\nError al intentar abrir el archivo \"%s\". Abortando...\n\n", nombre); return 1; } printf("\nMODO DE JUEGO: %s\n", modo?"DOS JUGADORES":"JUGADOR VS COMPUTADORA"); printf("TURNO DEL JUGARDOR %s\n", jugador?"NEGRO":"BLANCO"); printf("DIMENSIONES DEL TABLERO: %dx%d\n\n",tablero.filas,tablero.cols); } else{ printf("\n\t\t¡Adios!\n\n"); return 0; } ganador = jugar2(tablero, modo, jugador); switch(ganador) { case GANADOR_BLANCO: printf("GANA BLANCO\n\n"); break; case EMPATE: printf("EMPATE\n\n"); break; case GANADOR_NEGRO: printf("GANA NEGRO\n\n"); break; } printf("\n\t\tAdios!\n\n"); return 0; }