jan0s1k

Hetman Emil

Apr 19th, 2013
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.08 KB | None | 0 0
  1. program HETMAN;
  2.  
  3. uses CRT;
  4.  
  5. const Rozmiar = 8;
  6.  
  7. Type
  8. Szachownica = Array [1..Rozmiar] of ShortInt;
  9.  
  10. var S: Szachownica;
  11. Ilosc : LongInt;
  12.  
  13. Function AtakujaSie(x1, y1, x2, y2 : ShortInt) : Boolean;
  14. Begin
  15. If (x1=x2) or (y1=y2) or (Abs(x1-x2)=Abs(y1-y2)) then
  16. AtakujaSie:=True
  17. Else AtakujaSie:=False;
  18. End;
  19.  
  20. Function Wolna(x, y : ShortInt) : Boolean;
  21. var
  22. wiersz: ShortInt;
  23. begin
  24. Wolna:=False;
  25. For wiersz:=1 to x-1 do
  26. if AtakujaSie(wiersz, S[wiersz], x, y) then Exit;
  27. Wolna:=True;
  28. End;
  29.  
  30. Procedure Wypisz;
  31. var
  32. wiersz, kolumna : ShortInt;
  33. begin
  34. for wiersz:= 1 to Rozmiar do
  35. begin
  36. for kolumna:=1 to Rozmiar do
  37. If kolumna=S[wiersz] then Write('x':2)
  38. Else Write('*':2);
  39. writeln;
  40. end;
  41. Ilosc:=Ilosc+1;
  42. writeln('Ustawienie numer =', Ilosc);
  43. end;
  44.  
  45. Procedure Ustaw(wiersz :  ShortInt);
  46. var
  47. kolumna : ShortInt;
  48. begin
  49. for kolumna:=1 to Rozmiar do
  50. if Wolna (wiersz, kolumna) then
  51. begin
  52. S[wiersz]:=kolumna;
  53. if wiersz<Rozmiar then Ustaw(wiersz+1)
  54. else Wypisz;
  55. End;
  56. End;
  57. Begin;
  58. Ilosc:=0;
  59. Ustaw(1);
  60. Readln;
  61. End.
  62.  
  63. begin
  64. AtakujaSie;
  65. Wolna;
  66. Ustaw;
  67. Wypisz;
  68. end.
Advertisement
Add Comment
Please, Sign In to add comment