el enunciado de esta evaluacion era el popular juego de la vieja, pari un pelo para hacerlo pero esta fino, se juega con el teclado numerico y lleva el contador de victorias.
1: ORG 2000H
2: LD SP,3DFFH
3: INICIO: CALL BORRAR_PAN
4: LD IX,SCORE
5: LD (IX),30H
6: LD (IX+1),30H
7:
8: START: CALL BORRAR_PAN
9: LD B,9
10: LD E,90
11: LD IX,VERIF
12:
13: CLEAN1: LD (IX),E
14: INC IX
15: INC E
16: DJNZ CLEAN1
17: LD B,9
18: LD E,31H
19: LD IX,LINEA1
20:
21: CLEAN2: LD (IX),E
22: INC IX
23: INC IX
24: INC E
25: DJNZ CLEAN2
26:
27: ;**********MENU***********
28: LD IX,WEL1
29: LD A,02H
30: CALL ENVIAR_MEN
31: LD IX,WEL2
32: LD A,04H
33: CALL ENVIAR_MEN
34: CALL SCAN
35:
36: ; SE HACE EL RAYADO INICIAL
37:
38: CALL BORRAR_PAN
39: LD IX,LINEA1
40: LD A,01H
41: CALL ENVIAR_MEN
42: LD IX,LINEA2
43: LD A,02H
44: CALL ENVIAR_MEN
45: LD IX,LINEA3
46: LD A,03H
47: CALL ENVIAR_MEN
48: LD IX,LINEA4
49: LD A,04H
50: CALL ENVIAR_MEN
51:
52: ; SE ESPERA UNA TECLA VALIDA, DIGASE UN NUMERO
53:
54: LD B,09H
55: LD C,0
56: LD IY,VERIF
57: HERE: NOP
58:
59: ESPERA: CALL SCAN
60: CP 31H
61: JP Z,TECLA1
62: CP 32H
63: JP Z,TECLA2
64: CP 33H
65: JP Z,TECLA3
66: CP 34H
67: JP Z,TECLA4
68: CP 35H
69: JP Z,TECLA5
70: CP 36H
71: JP Z,TECLA6
72: CP 37H
73: JP Z,TECLA7
74: CP 38H
75: JP Z,TECLA8
76: CP 39H
77: JP Z,TECLA9
78: JP ESPERA
79:
80: SS: CALL COMBINA
81:
82: PP: DJNZ HERE
83: CALL BORRAR_PAN
84:
85: ; SE VERIFICAN QUE NINGUNO DE LOS JUGADORES HAYA LLEGADO A 10 VICTORIAS
86:
87: LD A,(IY)
88: CP 3AH
89: JP NZ,PREGO
90:
91: LD IX,WINNER
92: LD A,3
93: CALL ENVIAR_MEN
94: CALL SCAN
95: JP PJUEGO
96:
97: PREGO: LD A,(IY+1)
98: CP 3AH
99: JP NZ,START
100: LD IX,WINNER
101: LD A,3
102: CALL ENVIAR_MEN
103: CALL SCAN
104:
105: ;PREGUNTO SI DESEAN SEGUIR JUGANDO
106:
107: PJUEG: LD IX,FJ
108: LD A,2
109: CALL ENVIAR_MEN
110: CALL SCAN
111: CP 1BH
112: JP Z,FINJU
113: JP INICIO
114:
115: FINJU: CALL BORRAR_PAN
116: RST 38H
117:
118: ;***** INICIO DE LAS RUTINAS ****
119:
120: ; SE VERIFICA QUE LAS CASILLA ESTE "VACIA", ES DECIR Q NO TENGA "X" NI "O"
121:
122: TECLA1: LD HL,LINEA1
123: LD A,(IY+0)
124: CP 90
125: JP NZ,ESPERA
126: CALL QFUE
127: LD (HL),A
128: LD (IY),A
129: LD IX,LINEA1
130: LD A,1
131: CALL ENVIAR_MEN
132: JP SS
133: TECLA2: LD HL,L11
134: LD A,(IY+1)
135: CP 91
136: JP NZ,ESPERA
137: CALL QFUE
138: LD (HL),A
139: LD (IY+1),A
140: LD IX,LINEA1
141: LD A,1
142: CALL ENVIAR_MEN
143: JP SS
144: TECLA3: LD HL,L12
145: LD A,(IY+2)
146: CP 92
147: JP NZ,ESPERA
148: CALL QFUE
149: LD (HL),A
150: LD (IY+2),A
151: LD IX,LINEA1
152: LD A,1
153: CALL ENVIAR_MEN
154: JP SS
155: TECLA4: LD HL,LINEA2
156: LD A,(IY+3)
157: CP 93
158: JP NZ,ESPERA
159: CALL QFUE
160: LD (HL),A
161: LD (IY+3),A
162: LD IX,LINEA2
163: LD A,2
164: CALL ENVIAR_MEN
165: JP SS
166: TECLA5: LD HL,L21
167: LD A,(IY+4)
168: CP 94
169: JP NZ,ESPERA
170: CALL QFUE
171: LD (IY+4),A
172: LD (HL),A
173: LD IX,LINEA2
174: LD A,2
175: CALL ENVIAR_MEN
176: JP SS
177: TECLA6: LD HL,L22
178: LD A,(IY+5)
179: CP 95
180: JP NZ,ESPERA
181: CALL QFUE
182: LD (IY+5),A
183: LD (HL),A
184: LD IX,LINEA2
185: LD A,2
186: CALL ENVIAR_MEN
187: JP SS
188: TECLA7: LD HL,LINEA3
189: LD A,(IY+6)
190: CP 96
191: JP NZ,ESPERA
192: CALL QFUE
193: LD (HL),A
194: LD (IY+6),A
195: LD IX,LINEA3
196: LD A,3
197: CALL ENVIAR_MEN
198: JP SS
199: TECLA8: LD HL,L31
200: LD A,(IY+7)
201: CP 97
202: JP NZ,ESPERA
203: CALL QFUE
204: LD (IY+7),A
205: LD (HL),A
206: LD IX,LINEA3
207: LD A,3
208: CALL ENVIAR_MEN
209: JP SS
210: TECLA9: LD HL,L32
211: LD A,(IY+8)
212: CP 98
213: JP NZ,ESPERA
214: CALL QFUE
215: LD (IY+8),A
216: LD (HL),A
217: LD IX,LINEA3
218: LD A,3
219: CALL ENVIAR_MEN
220: JP SS
221:
222: ; QUE FUE ES LA RUTINA QUE LLEVA EL CONTROL DE QUE SIMBOLO LE TOCA JUGAR
223:
224: QFUE: LD A,C
225: CP 0
226: JP Z,XP
227: LD A,4FH
228: LD C,0
229: RET
230:
231: XP: LD A,"X"
232: INC C
233: RET
234:
235: COMBINA: LD IX,VERIF
236: LD E,0
237: LD A,(IX+1)
238: CP (IX)
239: CALL Z,CUENTA
240: CP (IX+2)
241: CALL Z,CUENTA
242:
243:
244: LD E,0
245: CP (IX+4)
246: CALL Z,CUENTA
247: CP (IX+8)
248: CALL Z,CUENTA
249:
250:
251: LD E,0
252: LD A,(IX+4)
253: CP (IX)
254: CALL Z,CUENTA
255: CP (IX+8)
256: CALL Z,CUENTA
257:
258:
259: LD E,0
260: CP (IX+6)
261: CALL Z,CUENTA
262: CP (IX+2)
263: CALL Z,CUENTA
264:
265:
266: LD E,0
267: CP (IX+5)
268: CALL Z,CUENTA
269: CP (IX+3)
270: CALL Z,CUENTA
271:
272:
273: LD E,0
274: LD A,(IX)
275: CP (IX+3)
276: CALL Z,CUENTA
277: CP (IX+6)
278: CALL Z,CUENTA
279:
280:
281: LD E,0
282: LD A,(IX+8)
283: CP (IX+5)
284: CALL Z,CUENTA
285: CP (IX+2)
286: CALL Z,CUENTA
287:
288:
289: LD E,0
290: CP (IX+7)
291: CALL Z,CUENTA
292: CP (IX+6)
293: CALL Z,CUENTA
294: RET
295:
296: CUENTA: INC E
297: PUSH AF
298: LD A,E
299: CP 2
300: JP Z,GANADOR
301: POP AF
302: RET
303:
304: GANADOR: LD IX,WW
305: LD IY,SCORE
306: LD A,C
307: CP 0
308: JP Z,CIR
309: LD (IX),"X"
310: INC (IY)
311:
312: ZZZ: LD IX,WINNER
313: LD A,4
314: CALL ENVIAR_MEN
315: CALL SCAN
316: LD B,1
317: JP PP
318:
319: CIR: LD (IX),4FH
320: INC (IY+1)
321: JP ZZZ
322:
323:
324:
325: ORG 3500H
326: LINEA1 DB 31H,186
327: L11 DB 32H,186
328: L12 DB 33H,24H
329: LINEA2 DB 34H,186
330: L21 DB 35H,186
331: L22 DB 36H,24H
332: LINEA3 DB 37H,186
333: L31 DB 38H,186
334: L32 DB 39H,24H
335: WEL1 DB " ********LA VIEJA********",24H
336: WEL2 DB " Presione cualquier tecla para comenzar",24H
337: LINEA4 DB "Presione el numero de la posicion donde desea jugar$"
338: VERIF DS 9
339: FJ DB " Presione ESC para salir u otra tecla para seguir jugando$"
340: WINNER DB " FIN DE JUEGO, GANARON LAS "
341: WW DB " $"
342: SCORE DS 2
343: DB 24H
344: BORRAR_PAN ret; EQU 055CH
345: SCAN ret ;EQU 04F1H
346: ENVIAR_MEN ret; EQU 052BH
347: END
No hay comentarios:
Publicar un comentario