From a136b99ea29867cfd4b881387ade819c92d60fe1 Mon Sep 17 00:00:00 2001 From: Maximilian Wagner Date: Mon, 22 May 2023 15:56:32 +0200 Subject: [PATCH 1/4] move_einheit implementiert --- daten.pl | 13 +++++++++---- logik.pl | 18 ++++++++++++++++-- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/daten.pl b/daten.pl index 52a444d..408166d 100644 --- a/daten.pl +++ b/daten.pl @@ -58,20 +58,25 @@ init_feld1 :- % Setzt das Spielfeld sowie die zugewiesenen einheiten zurück reset_game :- retractall( feld(_,_,_) ), - retractall( einheit_active(_,_,_,_) ). + retractall( einheit_active(_,_,_,_) ), + retractall( player_tokens(_,_) ). % Initialisiert die Einheiten für die jeweiligen Spieler init_player(Player, Type1, Type2, Type3) :- - % der shabang ist hier damit die einheiten jeweils in den ecken spawnen + % der shabang ist hier damit die einheiten jeweils in den + % richtigen ecken spawnen playerStart(Player, X, Y), Xp1 is X + 1, + Xp2 is X + 2, + Yp1 is Y + 1, + Yp2 is Y + 2, % einheit_active(Player, Einheit Type, feldX, feldY) assert( einheit_active(Player,Type1,Xp1,Yp1) ), - assert( einheit_active(Player,Type2,Xp1,Y ) ), - assert( enemy_active(Player,Type3,X ,Yp1) ), + assert( einheit_active(Player,Type2,Xp2,Yp1) ), + assert( einheit_active(Player,Type3,Xp1,Yp2) ), % Berechnet die zustehenden Tokens pro Runde für den Spieler einheit(Type1, _,_,_, Cost1), diff --git a/logik.pl b/logik.pl index 8bedf0e..8922142 100644 --- a/logik.pl +++ b/logik.pl @@ -5,7 +5,7 @@ player_turn(Player) :- % calculate action points - calc_action_points(Player, Turncounter) + calc_action_points(Player, Turncounter), % further logic @@ -14,4 +14,18 @@ player_turn(Player) :- % save remaining ap - save_action_points(Player) \ No newline at end of file + save_action_points(Player). + + +% Bewegt die Einheit des Spielers an position Xold, Yold +% um Xmove, Ymove in die jeweilige Richtung +move_einheit(Player, Xold, Yold, Xmove, Ymove) :- + % Die Einheit entfernen + retract( einheit_active(Player, Type, Xold, Yold) ), + + % Neue position berechnen + Xnew is Xold + Xmove, + Ynew is Yold + Ymove, + + % Die Einheit an die neue Position setzen + assert( einheit_active(Player, Type, Xnew, Ynew) ). \ No newline at end of file From 3832f7b41fa7ddae53dbd6a2744eeccf2ab3fc28 Mon Sep 17 00:00:00 2001 From: Maximilian Wagner Date: Mon, 22 May 2023 16:22:08 +0200 Subject: [PATCH 2/4] move_einheit -> einheit_move --- logik.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logik.pl b/logik.pl index 8922142..b705f30 100644 --- a/logik.pl +++ b/logik.pl @@ -19,7 +19,7 @@ player_turn(Player) :- % Bewegt die Einheit des Spielers an position Xold, Yold % um Xmove, Ymove in die jeweilige Richtung -move_einheit(Player, Xold, Yold, Xmove, Ymove) :- +einheit_move(Player, Xold, Yold, Xmove, Ymove) :- % Die Einheit entfernen retract( einheit_active(Player, Type, Xold, Yold) ), From 18abacdde1806573986aad9ffd9a9dd3f2c675b9 Mon Sep 17 00:00:00 2001 From: Maximilian Wagner Date: Mon, 22 May 2023 16:37:34 +0200 Subject: [PATCH 3/4] imports verschoben --- gui.pl | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/gui.pl b/gui.pl index 761ac4c..aeeff09 100644 --- a/gui.pl +++ b/gui.pl @@ -1,6 +1,5 @@ -% erstmal nur experimentell, der bums kommt zum schluss -% falls noch zeit sein sollte jedenfalls - +:- use_module(library(tabular)). +:- use_module(library(autowin)). % new(@specifier, dialog('windowname')) % send(@specifiert, append(text_item(name))) @@ -10,6 +9,7 @@ window(Name) :- send(D, append, button(show, message(@prolog, window3, 'Spielfeld'))), send(D, open). + window2(Name) :- new(D, dialog(Name)), @@ -21,10 +21,6 @@ window2(Name) :- send(D, open). -% Specific für window3/1 -:- use_module(library(tabular)). -:- use_module(library(autowin)). - window3(Name) :- new(P, auto_sized_picture(Name)), send(P, display, new(T, tabular)), From 2d1547d4582ebc79d0987d73a92afd82bb98b3f1 Mon Sep 17 00:00:00 2001 From: Maximilian Wagner Date: Mon, 22 May 2023 16:37:59 +0200 Subject: [PATCH 4/4] angepasste einheit_move --- logik.pl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/logik.pl b/logik.pl index b705f30..0682deb 100644 --- a/logik.pl +++ b/logik.pl @@ -28,4 +28,9 @@ einheit_move(Player, Xold, Yold, Xmove, Ymove) :- Ynew is Yold + Ymove, % Die Einheit an die neue Position setzen - assert( einheit_active(Player, Type, Xnew, Ynew) ). \ No newline at end of file + assert( einheit_active(Player, Type, Xnew, Ynew) ), + + % Errechnen der verbleibenden Tokens + retract( player_tokens(Player, Tokens) ), + TokensNew is Tokens - Xmove - Ymove, + assert( player_tokens(Player, TokensNew) ). \ No newline at end of file