URGENTE, necesito ayuda para terminar un juego de la oca... es para dentro de 4 dias
Publicado por Amanda (4 intervenciones) el 25/06/2013 00:35:15
Especificaciones del Juego
Elabore un programa en lenguaje “Pascal” con funciones y procedimientos, pase de parámetros y variables locales, (NO SE PERMITEN VARIABLES GLOBALES, A MENOS QUE SEA ESTRICTAMENTE NECESARIO Y DEBERÁ EXPLICAR EL PORQUE DE SU USO), que implemente el juego de la Oca.
El Juego de la Oca es un juego de mesa que se juega con dos o más jugadores. Al principio del juego usted deberá preguntar cuantas personas van a jugar. Mediante la función random (ustedes deberán investigar su uso) se deberá indicar quien comienza el juego. Cada uno de los jugadores avanza su ficha por un tablero en forma con 64 casillas (matriz de 8 filas y 8 columnas). Las casillas están numeradas del 0 al 63. En su turno cada jugador lanza dos dados que indica el número de casillas que hay que avanzar. Dependiendo de la casilla en la que se caiga se puede lograr avanzar o por el contrario retroceder y en algunas de ellas está indicado un castigo.
a. En las casillas 0,5, 9, 18, 23, 27, 32, 36, 41, 45, 50, 54 y 59, están las ocas. Cuando se cae en una de estas casillas se puede avanzar hasta la siguiente casilla en la que hay una oca y volver a lanzar.
b. En la casilla 19 está una posada, cuando se cae en esta casilla se pierde un turno.
c. El pozo está en la casilla 31, cuando se cae en esta casilla no se puede volver a jugar hasta que no pase otro jugador por esa casilla.
d. En la casilla 42 hay un laberinto, al llegar a esta casilla se está obligado a retroceder a la casilla 30.
e. La cárcel está en la casilla 56, caer en esta casilla significa quedarse dos turnos sin jugar.
f. La casilla 58 es la "casilla de la calavera" al caer en esta casilla hay que volver a la casilla 0.
El juego lo gana el primer jugador que llega a la casilla 63 y deberá mostrar por pantalla: "Me toca, me toca llegué al jardín de la oca" y deberá realizar y mostrar un dibujo alusivo al juego de la oca elaborado con las instrucciones: write, writeln, estructuras de iteración o repetición.
Además del Juego, el menú deberá tener la posibilidad de crear, eliminar, actualizar registros en un archivo de texto que almacene la siguiente información: Número del juego, Apellidos y nombres de cada jugador, iniciales del que ganó, fecha del juego y edad.
A continuación se presenta la forma como debe recorrer la matriz.
0 1 2 3 4 5 6 7
15 14 13 12 11 10 9 8
16 17 18 19 20 21 22 23
31 30 29 28 27 26 25 24
32 33 34 35 36 37 38 39
47 46 45 44 43 42 41 40
48 49 50 51 52 53 54 55
63 62 61 60 59 58 57 56
Su programa debe utilizar un procedimiento que le muestre al usuario un menú con las diversas opciones que considere puede tener este juego, en donde se debe incluir la posibilidad de terminarlo.
Su proyecto debe realizarse SIN UTILIZAR VARIABLES GLOBALES (A MENOS QUE SEA ESTRICTAMENTE NECESARIO Y DEBERÁ EXPLICAR EL PORQUE DE SU USO), es decir, debe realizarse con procedimientos y/o funciones y pase de parámetros por valor y/o referencia.
Para la primera entrega del proyecto deberán estar finalizadas las siguientes actividades:
1. Menú principal (con todas las opciones solicitadas) sino está lista la función o procedimiento de la opción que se presente “En construcción”.
2. Indicar quien comienza primero mediante la función random.
3. Deberá mostrar el dibujo alusivo al juego con las instrucciones
4. de: write, writeln, estructuras de iteración o repetición.
5. Deberá mostrar el tablero de una manera agradable y amigable.
ANEXO TAMBIEN LO Q LLEVO HECHO:
Elabore un programa en lenguaje “Pascal” con funciones y procedimientos, pase de parámetros y variables locales, (NO SE PERMITEN VARIABLES GLOBALES, A MENOS QUE SEA ESTRICTAMENTE NECESARIO Y DEBERÁ EXPLICAR EL PORQUE DE SU USO), que implemente el juego de la Oca.
El Juego de la Oca es un juego de mesa que se juega con dos o más jugadores. Al principio del juego usted deberá preguntar cuantas personas van a jugar. Mediante la función random (ustedes deberán investigar su uso) se deberá indicar quien comienza el juego. Cada uno de los jugadores avanza su ficha por un tablero en forma con 64 casillas (matriz de 8 filas y 8 columnas). Las casillas están numeradas del 0 al 63. En su turno cada jugador lanza dos dados que indica el número de casillas que hay que avanzar. Dependiendo de la casilla en la que se caiga se puede lograr avanzar o por el contrario retroceder y en algunas de ellas está indicado un castigo.
a. En las casillas 0,5, 9, 18, 23, 27, 32, 36, 41, 45, 50, 54 y 59, están las ocas. Cuando se cae en una de estas casillas se puede avanzar hasta la siguiente casilla en la que hay una oca y volver a lanzar.
b. En la casilla 19 está una posada, cuando se cae en esta casilla se pierde un turno.
c. El pozo está en la casilla 31, cuando se cae en esta casilla no se puede volver a jugar hasta que no pase otro jugador por esa casilla.
d. En la casilla 42 hay un laberinto, al llegar a esta casilla se está obligado a retroceder a la casilla 30.
e. La cárcel está en la casilla 56, caer en esta casilla significa quedarse dos turnos sin jugar.
f. La casilla 58 es la "casilla de la calavera" al caer en esta casilla hay que volver a la casilla 0.
El juego lo gana el primer jugador que llega a la casilla 63 y deberá mostrar por pantalla: "Me toca, me toca llegué al jardín de la oca" y deberá realizar y mostrar un dibujo alusivo al juego de la oca elaborado con las instrucciones: write, writeln, estructuras de iteración o repetición.
Además del Juego, el menú deberá tener la posibilidad de crear, eliminar, actualizar registros en un archivo de texto que almacene la siguiente información: Número del juego, Apellidos y nombres de cada jugador, iniciales del que ganó, fecha del juego y edad.
A continuación se presenta la forma como debe recorrer la matriz.
0 1 2 3 4 5 6 7
15 14 13 12 11 10 9 8
16 17 18 19 20 21 22 23
31 30 29 28 27 26 25 24
32 33 34 35 36 37 38 39
47 46 45 44 43 42 41 40
48 49 50 51 52 53 54 55
63 62 61 60 59 58 57 56
Su programa debe utilizar un procedimiento que le muestre al usuario un menú con las diversas opciones que considere puede tener este juego, en donde se debe incluir la posibilidad de terminarlo.
Su proyecto debe realizarse SIN UTILIZAR VARIABLES GLOBALES (A MENOS QUE SEA ESTRICTAMENTE NECESARIO Y DEBERÁ EXPLICAR EL PORQUE DE SU USO), es decir, debe realizarse con procedimientos y/o funciones y pase de parámetros por valor y/o referencia.
Para la primera entrega del proyecto deberán estar finalizadas las siguientes actividades:
1. Menú principal (con todas las opciones solicitadas) sino está lista la función o procedimiento de la opción que se presente “En construcción”.
2. Indicar quien comienza primero mediante la función random.
3. Deberá mostrar el dibujo alusivo al juego con las instrucciones
4. de: write, writeln, estructuras de iteración o repetición.
5. Deberá mostrar el tablero de una manera agradable y amigable.
ANEXO TAMBIEN LO Q LLEVO HECHO:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
Program juego_De_La_Oca;
uses crt;
const
x = 8;
max = 4;
type
matriz = array[1..x,1..x] of integer;
vector = array [1..max] of string;
var
N,A:integer; // Utilie vaiables globales ya q las necesito en todo el programa y no solo en una parte.
V: vector;
M:matriz;
Procedure nombreDelJuego;
begin
textcolor(9);
writeln('IIII II IIIIII IIIIIIII II');
writeln('IIII IIII II II IIIIIIIII IIII');
writeln('IIII II II II II II II II');
writeln('IIII IIIIIIII II II II IIIIIIII');
writeln('IIII IIIIIIIIII II II II IIIIIIIIII');
writeln('IIIIIIIIII II II II II IIIIIIIII II II');
writeln('IIIIIIIIII II II IIIIII IIIIIIII II II');
writeln;
writeln(' Bienvenid@. Para comenzar por favor presione ENTER');
readln;
end;
Procedure DibujoDeOca;
var
i:integer;
begin
CLRSCR;
textcolor(3);
writeln(' OOO');
writeln(' A A');
writeln(' A O A');
writeln(' A A A');
writeln(' A A A');
writeln(' A A A ');
writeln(' A A AA A A A');
writeln(' A A');
For i:=1 to 8 do
writeln(' A A');
writeln(' A A');
writeln(' A A');
writeln(' A A');
writeln(' A * A');
writeln(' A * * * * A');
writeln(' A * * * * A');
writeln(' A * * * * A');
writeln(' A * * * * A');
writeln(' A * * * * * * A');
writeln(' A * * * * * A A A A A');
writeln(' A * * * * * * * A');
writeln(' A A ');
writeln(' A A');
writeln(' A A');
writeln(' A A');
writeln(' A A');
writeln(' A A A A A A ');
For i:=1 to 3 do
writeln(' ** **');
writeln(' ****** *****');
writeln(' ******* ******');
end;
Procedure leerJugadores(var N:integer);
begin
writeln('Indique el numero de personas que van a jugar');
readln(N);
while((N <= 0) or (N > max)) do
begin
writeln('ERROR. Numero invalido, por favor ingrese otro');
readln(N);
end;
end;
Procedure asignarNombres(var nom: vector);
var
i:integer;
begin
for i:=1 to N do
begin
writeln('Indique un nombre');
readln(nom[i]);
writeln;
end;
end;
Procedure indicarPrimerJugador(N:integer; var V: vector);
var
i:integer;
begin
writeln('El orden de los jugadores es: ');
randomize;
i:=random(N)+ 1;
for i:=1 to N do
begin
write(' ',i,' :');
writeln(V[i]);
writeln;
end;
end;
Procedure llenarM(var M:matriz);
var
i,elemento,inicio,fijo,tope,aux: integer;
begin
elemento:=0;
inicio:=1;
tope:=x;
aux:=inicio;
while (elemento < (x*x)) do
begin
fijo:=aux;
For i:=inicio to tope do
begin
M[fijo,i]:=elemento;
elemento:=elemento+1;
end;
fijo:=aux+1;
For i:=tope downto inicio do
begin
M[fijo,i]:=elemento;
elemento:=elemento+1;
end;
aux:=aux+2;
end;
end;
Procedure mostrarM(M:matriz);
var
i,j:integer;
begin
clrscr;
textcolor(3);
For i:=1 to x do
begin
For j:=1 to x do
begin
write(' ',M[i,j]:3);
end;
writeln;
writeln;
end;
end;
Procedure Dados;
var
i,j: integer;
begin
write('Dado1: ');
randomize;
i:=random(6)+ 1;
writeln(i);
writeln;
write('Dado2: ');
j:=random(6)+ 1;
writeln(j);
end;
Procedure menu;
var
D:integer;
begin
textcolor(5);
clrscr;
writeln;
writeln;
writeln(' ** MENU PRINCIPAL ** ');
writeln;
writeln(' 1.- SELECCION DE JUGADORES');
writeln;
writeln(' 2.- JUGAR');
writeln;
writeln(' 3.- SALIR');
writeln;
write(' SELECCIONE UNA OPCION:');
readln(A);
while (A<1) OR (A>3) do
begin
writeln('Opcion invalida, por favor ingrese una opcion valida');
readln(A);
end;
If A = 1 then
begin
clrscr;
writeln(' 1.- Seleccion de jugadores');
writeln;
leerJugadores(N);
writeln;
asignarNombres(V);
writeln;
indicarPrimerJugador(N,V);
readln;
menu;
end
else
if A = 2 then
begin
clrscr;
llenarM(M);
mostrarM(M);
writeln('1.- Mostrar Dibujo'); //El se dibujo se enuentra en este lugar demanera provisional,
writeln;
writeln('2.- Lanzar dados');
readln(D); //por ser la pre entrega. En la entrega final se mostrara cuando
If D = 1 then //haya un ganador
DibujoDeOca;
readln;
mostrarM(M);
readln;
If D = 2 then
Dados;
readln;
menu;
end
else
if A = 3 then
begin
exit;
end;
end;
begin
nombreDelJuego;
menu;
readln;
end.
Valora esta pregunta


0