Código
#include <stdio.h> #include <stdlib.h> #include <time.h> void ingresar(); void imprimir(); void constructor(); int turnojugador(); int dado1,dado2; char jugador1='X',PC='O'; typedef struct modeloserpiente { int cabeza_X,cabeza_Y, cola_X,cola_Y; }serpiente; typedef struct modeloescalera { int inicio_X,inicio_Y, final_X,final_Y; }escalera; typedef struct modelo_casilla{ char letra; int numero; }casilla; casilla matriz[10][10] = {0}; escalera escaleras[5]={0}; serpiente serpientes[5]={0}; //Carga dentro de la matriz las serpientes y escalera generados al azar, no genera salida(no devuelve nada)// void constructor(){ int i,j,k,aux,bandera,e; for(i=0;i<6;i++) { matriz[serpientes[i].cabeza_X][serpientes[i].cabeza_Y].letra = 'S'; do { if(serpientes[i].cola_X > serpientes[i].cabeza_X) { break; } }while(1); matriz[serpientes[i].cola_X][serpientes[i].cola_Y].letra = 's'; } for(i=0;i<5;i++) { matriz[escaleras[i].inicio_X][escaleras[i].inicio_Y].letra = 'E'; do { if(escaleras[i].inicio_X < escaleras[i].final_X) { break; } }while(1); matriz[escaleras[i].final_X][escaleras[i].final_Y].letra = 'e'; } } //Cargamos dentro de la matriz los numeros de casillas correspondiente a un trablero de juego// void ingresar(){ int i,j; int aux; aux=101; for (i=0; i<10 ; i++){ for (j=0; j<10; j++){ switch (i){ case 0: { (matriz[i][j]).numero= 100-j; break; } case 1: { (matriz[i][j]).numero = 81+j; break; } case 2: { (matriz[i][j]).numero= 80-j; break; } case 3: { (matriz[i][j]).numero= 61+j; break; } case 4: { (matriz[i][j]).numero=60-j; break; } case 5: { (matriz[i][j]).numero= 41+j; break; } case 6: { (matriz[i][j]).numero= 40-j; break; } case 7: { (matriz[i][j]).numero= 21+j; break; } case 8: { (matriz[i][j]).numero= 20-j; break; } case 9: { (matriz[i][j]).numero= 1+j; break; } } } } } //Imprimimos el tablero de juego considerando si cada casilla posee una ficha,escalera,serpiente, imprimiendolo o en caso contrario imprimiendo el numero// void imprimir(){ int i,j; for (i=0; i<10; i++) { for (j=0; j<10; j++) { if(matriz[i][j].letra == 'Z'||matriz[i][j].letra == 'X' || matriz[i][j].letra == 'O' || matriz[i][j].letra == 'S' || matriz[i][j].letra == 'E' || matriz[i][j].letra == 's' || matriz[i][j].letra == 'e') { } else { } } } } //Esta funcion pregunta al usuario si quiere seguir jugando o rendirse// //En caso de querer rendirse queda registrado para salir del juego// //En caso de seguir jugando se generara numeros para los dados y se movera la ficha la cantidad de casillas indicada por los dados// int turnojugador() { int seleccion,aux,bandera; do { printf("\nSeleccione una opcion de las siguientes:\n1-)Lanzar los dados.\n2-)Salir Del Juego. \n3-)Acerca De: \nSu eleccion es: "); if(aux==1 && seleccion ==1 ||seleccion == 2 ) { break; } else { printf("Resena\n Serpientes y escaleras es un antiguo juego\n de tablero indio, considerado \n actualmente como un clasico a nivel\n mundial. Se juega entre dos o mas \n personas en un tablero numerado y \n dividido en casilleros, que posee ademas \n un numero determinado de serpientes y \n escaleras que conectan, cada una, dos \n casilleros numerados. El movimiento se \n determina en la actualidad por un dado \n cuyos valores estan \n comprendidos entre 1 y 6.\n\n Objetivo\n\n El objetivo del juego es lograr que la ficha\n del jugador llegue desde el inicio: \n casillero inferior izquierdo, hasta el final:\n casillero superior izquierdo, ayudado por\n las escaleras y evitando las serpientes\n \n\n Reglas\n\n 1-Tirar los dados y moverse \n 2-Deslizarse hacia abajo si sale serpientes \n 3-Subirse hacia arriba si sale escaleras \n 4-Caer Exactamente en 100 para ganar"); } }while(1); if(seleccion==2) { return 2; } int i,j,k; int fila_nueva,columna_nueva; for(i=0;i<10;i++) { for(j=0;j<10;j++) { if(matriz[i][j].letra=='X' || matriz[i][j].letra=='Z') { } } } } // Para finalizar el juego int finalizarJuego(int jug1, int jug2, int x, int y) { if(jug1>=100) { jug1=100; } else { jug2=100; } return 0; } int main() { ingresar(); constructor(); imprimir(); matriz[9][0].letra = 'Z'; turnojugador(); return 0; }