Actualizado el 21 de Marzo del 2018 (Publicado el 4 de Enero del 2018)
1.034 visualizaciones desde el 4 de Enero del 2018
15,2 KB
6 paginas
Creado hace 11a (11/06/2013)
Solución acordada con observaciones
Observaciones al código hechas por los alumnos:
JUEGO DE LA ORACION
• Mantener un orden con espaciados entre las frases y las respuestas para que uno
cuando lee no se pierda o se confunda, más que nada organización. También
tendría que encontrar la forma de manejar una estructura que controle el juego de
manera que se pueda llevar a cabo más de un solo juego sin tener que reiniciar el
juego o los jugadores.
• Al finalizar el juego no se alcanza a ver quien es el ganador y sale sin ningún aviso
un consejo imprimir una condición de finalización del juego como Writeln(‘presione
enter para finalizar’);
• Luego el código Readln; hace que el operador tenga que presionar enter o cualquier
tecla de modo que se finaliza la ejecución del programa.
• Me gusta la forma como enuncia la pregunta, las afirmaciones y todo lo referido a la
impresión del programa, es llamativo y le da un buen aspecto al programa.
esp = ' '; {QUE FUNCION CUMPLE??}
nombre: texto;
sig: jug;
end;
longText = string;
texto = string[20];
jug = ^nodo1; {lista circular de jugadores}
nodo1 = record
program entrega1;
const
type
procedure cargarJugadores(VAR pri: jug; resp: string; VAR cant: integer);
fra = ^nodo2;
nodo2 = record
palabra: texto;
sig: fra;
end;
var
begin
{lista simple de palabras}
nuevo: jug;
while (resp = 's') do begin
{agrego el primer nodo a la lista}
{si responde que no, sale}
nuevo^.sig:= pri^.sig;
pri:= nuevo;
pri^.sig:= nuevo
end;
writeln('## Carga de jugadores finalizada.');
end;
writeln('>>>> Desea agregar otro jugador? [s/n]:');
readln(resp);
end;
if (resp = 'n') then
cant:= cant +1;
new(nuevo);
writeln('>> Nombre del jugador:');
readln(nuevo^.nombre);
if (pri = nil) then begin
end
else begin
pri:^.sig = nuevo;
{OBSERVAR QUE ES UNA CREACION DE LISTA CIRCULAR PURA}
procedure eliminarjugador (var pri:jug; var ant:jug; VAR cant: integer);
procedure cargarPalabra(palabra: texto; VAR pri: fra);
writeln ('>> Jugador/a ',pri^.nombre, ' eliminado. ');
cant:= cant-1;
act:=pri;
pri:=pri^.sig;
ant^.sig:=pri;
dispose (act);
new(nuevo);
nuevo^.palabra:= palabra;
if (pri = nil) then
else begin
pri:= nuevo
var
begin
end;
var
begin
nuevo: fra;
act:jug;
{agrego el nuevo nodo a la lista}
end;
pal: texto;
increm: integer;
pri^.sig:= nuevo;
nuevo^.sig:= nil;
end;
increm:= increm +1;
if (cantpal > 1) then begin
frase:= frase^.sig;
readln(pal);
end;
var
begin
end;
readln(pal);
increm:=1;
while (pal = frase^.palabra) and (increm < cantPal) do begin
end;
if (frase^.palabra <> pal) then begin
else
procedure comparar(cantPal: integer; frase:fra; VAR error: boolean);
procedure comenzarjuego (VAR pri:jug;respuesta: string; VAR cant: integer; VAR frase: fra);
writeln(pri^.nombre,' es tu turno!');
writeln('>>>> Ingrese una palabra para comenzar a jugar: ');
writeln('>> FRASE ERRONEA!');
error:= true;
end
var
begin
palabraNue: texto;
jugAnt:jug;
cantPal: integer;
error: boolean;
cantPal:= 0;
error:= false;
if (cant > 1) then begin
if (cantPal = increm) then
error:= false;
writeln('>>>> Ingrese la palabra/frase anterior:');
writeln('Tip: En caso de ser una frase, por favor, ingrese palabra
writeln('Ingrese la nueva palabra que desea anadir a la
comparar(cantPal,frase,error);
if (error = false) then begin {SE PODRÍA REALIZAR UNA
if (respuesta = 's') then begin
while (cant > 1) do begin
readln(palabraNue);
cantPal:= cantPal +1;
cargarPalabra(palabraNue, frase);
jugAnt:=pri;
pri:= pri^.sig;
writeln('>>>> Deseas continuar jugando, ',pri^.nombre,'? [s/n]:');
readln(respuesta);
end;
por palabra, presionando [Enter] para cada una.');
FUNCTION QUE DEVUELVA EL VALOR TRUE O FALSE EN EL CASO QUE
CORRESPONDA}
frase:');
frase:');
end;
write('>>>> Deseas continuar jugando, ',pri^.nombre,'? [s/n]: ');
readln(respuesta);
if (respuesta = 'n') then
while (respuesta = 's') and (cant > 1) do begin
readln(palabraNue);
cantpal:=cantpal +1;
cargarPalabra(palabraNue,frase);
jugAnt:= pri;
pri:= pri^.sig;
writeln(pri^.nombre,', es tu turno!');
end
else begin
readln(palabraNue);
cargarPalabra(palabraNue,frase);
jugAnt:=pri;
pri:=pri^.sig;
end;
writeln('>>>> Ingrese la frase anterior para continuar: ');
comparar(cantPal,frase,error);
if (error = false) then begin
writeln('Ingrese la nueva palabra que desea anadir a la
eliminarJugador(pri,jugAnt,cant);
write('>>>> ¿Deseas continuar jugando, ',pri^.nombre,'?
end;
{ya me lo
end;
end;
eliminarJugador(pri,jugAnt,cant);
end;
readln(respuesta);
end;
writeln('---> ',pri^.nombre,' se confundio! Ha sido
end;
if (cant > 1) then begin
readln(respuesta);
while (respuesta = 'n') and (cant > 1) do begin
eliminarJugador(pri,jugAnt,cant);
write('>>>> ¿Deseas continuar jugando,
eliminado/a');
devuelve en la sig posicion}
[s/n]: ');
',pri^.nombre,'? [s/n]: ');
var
begin
ESTRUCTURA DE CONTROL POR SI UNA VEZ FINALIZADA UNA PARTIDA VOLVER A
JUGAR SIN NECESIDAD DE ABRIR NUEVAMENTE EL .EXE}
writeln('>>>> Desea cargar un jugador? [s/n]'); {MODULARIZAR}
readln(respuesta);
cantidad:=0;
if (respuesta = 's') then
if (respuesta = 'n') then
if (cantidad = 1) then
if (players <> nil) and (cantidad > 1) then begin
players:=nil;
frase:= nil;
writeln('- - JUEGO DE LA ORACION v2.0.0 - -');{PODRIA UTILIZAR UNA
writeln('NO SE CARGARON JUGADORES, IMPOSIBLE JUGAR!');
players:jug;
frase: fra;
respuesta: char;
cantidad: integer;
writeln('NO SE PUEDE JUGAR CON UNA SOLA PERSONA!');
cargarjugadores (players,respuesta,cantidad);
{SERIA MAS EFICIENTE MODULARIZAR}
{programa principal}
comenzarjuego(players,respuesta,cantidad,frase);
if (cantidad = 1) then
writeln ('----------EL GANADOR ES ', players^.nombre,
writeln('---> ¿Desea comenzar a jugar? [s/n]: ');
readln(respuesta);
if (respuesta = 's') then begin
'.FELICITACIONES ----------');
writeln('JUEGO FINALIZADO.'); {UNA VEZ QUE FINALIZA EL JUEGO,
SALE SIN SIQUIERA PODER ALCANZAR A VER QUIEN GANO, DEBERIA COLOCAR UNA
ESTRUCTURA QUE HAGA UN PAUSA ANTES DE CERRAR EL PROGRAMA}
end.
if (respuesta = 'n') then begin
end;
end;
end;
Comentarios de: Juego de la oración (0)
No hay comentarios