Program Senet; uses crt; Const N=3; M=10; S=1; Type Var X: Matriz; PROCEDURE presentacion; {presentacion del programa} Begin Writeln ('.........................................'); Writeln (' ---- SENET ---- '); Writeln ('.........................................'); Writeln; Writeln; End; PROCEDURE JUGAR; {Codigo del juego} Procedure llenarmatriz (Var X: Matriz); Var F,C: Integer; begin Randomize; For F:= 1 to N do Begin For C:= 1 to M do begin X[F, C]:= Random(10); End; End; End; Procedure mostrarmatriz (Var Y: Matriz); Var F,C,S: Integer; Begin For F:=1 to N do Begin For C:= 1 to M do Begin Write(' ',Y[F,C],' '); End; Writeln; Writeln; End; End; Procedure Dados; Var X,Y,Z,L:Integer; { POSICIONES A JUGAR SEGUN LAS FICHAS} Begin Clrscr; Randomize; X:= Random (2); Y:= Random (2); Z:= Random (2); { BLANCO=0 NEGRO=1 } L:= Random (2); If (X+Y+Z+L=0) THEN writeln ('casillas a mover:', 4); writeln ('X:',X,'Y:',Y,'Z:',Z,'L:',L) else if (X+Y+Z+L=1) THEN writeln ('casillas a mover:', 3); writeln ('X:',X,'Y:',Y,'Z:',Z,'L:',L) else if (X+Y+Z+L=2) THEN writeln ('casillas a mover:', 2); writeln ('X:',X,'Y:',Y,'Z:',Z,'L:',L) else if (X+Y+Z+L=3) THEN writeln ('casillas a mover:', 1); writeln ('X:',X,'Y:',Y,'Z:',Z,'L:',L) else if(X+Y+Z+L=4) THEN writeln ('casillas a mover:', 6); writeln ('X:',X,'Y:',Y,'Z:',Z,'L:',L); Readln; End; begin llenarmatriz (X); mostrarmatriz (X); Dados (X); Readln; end; PROCEDURE AYUDA; {Instrucciones del juego} Begin Writeln ('Senet es el juego egipcio mas famoso que ha llegado hasta', ' nuestros dias. '); Writeln ('Aparece en multiples pinturas de las tumbas, y se han', ' encontrado varios juegos completos entre las pertenencias '); Writeln ('con las que eran enterrados los faraones para poder', ' disfrutar de ellas en su otra vida.'); Writeln ('Sencillo de jugar, representa una carrera de las', ' fichas por llegar a su destino antes de ser alcanzadas por el rival.'); Writeln ('En ocasiones se han representado en las paredes', ' de las piramides partidas de Senet entre el muerto y un', ' espíritu de ultratumba,'); Writeln ('como si se tratara de una partida para ganar el', ' derecho a entrar en el mas alla. '); Writeln; Writeln ('Jugadores: 2 - Objetivo: Llevar todas las fichas', ' a la salida.'); Writeln ('Valores: 1,6: avanza 1,6 espacios y lanza de nuevo', ' los dados. 2,3,4,5: avanza 2,3,4,5 espacios. '); Writeln ('Casillas: '); Writeln ('Renacer: (casilla 15) Aqui vuelven las casillas', ' que caen al rio. Si esta ocupada retrocede a la siguiente', ' casilla libre. '); Writeln; Writeln ('Felicidad: (casilla 26) Casilla obligada, las fichas', ' no pueden acceder a las ultimas casillas si no han pisado la', ' casilla de la felicidad. '); Writeln; Writeln ('Rio Nilo: (casilla 27) Cuando una ficha cae en el rio', ' vuelve a la casilla renacer. '); Writeln; Writeln ('Exacto 3: (casilla 28) No se mueve hasta sacar un 3.'); Writeln ('Exacto 2: (casilla 29) No se mueve hasta sacar un 2. '); Writeln ('Jugando:'); Writeln ('- Se reparten 5 piezas y un dado por jugador. Se disponen las', ' piezas intercaladas en el tablero. '); Writeln ('- Al inicio el jugador lanza su dado y avanza los espacios con', ' una ficha.'); Writeln ('- No puede llegar a una casilla ocupada por sus propias fichas.'); Writeln ('- Si llega a una casilla ocupada por una ficha del oponente, la', ' captura y ambas fichas intercambian lugares. '); Writeln ('- Cuando hay 2 fichas del mismo color en casillas juntas se forma', ' un bloqueo, ninguna de las 2 fichas pueden ser capturadas, '); Writeln (' las fichas contrarias sólo pueden saltarla.'); Writeln ('- Cuando hay 3 fichas del mismo color en casillas juntas se', ' forma una barrera, las fichas no pueden ser capturadas ni saltadas. '); Writeln ('- El jugador esta obligado a moverse, si no puede avanzar debe', 'retroceder. Si no puede retroceder pasa el turno.'); Writeln ('- Cuando el jugador mueve una de sus fichas termina su turno.'); Writeln ('- Gana el jugador que saque todas las fichas del tablero.'); writeln; writeln(' Pulse Una Tecla '); readkey; End; PROCEDURE menu; {Menu del juego} VAR op:char; Begin Repeat clrscr; presentacion; writeln(' ****[ Menu Juego ]****'); writeln(' Elija la opcion que desee: '); writeln; Writeln (' 1. Jugar'); Writeln (' 2. Ayuda'); Writeln (' 3. Salir'); writeln; repeat op := readkey; Until (op in ['1'..'3']); clrscr; Case op of '1': Jugar; '2': Ayuda; end; until op = '3'; End; begin menu; End.
Archivos adjuntos
Editado por egostar, 19 mayo 2015 - 08:17 .
Agregar etiqueta de código