first iteration of save_ap and calc_ap

This commit is contained in:
xxsoca 2023-06-04 21:53:49 +02:00
parent aa4919f706
commit e8c9720041
2 changed files with 25 additions and 1 deletions

View File

@ -24,6 +24,8 @@ player(2).
% Die Anzahl an tokens die pro Runde an die Spieler verteilt wird % Die Anzahl an tokens die pro Runde an die Spieler verteilt wird
player_tokens(10). player_tokens(10).
% Der Turncounter
turn_counter(1).
% Erschafft ein festes Spielfeld % Erschafft ein festes Spielfeld
init_feld1 :- init_feld1 :-

View File

@ -4,6 +4,11 @@
% nicht bei jedem Aufruf angegeben werden muss % nicht bei jedem Aufruf angegeben werden muss
:- assert( current_player(1) ). % das muss so weil sonst err :- assert( current_player(1) ). % das muss so weil sonst err
% Damit vorherige action points (=0) auch in der ersten Runde exisiteren, sonst err
:-
assert( turn_action_points(1, 0) ),
assert( turn_action_points(2, 0) ).
% Aktualisieren des aktuellen Spielers geht hiermit % Aktualisieren des aktuellen Spielers geht hiermit
change_player_to(Player) :- change_player_to(Player) :-
retract( current_player(_X) ), retract( current_player(_X) ),
@ -29,7 +34,7 @@ change_player :-
player_turn(Player) :- player_turn(Player) :-
% calculate action points % calculate action points
calc_action_points(Player, _Turncounter), calc_action_points(Player),
% further logic % further logic
@ -116,4 +121,21 @@ einheit_delete(X, Y) :-
get_color_of_fieldType(FieldTypeInt, Color) :- get_color_of_fieldType(FieldTypeInt, Color) :-
feldType(_, FieldTypeInt, Color). feldType(_, FieldTypeInt, Color).
save_action_points(Player) :-
turn_action_points(Player, Ap),
retract( turn_action_points(Player, _) ),
assert( turn_action_points(Player, Ap) ).
calc_action_points(Player) :-
% get initial AP at start of game
player_tokens(Player, FirstRound),
% get leftover action points from turn before
turn_action_points(Player, RoundBefore),
% calculate for new turn
AP is RoundBefore + FirstRound,
retract( turn_action_points(Player, _) ),
assert( turn_action_points(Player, AP)).