Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
practica 11 ejercicio 5
program HelloWorld; {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- CONST - Define las constantes para usar en tiempo de compilacion} const filas = 15; columnas = 15; puntos = 10; rounds = 10; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- TYPE - Define los tipos creados por el usuario para usar en tiempo de compilacion} type rangoRounds = 1 .. rounds; rangoFilas = 1 .. filas; rangoColumnas = 1 .. columnas; rangoPuntos = 0 .. puntos; Tposicion = record fila : rangoFilas; columna : rangoColumnas; end; Ttablero = record punto : rangoPuntos; uso : boolean; end; Tdatos = record tablero : Ttablero; posicion : Tposicion; end; Tjugador = record posicion : Tposicion; puntaje : rangoRounds; // almacena los puntos totales del jugador end; Tlista = ^nodo; nodo = record datos : Tdatos; sig : Tlista; end; Tmatriz = array [rangoFilas,rangoColumnas] of Ttablero; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- VARIABLES GLOBALES - Define variables que se podran usar por todos los modulos de ser necesarias} //var {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- } procedure cargarDatos (var l:Tlista; d : Tdatos); var act,nue,ult : Tlista; begin new(nue); nue^.datos:= d; nue^.sig := nil; act := l; while act <> nil do begin ult := act; act := act^.sig; end; if act = l then begin l:=nue; end else ult^.sig := nue; end; {----------------------------------------------------------------- } procedure leerDatos(var d : Tdatos); begin d.tablero.punto := random(puntos+1); if d.tablero.punto <> 0 then begin d.tablero.uso := false; d.posicion.fila:=random(filas)+1; d.posicion.columna:=random(columnas)+1; end; end; {----------------------------------------------------------------- } procedure cargarLista(var l : Tlista); var d : Tdatos; begin l := nil; leerDatos(d); while d.tablero.punto <> 0 do begin cargarDatos(l,d); leerDatos(d); end; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- } procedure espacio; begin writeln('-----------------------------------------------------------------'); end; {----------------------------------------------------------------- } procedure imprimirDatos( d : Tdatos); begin writeln('posicion: [',d.posicion.fila:2,',',d.posicion.columna:2,'] puntos: ',d.tablero.punto); end; {----------------------------------------------------------------- } procedure imprimirLista( l : Tlista); begin espacio; while l <> nil do begin imprimirDatos(l^.datos); l := l^.sig; end; espacio; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- } procedure inicializarTablero(var m : Tmatriz); var i : rangoFilas; j : rangoColumnas; begin for i := 1 to filas do for j := 1 to columnas do begin m[i,j].punto := 0; m[i,j].uso := false; end; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- } procedure cargarTablero(var m : Tmatriz; l:Tlista); begin while l <> nil do begin m[l^.datos.posicion.fila,l^.datos.posicion.columna]:=l^.datos.tablero; l:=l^.sig; end; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- } procedure imprimirTablero(m : Tmatriz); var i:rangoFilas; j:rangoColumnas; begin write(' '); for j:=1 to columnas do write(j:5); writeln; // linea write(' '); for j:=1 to columnas do write('-----'); writeln; for i:=1 to filas do begin //nro de fila write(i:2); for j:=1 to columnas-1 do write(' | ',m[i,j].punto:2); writeln(' | ',m[i,j].punto:2,' |'); //linea write(' '); for j:=1 to columnas do write('-----'); writeln; end; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- } procedure informar(j1 : rangoRounds; j2 : rangoRounds); begin if j1 > j2 then begin writeln('el ganador es el jugador 1'); end else if j1 < j2 then begin writeln('el ganador es el jugador 2'); end else if j1 = j2 then writeln('empataron la partida'); end; {----------------------------------------------------------------- } procedure comparar(var j1 : Tjugador; var j2 : Tjugador; var m : Tmatriz); begin // si alguno de los dos jugadores eligio una posicion ya utilizada: if (m[j1.posicion.fila,j1.posicion.columna].uso)and(m[j2.posicion.fila,j2.posicion.columna].uso) then begin writeln('ambos jugadores eligieron una posicion ya usada, nadie suma puntos'); end else if(m[j1.posicion.fila,j1.posicion.columna].uso)then begin writeln('el jugador 1 eligió una posicion ya usada, solo el jugador 2 suma puntos'); m[j2.posicion.fila,j2.posicion.columna].uso := true; j2.puntaje := j2.puntaje +1; end else if(m[j2.posicion.fila,j2.posicion.columna].uso)then begin writeln('el jugador 2 eligió una posicion ya usada, solo el jugador 1 suma puntos'); m[j1.posicion.fila,j1.posicion.columna].uso := true; j1.puntaje:=j1.puntaje+1; end else begin // en el caso contrario: if (m[j2.posicion.fila,j2.posicion.columna].punto > m[j1.posicion.fila,j1.posicion.columna].punto) then begin j2.puntaje := j2.puntaje +1; writeln('gana j2 por puntos'); end else if (m[j2.posicion.fila,j2.posicion.columna].punto < m[j1.posicion.fila,j1.posicion.columna].punto) then begin j1.puntaje := j1.puntaje + 1; writeln('gana j1 por puntos'); end else writeln('empate'); m[j2.posicion.fila,j2.posicion.columna].uso:= true; m[j1.posicion.fila,j1.posicion.columna].uso:= true; end; end; {----------------------------------------------------------------- } procedure inicializar(var j1: Tjugador; var j2 : Tjugador); begin j1.puntaje :=0; j2.puntaje :=0; end; {----------------------------------------------------------------- } procedure leerJugada(var j : Tjugador); begin j.posicion.fila := random(filas)+1; j.posicion.columna := random(columnas)+1; end; {----------------------------------------------------------------- } procedure jugar(var m : Tmatriz); var j1,j2 : Tjugador; r : rangoRounds; begin inicializar(j1,j2); for r := 1 to rounds do begin leerJugada(j1); leerJugada(j2); comparar(j1,j2,m); end; informar(j1.puntaje,j2.puntaje); end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- PROGRAMA PRINCIPAL} var l : Tlista; m : Tmatriz; begin randomize; // inicializacion de tablero cargarLista(l); imprimirLista(l); inicializarTablero(m); cargarTablero(m,l); imprimirTablero(m); // juego jugar(m); end. {-----------------------------------------------------------------------------------------------------------------------}
run
|
edit
|
history
|
help
0
test06
222
1º Questão - VS - 1º Semestre 2017
C:\Users\skava\Documents\Паскаль
practica 3 ejercicio B6
Урок 2. Функции: abs, round, trunc, int, frac
test04
123
Hello World
Светофор-графика