Advertisement
Rainbowedded

morskoiboi

Oct 19th, 2018
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 10.15 KB | None | 0 0
  1. program morskoiboy;
  2. var
  3.   i, j, vg, vg1, vg2, vg3, vg4, strok, stolb, strok1, stolb1, strok2, stolb2, strok3, stolb3, strok4, stolb4, svob, povtor: integer;
  4.   m: array[1..10, 1..10] of integer;
  5. label nv, ng, nv1, ng1, nv2, ng2, nv3, ng3, pr;
  6. begin
  7.   for i := 1 to 10 do
  8.     for j := 1 to 10 do
  9.       m[i, j] := 0;
  10.   strok := random(1, 10);//4-и палубный корабль
  11.   stolb := random(1, 10);
  12.   vg := random(1, 2);
  13.   case vg of
  14.     1:
  15.       begin
  16.         if strok + 3 > 10 then
  17.           for i := strok downto strok - 3 do
  18.             for j := stolb to stolb do
  19.               m[i, j] := 1;
  20.         if strok + 3 <= 10 then
  21.           for i := strok to strok + 3 do
  22.             for j := stolb to stolb do
  23.               m[i, j] := 1;
  24.       end;
  25.     2:
  26.       begin
  27.         if stolb + 3 > 10 then
  28.           for i := strok to strok do
  29.             for j := stolb downto stolb - 3 do
  30.               m[i, j] := 1;
  31.         if stolb + 3 < 10 then
  32.           for i := strok to strok do
  33.             for j := stolb to stolb + 3 do
  34.               m[i, j] := 1;
  35.       end;
  36.   end;
  37.   writeln(strok, ',', stolb,'-4 -палубный');
  38.   {repeat //4-ех палубные корабли
  39.   vg1 := random(1, 2);
  40.   case vg1 of
  41.     1:
  42.       begin
  43.         stolb1:=0;
  44.         strok1 := 1;
  45.         nv:
  46.         strok1 := strok1;
  47.         stolb1 := stolb1 + 1;
  48.         svob := 0;
  49.         for i := strok1 to strok1 + 5 do
  50.           for j := stolb1 to stolb1 + 2 do
  51.             if m[i, j] = 1 then
  52.               inc(svob);
  53.         if svob > 0 then
  54.         begin
  55.           if stolb1 + 2 = 10 then
  56.           begin
  57.             strok1 := strok1 + 1;
  58.             stolb1 := 0;
  59.             goto nv;
  60.           end;
  61.           goto nv;
  62.         end;
  63.         if svob = 0 then
  64.         begin
  65.         if strok1=1 then strok1:=strok1-1;
  66.         if stolb1=1 then stolb1:=stolb1-1;
  67.         if strok2+5=10 then strok2:=strok2+1;
  68.         if stolb2+2=10 then stolb2:=stolb2+1;
  69.           strok1 := strok1 + 1;
  70.           stolb1 := stolb1 + 1;
  71.           for i := strok1 to strok1 + 3 do
  72.             for j := stolb1 to stolb1 do
  73.               m[i, j] := 1;
  74.         end;
  75.         inc(povtor);
  76.         writeln(strok1, ',', stolb1,'-4 -палубный');
  77.        
  78.       end;
  79.     2:
  80.       begin
  81.         stolb1:=0;
  82.         strok1 := 1;
  83.         ng:
  84.         strok1 := strok1;
  85.         stolb1 := stolb1 + 1;
  86.         svob := 0;
  87.         for i := strok1 to strok1 + 2 do
  88.           for j := stolb1 to stolb1 + 5 do
  89.             if m[i, j] = 1 then
  90.               inc(svob);
  91.         if svob > 0 then
  92.         begin
  93.           if stolb1 + 5 = 10 then
  94.           begin
  95.             strok1 := strok1 + 1;
  96.             stolb1 := 0;
  97.             goto ng;
  98.           end;
  99.           goto ng;
  100.         end;
  101.         if svob = 0 then
  102.         begin
  103.         if strok1=1 then strok1:=strok1-1;
  104.         if stolb1=1 then stolb1:=stolb1-1;
  105.         if strok2+2=10 then strok2:=strok2+1;
  106.         if stolb2+5=10 then stolb2:=stolb2+1;
  107.           strok1 := strok1 + 1;
  108.           stolb1 := stolb1 + 1;
  109.           for i := strok1 to strok1 do
  110.             for j := stolb1 to stolb1+3 do
  111.               m[i, j] := 1;
  112.         end;
  113.         inc(povtor);
  114.         writeln(strok1, ',', stolb1,'-4 -палубный');
  115.         if stolb1 + 5 >= 10 then
  116.           begin
  117.             strok1 := strok1 + 1;
  118.             stolb1 := 0;
  119.             goto ng;
  120.           end;
  121.       end;
  122.   end;
  123.  until povtor=2;}
  124.   povtor:=0;
  125.   repeat //3-ех палубные корабли
  126.   vg2 := random(1, 2);
  127.   case vg2 of
  128.     1:
  129.       begin
  130.         stolb2:=0;
  131.         strok2 := 1;
  132.         nv1:
  133.         strok2 := strok2;
  134.         stolb2 := stolb2 + 1;
  135.         svob := 0;
  136.         for i := strok2 to strok2 + 4 do
  137.           for j := stolb2 to stolb2 + 2 do
  138.             if m[i, j] = 1 then
  139.               inc(svob);
  140.         if svob > 0 then
  141.         begin
  142.           if stolb2 + 2 = 10 then
  143.           begin
  144.             strok2 := strok2 + 1;
  145.             stolb2 := 0;
  146.             goto nv1;
  147.           end;
  148.           goto nv1;
  149.         end;
  150.         if svob = 0 then
  151.         begin
  152.         if strok2=1 then strok2:=strok2-1;
  153.         if stolb2=1 then stolb2:=stolb2-1;
  154.         if strok2+4=10 then strok2:=strok2+1;
  155.         if stolb2+2=10 then stolb2:=stolb2+1;
  156.           strok2 := strok2 + 1;
  157.           stolb2 := stolb2 + 1;
  158.           for i := strok2 to strok2 + 2 do
  159.             for j := stolb2 to stolb2 do
  160.               m[i, j] := 1;
  161.         end;
  162.         inc(povtor);
  163.         writeln(strok2, ',', stolb2,'-3 -палубный');
  164.       end;
  165.     2:
  166.       begin
  167.         stolb2:=0;
  168.         strok2 := 1;
  169.         ng1:
  170.         strok2 := strok2;
  171.         stolb2 := stolb2 + 1;
  172.         svob := 0;
  173.         for i := strok2 to strok2 + 2 do
  174.           for j := stolb2 to stolb2 + 4 do
  175.             if m[i, j] = 1 then
  176.               inc(svob);
  177.         if svob > 0 then
  178.         begin
  179.           if stolb2 + 4 = 10 then
  180.           begin
  181.             strok2 := strok2 + 1;
  182.             stolb2 := 0;
  183.             goto ng1;
  184.           end;
  185.           goto ng1;
  186.         end;
  187.         if svob = 0 then
  188.         begin
  189.          if strok2=1 then strok2:=strok2-1;
  190.          if stolb2=1 then stolb2:=stolb2-1;
  191.          if strok2+2=10 then strok2:=strok2+1;
  192.          if stolb2+4=10 then stolb2:=stolb2+1;
  193.           strok2 := strok2 + 1;
  194.           stolb2 := stolb2 + 1;
  195.           for i := strok2 to strok2 do
  196.             for j := stolb2 to stolb2+2 do
  197.               m[i, j] := 1;
  198.         end;
  199.         inc(povtor);
  200.         writeln(strok2, ',', stolb2,'-3 -палубный');
  201.       end;
  202.   end;
  203.   until povtor=3;
  204.   povtor:=0;
  205.   repeat //2-ух палубные корабли
  206.   vg3 := random(1, 2);
  207.   case vg3 of
  208.     1:
  209.       begin
  210.         stolb3:=0;
  211.         strok3 := 1;
  212.         nv2:
  213.         strok3 := strok3;
  214.         stolb3 := stolb3 + 1;
  215.         svob := 0;
  216.         for i := strok3 to strok3 + 3 do
  217.           for j := stolb3 to stolb3 + 2 do
  218.             if m[i, j] = 1 then
  219.               inc(svob);
  220.         if svob > 0 then
  221.         begin
  222.           if stolb3 + 2 = 10 then
  223.           begin
  224.             strok3 := strok3 + 1;
  225.             stolb3 := 0;
  226.             goto nv2;
  227.           end;
  228.           goto nv2;
  229.         end;
  230.         if svob = 0 then
  231.         begin
  232.          if strok3=1 then strok3:=strok3-1;
  233.          if stolb3=1 then stolb3:=stolb3-1;
  234.          if strok2+3=10 then strok2:=strok2+1;
  235.          if stolb2+2=10 then stolb2:=stolb2+1;
  236.           strok3 := strok3 + 1;
  237.           stolb3 := stolb3 + 1;
  238.           for i := strok3 to strok3 + 1 do
  239.             for j := stolb3 to stolb3 do
  240.               m[i, j] := 1;
  241.         end;
  242.         inc(povtor);
  243.         writeln(strok3, ',', stolb3,'-2 -палубный',vg3);
  244.       end;
  245.     2:
  246.       begin
  247.         stolb3:=0;
  248.         strok3 := 1;
  249.         ng2:
  250.         strok3 := strok3;
  251.         stolb3 := stolb3 + 1;
  252.         svob := 0;
  253.         for i := strok3 to strok3 + 2 do
  254.           for j := stolb3 to stolb3 + 3 do
  255.             if m[i, j] = 1 then
  256.               inc(svob);
  257.         if svob > 0 then
  258.         begin
  259.           if stolb3 + 3 = 10 then
  260.           begin
  261.             strok3 := strok3 + 1;
  262.             stolb3 := 0;
  263.             goto ng2;
  264.           end;
  265.           goto ng2;
  266.         end;
  267.         if svob = 0 then
  268.         begin
  269.          if strok3=1 then strok3:=strok3-1;
  270.          if stolb3=1 then stolb3:=stolb3-1;
  271.          if strok2+2=10 then strok2:=strok2+1;
  272.          if stolb2+3=10 then stolb2:=stolb2+1;
  273.           strok3 := strok3 + 1;
  274.           stolb3 := stolb3 + 1;
  275.           for i := strok3 to strok3 do
  276.             for j := stolb3 to stolb3+1 do
  277.               m[i, j] := 1;
  278.         end;
  279.         inc(povtor);
  280.         writeln(strok3, ',', stolb3,'-2 -палубный',vg3);
  281.       end;
  282.   end;
  283.   until povtor=4;
  284.   povtor:=0;
  285.   repeat //1 палубные корабли
  286.   vg4 := random(1, 2);
  287.   case vg4 of
  288.     1:
  289.       begin
  290.         stolb4:=0;
  291.         strok4 := 1;
  292.         nv3:
  293.         strok4 := strok4;
  294.         stolb4 := stolb4 + 1;
  295.         svob := 0;
  296.         for i := strok4 to strok4 + 2 do
  297.           for j := stolb4 to stolb4 + 2 do
  298.             if m[i, j] = 1 then
  299.               inc(svob);
  300.         if svob > 0 then
  301.         begin
  302.           if stolb4 + 2 = 10 then
  303.           begin
  304.             strok4 := strok4 + 1;
  305.             stolb4 := 0;
  306.             goto nv3;
  307.           end;
  308.           goto nv3;
  309.         end;
  310.         if svob = 0 then
  311.         begin
  312.          if strok4=1 then strok4:=strok4-1;
  313.          if stolb4=1 then stolb4:=stolb4-1;
  314.          if strok2+2=10 then strok2:=strok2+1;
  315.          if stolb2+2=10 then stolb2:=stolb2+1;
  316.           strok4 := strok4 + 1;
  317.           stolb4 := stolb4 + 1;
  318.           for i := strok4 to strok4 do
  319.             for j := stolb4 to stolb4 do
  320.               m[i, j] := 1;
  321.         end;
  322.         inc(povtor);
  323.         writeln(strok4, ',', stolb4,'-1 -палубный',vg4);
  324.       end;
  325.     2:
  326.       begin
  327.         stolb4:=0;
  328.         strok4 := 1;
  329.         ng3:
  330.         strok4 := strok4;
  331.         stolb4 := stolb4 + 1;
  332.         svob := 0;
  333.         for i := strok4 to strok4 + 2 do
  334.           for j := stolb4 to stolb4 + 2 do
  335.             if m[i, j] = 1 then
  336.               inc(svob);
  337.         if svob > 0 then
  338.         begin
  339.           if stolb4 + 2 >= 10 then
  340.           begin
  341.             strok4 := strok4 + 1;
  342.             stolb4 := 0;
  343.             goto ng3;
  344.           end;
  345.           goto ng3;
  346.         end;
  347.         if svob = 0 then
  348.         begin
  349.          if strok4=1 then strok4:=strok4-1;
  350.          if stolb4=1 then stolb4:=stolb4-1;
  351.          if strok2+2=10 then strok2:=strok2+1;
  352.          if stolb2+2=10 then stolb2:=stolb2+1;
  353.           strok4 := strok4 + 1;
  354.           stolb4 := stolb4 + 1;
  355.           for i := strok4 to strok4 do
  356.             for j := stolb4 to stolb4 do
  357.               m[i, j] := 1;
  358.         end;
  359.         inc(povtor);
  360.         writeln(strok4, ',', stolb4,'-1 -палубный',vg4);
  361.       end;
  362.   end;
  363.   until povtor=5;
  364.   for i := 1 to 10 do
  365.   begin
  366.     for j := 1 to 10 do
  367.       write(m[i, j]:3);
  368.     writeln;
  369.   end;
  370.   writeln(strok, ',', stolb);
  371.   writeln(strok1, ',', stolb1);
  372.   writeln(vg);
  373.   writeln(vg1);
  374. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement