Advertisement
Guest User

Untitled

a guest
Nov 21st, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. //fpc 3.0.0
  2.  
  3. program HelloWorld;
  4.  
  5. type
  6. Stan = record
  7. czlowiek : boolean;
  8. wilk: boolean;
  9. koza: boolean;
  10. salata : boolean
  11. end;
  12.  
  13. var
  14. problem,poprzednia,i : integer;
  15. randomowa : integer;
  16. stany : Array[0..15] of Stan;
  17.  
  18. function liczbaPorownan(a,b : Stan) : integer;
  19. var
  20. counter : integer;
  21. begin
  22.  
  23.  
  24. counter := 0;
  25. if (a.koza <> b.koza) then counter:=counter+1;
  26. if (a.wilk <> b.wilk) then counter:=counter+1;
  27. if (a.salata <> b.salata) then counter:=counter+1;
  28. liczbaPorownan:=counter;
  29. end;
  30.  
  31. begin
  32. Randomize;
  33.  
  34. {UZUPELANIANIE TABELI STANOW}
  35.  
  36.  
  37. for i:=0 to 15 do
  38. begin
  39. if(i<8) then
  40. begin
  41. stany[i].czlowiek:=false;
  42. end else
  43. begin
  44. stany[i].czlowiek:=true;
  45. end;
  46. end;
  47.  
  48. for i:=0 to 15 do
  49. begin
  50. if (i<4) or ((i>7) and (i<12)) then
  51. begin
  52. stany[i].wilk:=false;
  53. end else
  54. begin
  55. stany[i].wilk:=true;
  56. end;
  57. end;
  58.  
  59. for i:=0 to 15 do
  60. begin
  61. stany[i].koza:=true;
  62. end;
  63. for i:=0 to 15 do
  64. begin
  65. if(i mod 3 = 0) then
  66. begin
  67. stany[i].koza := false;
  68. stany[i+1].koza := false;
  69. end;
  70. end;
  71.  
  72. for i:=0 to 15 do
  73. begin
  74. stany[i].salata:=true;
  75. end;
  76. for i:=0 to 15 do
  77. begin
  78. if(i mod 2 = 0) then
  79. begin
  80. stany[i].salata := false;
  81. end;
  82. end;
  83.  
  84. {WYSZUKIWANIE SCIEZKI}
  85. writeln('CWKS');
  86. problem:=0;
  87. poprzednia:=0;
  88. write(stany[problem].czlowiek);
  89. write(' ');
  90. write(stany[problem].wilk);
  91. write(' ');
  92. write(stany[problem].koza);
  93. write(' ');
  94. writeln(stany[problem].salata);
  95.  
  96. while (problem <> 15) do
  97. begin
  98. randomowa:=1+random(15);
  99. if (((stany[problem].czlowiek) <> (stany[randomowa].czlowiek)) and (liczbaPorownan(stany[problem], stany[randomowa]) <= 1) and (randomowa<>3) and (randomowa <>6) and (randomowa <>7) and (randomowa <>8) and (randomowa <>9) and (randomowa <> 12) and (randomowa <> poprzednia)) then
  100. begin
  101. poprzednia:= problem;
  102. problem:=randomowa;
  103. write(stany[problem].czlowiek);
  104. write(' ');
  105. write(stany[problem].wilk);
  106. write(' ');
  107. write(stany[problem].koza);
  108. write(' ');
  109. writeln(stany[problem].salata);
  110. end;
  111. end;
  112. writeln();
  113.  
  114. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement