Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
practica 7 ejercicio B10
program HelloWorld; {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- CONST - Define las constantes para usar en tiempo de compilacion} const Filas = 10; Columnas = 10; barcosmax = 5; jugadasmax = 99; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- TYPE - Define los tipos creados por el usuario para usar en tiempo de compilacion} type //-----------RANGOS-----------// rangoDig = 0 .. 1; rangoFilas = 1 .. Filas; rangoColumnas = 1 .. Columnas; rangoJugadas = 0 .. jugadasmax; rangoBarcos = 0 .. barcosmax; //-----------REGISTROS-----------// Tnombre = string[15]; jugadas = record fila : rangoFilas; columna : rangoColumnas; end; Ttablero = array [rangoFilas,rangoColumnas] of rangoDig; TjugadasPrevias = record vector : array [rangoJugadas] of jugadas; DimL : rangoJugadas; end; Tjugador = record nombre : Tnombre; barcos : rangoBarcos; tablero : Ttablero; jugadasPrevias : TjugadasPrevias; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- VARIABLES GLOBALES - Define variables que se podran usar por todos los modulos de ser necesarias} //var {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- INICIALIZAR } procedure inicializar(var j : Tjugador); var i : rangoFilas; n : rangoColumnas ; begin for i := 1 to Filas do for n := 1 to Columnas do j.tablero[i,n]:=0; j.barcos := 0; readln(j.nombre); j.jugadasPrevias.DimL := 0; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- CARGAR TABLERO } procedure cargarTablero(var j : Tjugador); var i : rangoBarcos; fila : rangoFilas; columna : rangoColumnas; begin for i := 1 to barcosmax do begin repeat fila := random(Filas)+1; columna := random(Columnas)+1; Until (j.tablero[fila,columna]= 0); j.tablero[fila,columna]:= 1; j.barcos := j.barcos + 1; end; writeln('çantidad de barcos ',j.barcos); end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- IMPRIMIR LINEA} procedure imprimirLinea(); var j:rangoColumnas; begin write(' '); for j := 1 to Columnas do write('----'); writeln; end; {----------------------------------------------------------------- IMPRIMIR COLUMNAS} procedure imprimirColumnas(); var j : rangoColumnas; begin writeln; write(' '); for j:=1 to Columnas do if j > 9 then begin write(' ',j); end else write(' ',j); writeln; end; {----------------------------------------------------------------- IMPRIMIR TABLERO} procedure imprimirTablero(t : Ttablero); var i : rangoFilas; j : rangoColumnas; begin imprimirColumnas(); imprimirLinea(); for i := 1 to Filas do begin if i < 10 then begin write(' ',i,' '); end else write(' ',i,' '); for j := 1 to Columnas-1 do write(' | ',t[i,j]); writeln(' | ',t[i,j],' | '); imprimirLinea(); end; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- VERIF - Se encarga de evitar que los jugadores elijan dos veces las mismas posiciones} procedure verif(var fila : rangoFilas;var columna : rangoColumnas; var turn : integer;var j : TjugadasPrevias); var n : boolean; i : rangoJugadas; begin repeat n := true; i := 1; fila := random(Filas)+1; columna := random(Columnas)+1; while n and (i <= j.DimL) do if (j.vector[i].fila = fila)and(j.vector[i].columna = columna) then begin n := false; end else i := i + 1; until (n); j.DimL := turn; j.vector[j.DimL].fila := fila; j.vector[j.DimL].columna := columna; end; {----------------------------------------------------------------- TURNO - se encarga de que los jugadores elijan las posiciones y ataquen , en caso de que undan un barco éste se borrara del mapa contrario y se restara a su cantidad de barcos , de otra forma informa agua } procedure turno(var j : Tjugador ;var j2 : Tjugador; turn : integer ); var fila : rangoFilas; columna : rangoColumnas; begin verif(fila,columna,turn,j.jugadasPrevias); if j2.tablero[fila,columna] = 0 then begin writeln('fila: ',fila,' columna: ', columna,'.....................agua'); end else begin writeln('fila: ',fila,' columna: ', columna,'.....................hundido'); j2.tablero[fila,columna] := 0; j2.barcos := j2.barcos - 1; end; end; {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- INFORMAR GANADOR } procedure informarGanador(j1,j2: Tjugador); begin if j1.barcos = 0 then begin writeln('el ganador es ', j2.nombre); end else writeln('el ganador es ', j1.nombre);; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- PROGRAMA PRINCIPAL} var j1,j2 : Tjugador; i : integer; begin randomize; inicializar(j1); inicializar(j2); cargarTablero(j1); cargarTablero(j2); imprimirTablero(j1.tablero); imprimirTablero(j2.tablero); i:=1; while (j1.barcos <> 0) and (j2.barcos <> 0) do begin writeln('turno ',i); turno(j1,j2,i); if j1.barcos <> 0 then turno (j2,j1,i); i := i + 1; end; informarGanador(j1,j2); end. {-----------------------------------------------------------------------------------------------------------------------}
run
|
edit
|
history
|
help
0
1januar2018
Первая задание
practica 1 ejercicio 7
basketball_player_training
1 задание
zadacha1
zadanye 4
Сумма пар чисел кратных и некратных 11 с дельтой неэффективная
444555666
j en ai marre