From 26fcb310beb5c53938507638d01bcf90a94cd409 Mon Sep 17 00:00:00 2001 From: Maximilian Wagner Date: Fri, 23 Jun 2023 17:31:12 +0200 Subject: [PATCH] =?UTF-8?q?einheit=5Fattackable=20hinzugef=C3=BCgt.=20Angr?= =?UTF-8?q?iffe=20gehen=20nur=20aus=20angrenzenden=20Feldern=20und=20nicht?= =?UTF-8?q?=20diagonal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logik.pl | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/logik.pl b/logik.pl index 9125116..da9e770 100644 --- a/logik.pl +++ b/logik.pl @@ -43,6 +43,14 @@ betrag(In, Out) :- ). +% Prüft ob Einheiten sich in angrenzenden feldern befinden +einheit_attackable(X1, Y1, X2, Y2) :- + betrag(X1 - X2, Xd), + betrag(Y1 - Y2, Yd), + Distance is Xd + Yd, + Distance < 2. + + % Bewegt die Einheit des aktuellen Spielers an position Xold, Yold % auf position Xnew, Ynew einheit_move(Xold, Yold, Xnew, Ynew) :- @@ -76,6 +84,9 @@ einheit_move(Xold, Yold, Xnew, Ynew) :- % Die Einheit des aktuellen Spielers auf Xattack, Yattack % greift die Einheit des anderen auf Xdefend, Ydefend an einheit_attack(Xattack, Yattack, Xdefend, Ydefend) :- + %Prüfen ob die Einheit angegriffen werden kann + einheit_attackable(Xattack, Yattack, Xdefend, Ydefend), + % Player token abziehen für den angriff-move % Falls nix übrig wird der angriff abgebrochen da false change_player_tokens_decrement,