Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses crt;
- var
- game_over: Boolean;
- i,n,k,m,z,x,y,a,p,max_x,max_y,bomb_count: integer;
- map, map_hidden, map_out: array[1..7,1..7] of integer;
- str_out,s,u,h: string;
- point: array[1..2] of integer;
- //FUNCTION create_matrix(x_value,y_value: integer):array[1
- //outputing procedure
- {
- PROCEDURE output_map(var i,n:integer;str_out: string);
- var
- i,n: integer;
- str_out: string;
- begin
- write(' ');
- for i:= 1 to max_y do write(i);
- writeln();
- for i:= 1 to max_y do
- begin
- str(i,s);
- str_out:= s;
- for n:= 1 to max_x do
- begin
- str_out:= str_out + map_out[i][n]
- end;
- end;
- end;
- {
- PROCEDURE set_flag()
- begin
- end;
- }
- begin
- //input and first operations with variables
- game_over:= False;
- writeln('input dimension of map');
- readln(max_x);
- readln(max_y);
- writeln('input bomb_count');
- readln(bomb_count);
- randomize;
- while i < bomb_count do
- BEGIN
- x:= random(max_x - 1) + 1;
- y:= random(max_y - 1) + 1;
- {
- if map_out[y][x] = 0 then
- begin
- map_out[y][x]:= 'B';
- i:= i + 1;
- end;
- }
- map_out[y,x]:= 9;
- i:= i + 1;
- END;
- writeln(map_out);
- writeln('a');
- writeln(i);
- x:= 1;
- y:= 1;
- i:= 1;
- n:= 1;
- str_out:= '';
- p:= 1;
- for i:= 2 to max_y + 1 do
- for n:= 2 to max_x + 1 do
- if map[i,n] <> 9 then
- map[i,n]:= 0;
- map:= map_out;
- //calculating and iterating map
- for i:= 1 to max_y do
- for n:= 1 to max_x do
- begin
- if map[i][n] = 9 then
- begin
- if (i = 1) and (n = 1) then
- begin
- if map[i][n + 1] <> 9 then //pravo
- map[i][n + 1]:= map[i][n + 1] + 1;
- if map[i + 1][n] <> 9 then //niz
- map[i + 1][n]:= map[i + 1][n] + 1;
- if map[i + 1][n + 1] <> 9 then //pravo niz
- map[i + 1][n + 1]:= map[i + 1][n + 1] + 1;
- end
- else if (i = max_y) and (n = max_x) then
- begin
- if map[i - 1][n - 1] <> 9 then //levo verh
- map[i - 1][n - 1]:= map[i - 1][n - 1] + 1;
- if map[i][n - 1] <> 9 then // levo
- map[i][n - 1]:= map[i][n - 1] + 1;
- if map[i - 1][n] <> 9 then //verh
- map[i - 1][n]:= map[i - 1][n] + 1;
- end
- else if (i = 1) and (n = max_x) then
- begin
- if map[i + 1][n] <> 9 then //niz
- map[i + 1][n]:= map[i + 1][n] + 1;
- if map[i][n - 1] <> 9 then // levo
- map[i][n - 1]:= map[i][n - 1] + 1;
- if map[i + 1][n - 1] <> 9 then //levo niz
- map[i + 1][n - 1]:= map[i + 1][n - 1] + 1;
- end
- else if (i = max_y) and (n = 1) then
- begin
- if map[i - 1][n] <> 9 then //verh
- map[i - 1][n]:= map[i - 1][n] + 1;
- if map[i - 1][n] <> 9 then //verh
- map[i - 1][n]:= map[i - 1][n] + 1;
- if map[i - 1][n + 1] <> 9 then //pravo verh
- map[i - 1][n + 1]:= map[i - 1][n + 1] + 1;
- end
- else if (1<i<max_y) and (n = 1) then
- begin
- if map[i][n + 1] <> 9 then //pravo
- map[i][n + 1]:= map[i][n + 1] + 1;
- if map[i][n - 1] <> 9 then // levo
- map[i][n - 1]:= map[i][n - 1] + 1;
- if map[i + 1][n] <> 9 then //niz
- map[i + 1][n]:= map[i + 1][n] + 1;
- if map[i + 1][n + 1] <> 9 then //pravo niz
- map[i + 1][n + 1]:= map[i + 1][n + 1] + 1;
- if map[i + 1][n - 1] <> 9 then //levo niz
- map[i + 1][n - 1]:= map[i + 1][n - 1] + 1;
- end
- else if (i = 1) and (1<n<max_x) then
- begin
- if map[i - 1][n] <> 9 then //verh
- map[i - 1][n]:= map[i - 1][n] + 1;
- if map[i + 1][n] <> 9 then //niz
- map[i + 1][n]:= map[i + 1][n] + 1;
- if map[i][n + 1] <> 9 then //pravo
- map[i][n + 1]:= map[i][n + 1] + 1;
- if map[i - 1][n + 1] <> 9 then //pravo verh
- map[i - 1][n + 1]:= map[i - 1][n + 1] + 1;
- if map[i + 1][n + 1] <> 9 then //pravo niz
- map[i + 1][n + 1]:= map[i + 1][n + 1] + 1;
- if i = max_y and 1 < n < max_x then
- end
- else if (1 < i < max_y) and (n = max_x) then
- begin
- if map[i + 1][n - 1] <> 9 then //levo niz
- map[i + 1][n - 1]:= map[i + 1][n - 1] + 1;
- if map[i - 1][n - 1] <> 9 then //levo verh
- map[i - 1][n - 1]:= map[i - 1][n - 1] + 1;
- if map[i][n - 1] <> 9 then // levo
- map[i][n - 1]:= map[i][n - 1] + 1;
- if map[i - 1][n] <> 9 then //verh
- map[i - 1][n]:= map[i - 1][n] + 1;
- if map[i + 1][n] <> 9 then //niz
- map[i + 1][n]:= map[i + 1][n] + 1;
- end
- else if (i = max_y) and (1 < n < max_x) then
- begin
- if map[i][n + 1] <> 9 then //pravo
- map[i][n + 1]:= map[i][n + 1] + 1;
- if map[i][n - 1] <> 9 then // levo
- map[i][n - 1]:= map[i][n - 1] + 1;
- if map[i + 1][n] <> 9 then //niz
- map[i + 1][n]:= map[i + 1][n] + 1;
- if map[i + 1][n + 1] <> 9 then //pravo niz
- map[i + 1][n + 1]:= map[i + 1][n + 1] + 1;
- if map[i + 1][n - 1] <> 9 then //levo niz
- map[i + 1][n - 1]:= map[i + 1][n - 1] + 1;
- end
- else begin
- if map[i][n + 1] <> 9 then //pravo
- map[i][n + 1]:= map[i][n + 1] + 1;
- if map[i][n - 1] <> 9 then // levo
- map[i][n - 1]:= map[i][n - 1] + 1;
- if map[i - 1][n] <> 9 then //verh
- map[i - 1][n]:= map[i - 1][n] + 1;
- if map[i + 1][n] <> 9 then //niz
- map[i + 1][n]:= map[i + 1][n] + 1;
- if map[i - 1][n + 1] <> 9 then //pravo verh
- map[i - 1][n + 1]:= map[i - 1][n + 1] + 1;
- if map[i + 1][n + 1] <> 9 then //pravo niz
- map[i + 1][n + 1]:= map[i + 1][n + 1] + 1;
- if map[i + 1][n - 1] <> 9 then //levo niz
- map[i + 1][n - 1]:= map[i + 1][n - 1] + 1;
- if map[i - 1][n - 1] <> 9 then //levo verh
- map[i - 1][n - 1]:= map[i - 1][n - 1] + 1;
- end;
- end;
- end;
- {
- for i:= 1 to max_y - 1 do
- for n:= 1 to max_x - 1 do
- if (map[i + 1,n] = 9) and (map[i,n] < 9)
- then
- map[i,n]:= map[i,n] + 1;
- for i:= max_y downto 2 do
- for n:= max_y downto 2 do
- if (map[i - 1,n] = 9) and (map[i,n]< 9)
- then
- map[i,n]:= map[i,n] + 1;
- for n:= 1 to max_y - 1 do
- for i:= 1 to max_x - 1 do
- if (map[i + 1,n] = 9) and (map[i,n] < 9)
- then
- map[i,n]:= map[i,n] + 1;
- for n:= max_y downto 2 do
- for i:= max_y downto 2 do
- if (map[i - 1,n] = 9) and (map[i,n] < 9)
- then
- map[i,n]:= map[i,n] + 1;
- for n:= ms
- }
- i:= 1;
- while i <= high(map) do
- BEGIN
- writeln('a');
- n:= 1;
- while n <= high(map) do
- begin
- write(map[i,n]);
- n:= n + 1;
- end;
- i:= i + 1;
- END;
- {
- end;
- end;
- writeln(map);
- }
- writeln(' ');
- writeln(' ');
- // output matrix
- {
- begin
- write(' ');
- for i:= 1 to max_y do write(i);
- writeln();
- for i:= 1 to max_y do
- begin
- str(i,s);
- str_out:= s;
- for n:= 1 to max_x do
- begin
- str(map_out[i,n],s);
- str_out:= str_out + s;
- end;
- writeln(str_out);
- end;
- end;
- }
- {
- begin
- for i:= 1 to max_y do
- writeln(map[i])
- end;
- }
- {
- begin
- write(' ');
- for i:= 1 to max_y do write(i);
- writeln();
- for i:= 2 to (max_y + 1) do
- begin
- str(i - 1,s);
- str_out:= s;
- for n:= 1 to max_x do
- begin
- str_out:= str_out + map[i][n]
- end;
- writeln(str_out);
- end;
- end;
- }
- //main cycle
- {
- while (game_over = False) or (p <= (max_x * max_y)) do
- begin
- clrscr;
- begin
- write(' ');
- for i:= 1 to max_y do write(i);
- writeln();
- for i:= 1 to max_y do
- begin
- str(i,s);
- str_out:= s;
- for n:= 1 to max_x do
- begin
- str(map_out[i,n],s);
- str_out:= str_out + s;
- end;
- writeln(str_out);
- end;
- end;
- writeln('input position(x,y)');
- readln(x,y);
- writeln('choose action:(1-check area, 2-set flag)');
- readln(a);
- if a = 1 then
- begin
- if map[y,x] <> 9 then
- else game_over:= True;
- end
- else map[y,x]:= 7; //7 zam na simvol
- end;
- //output
- }
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement