
como uso el gotoxy en una matriz
Publicado por Manuel (4 intervenciones) el 29/06/2015 22:23:29
Una consulta, como uso el gotoxy en una matriz? no me sale, por ejemplo en este algoritmo como puedo centrar lo que muestro en pantalla si me pueden ayudar pls
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
Program pocket;
uses crt;
var candy:array[1..20,1..9] of byte;
fil, col,cont, x, y,puntaje, fila, columna ,vida, figura : byte;
Procedure limpiar_matriz;
begin
For y:= 1 To 20 Do
For x:= 1 To 9 Do
candy[y,x] := 0;
end;
Procedure llenado_matriz;
begin
For y:= 1 To 20 Do
begin
For x:= 1 To 9 Do
begin
figura:= random(6)+1;
if (x>1) and (figura = candy[y,x-1]) and (figura = candy[y,x-2]) then
while (x>1) and (figura = candy[y,x-1]) and (figura = candy[y,x-2]) do
begin
figura:= random(6)+1;
candy[y,x]:= figura;
end
else
candy[y,x]:= figura;
end;
end;
end;
Procedure mostrar_matriz;
Begin
Clrscr;
For y:= 1 To 20 Do
begin
For x:= 1 TO 9 Do
begin
Case candy[y,x] Of
1:begin Textcolor(black);write(chr(6):3);end;
2:begin Textcolor(cyan);write(chr(4):3);end;
3:begin TextColor(green);write(chr(5):3); end;
4:begin TextColor(red);write(chr(3):3); end;
5:begin TextColor(black);write(chr(2):3); end;
6:begin TextColor(yellow);write(chr(1):3); end;
end;
end;
writeln;
end;
End;
Procedure Bajada;
begin
if fil > 1 then
repeat
begin
candy[fil,col]:= candy[fil-1,col];
candy[fil-1,col]:= 0;
fil:=fil-1;
end;
until fil= 1;
if candy[1,col]= 0 then
candy[1,col]:= random(6)+1
else
candy[1,col]:= random(6)+1;
end;
Procedure cascada;
begin
begin
if fil > 1 then
repeat
begin
candy[fil,col]:= candy[fil-1,col];
candy[fil-1,col]:= 0;
candy[fil,col+1]:= candy[fil-1,col+1];
candy[fil-1,col+1]:= 0;
candy[fil,col+2]:= candy[fil-1,col+2];
candy[fil-1,col+2]:= 0;
fil:=fil-1;
end;
until fil= 1;
if candy[1,col]= 0 then
begin
candy[1,col]:= random(6)+1;
candy[1,col+1]:= random(6)+1;
candy[1,col+2]:= random(6)+1;
end
else
candy[1,col]:= random(6)+1;
candy[1,col+1]:= random(6)+1;
candy[1,col+2]:= random(6)+1;
end;
end;
Procedure Eliminar_linea;
begin
For fil := 1 To 20 Do
begin
For col:= 1 To 9 Do
begin
If (col< 8) and (candy[fil,col] = candy[fil,col+1]) and (candy[fil,col] = candy[fil,col+2]) THEN
begin
puntaje:=(candy[fil,col]*3)+puntaje;
candy[fil,col]:=0;
candy[fil,col+1]:=0;
candy[fil,col+2]:=0;
cascada;
end;
end;
end;
end;
begin
textbackground(white);
clrscr;
randomize;
limpiar_matriz;
llenado_matriz;
mostrar_matriz;
vida:= 2;
puntaje:= 0;
while vida <> 0 do
begin
textcolor(black);
writeln('ingrese cordenada de filas para eliminar: ');
readln(fil);
writeln('ingrese cordenada de columnas para eliminar: ');
readln(col);
candy[fil,col]:= 0;
Bajada;
eliminar_linea;
vida:= vida -1;
mostrar_matriz;
end;
textcolor(black);
writeln(puntaje);
readln;
end.
Valora esta pregunta


0