
Proyecto - juego (DUDA)
Publicado por doug (3 intervenciones) el 09/04/2016 08:22:12
Antes que nada quiero aclarar que no es todo el programa si no lo que llevo adelantado, es decir que es solo una parte no lo tengo listo.
Estoy programando un juego que es algo asi como un mapa con coordenadas el cual tienes minas (M) el cual las decreta el usuario, la maxima cantidad de columnas y filas es 15x15 por lo tanto las maximas minas son 15, entonces diseñando el programa tengo que poner las minas en orden aleatorio, las coordenadas x,y tienen que ser aleatorias, usé el random pero hay un detalle hay ocasiones que salen coordenadas repetidas como por ejemplo:
son 5 minas
y sale lo siguiente:
13 5
5 3
4 5
3 2
3 2 ahi se repite
quisiera saber como arreglo eso para que no se repitan las coordenadas! Saludos y gracias
OJO: Tengo prohibido el uso de arrays!
aqui el cod
Estoy programando un juego que es algo asi como un mapa con coordenadas el cual tienes minas (M) el cual las decreta el usuario, la maxima cantidad de columnas y filas es 15x15 por lo tanto las maximas minas son 15, entonces diseñando el programa tengo que poner las minas en orden aleatorio, las coordenadas x,y tienen que ser aleatorias, usé el random pero hay un detalle hay ocasiones que salen coordenadas repetidas como por ejemplo:
son 5 minas
y sale lo siguiente:
13 5
5 3
4 5
3 2
3 2 ahi se repite
quisiera saber como arreglo eso para que no se repitan las coordenadas! Saludos y gracias
OJO: Tengo prohibido el uso de arrays!
aqui el cod
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
program juego;
var
X, Y, M, cont, a, b, mx, my :integer;
SX, SY, mostrar,S3:string;
begin
randomize;
writeln('Inserte el numero de filas(x) (maximo 15)'); readln(X);
if (x>0) and (x<=15) then
begin
writeln('Inserte el numero de columnas(y) (maximo 15).'); readln(Y);
end;
if (x>15) then
writeln('Numero max. de filas excedido.');
if (y>15) then
writeln('Numero max. de columnas excedido.');
if (y>0) and (y<=15) then
begin
writeln('Inserte el numero de minas.'); readln(M);
end;
if (x>y) then
begin
if (m>x) then
writeln('Cantidad max de minas excedida.');
end;
if (y>x) then
begin
if (m>y) then
writeln('Cantidad max de minas excedida.');
end;
if (x=y) then
begin
if (m>x) or (m>y) then
writeln('Cantidad max de minas excedida.');
end;
if (x<0) or (y<0) or (m<0) then
begin
writeln('No se admiten numeros negativos.');
end;
if (x>0) and (y>0) and (m>0) then
begin
if ((x>y) and (m<=x)) or ((y>x) and (m<=y))or ((x=y) and (m<=x) or (m<=y)) then
begin
for cont:=1 to m do
begin
sx:=''; sy:=''; mostrar:='';
mx:=random(x)+1; my:=random(y)+1;
str(mx,sx); str(my,sy);
mostrar:=sx+' '+sy;
writeln;
writeln(mostrar);
end;
end;
end;
readln;
end.
Valora esta pregunta


0