import Player; import Field; import java.util.ArrayList; import java.util.Random; public class Max{ private int max; public Max(int num1, int num2){ if(num1 < num2){ max = num1; } else{ max = num2; } } public get_max(){ return max; } } public class AttackInformations{ private int attack_field_dice; private int defense_field_dice; private boolean attack_success; private boolean attack_allowed; public AttackInformations(int input_att_field, int input_def_field,boolean input_attack_allowed){ attack_field_dice = input_att_field; defense_field_dice = input_def_field; attack_success = (input_att_field >= input_def_field); attack_allowed = input_attack_allowed; } public int get_attack_field_dice(){ return attack_field_dice; } public int get_defense_field_dice(){ return defense_field_dice; } public boolean get_attack_success(){ return attack_success; } public boolean get_attack_allowed(){ return attack_allowed; } } public class GameManager { private ArrayList fields; private ArrayList players; private Player current_att_pl; private Random rand_num_gen; public GameManager(){ fields = new ArrayList(); players = new ArrayList(); rand_num_gen = new Random(); } public ArrayList get_players(){ return players; } public void add_player(String input){ if(players.size() < 8){ players.add(Player(input,players.size())); } } public AttackInformations attack_field(Field att_field, Field def_field){ boolean attack_allowed; boolean att_field_allowed = false; boolean def_field_allowed = false; for(Field field:fields){ if(field == att_field){ att_field_allowed = true; } if(field == def_field){ def_field_allowed = true; } } for(Field neigh:att_field.get_neighbours()){ if(neigh == def_field){ attack_allowed = true; } } attack_allowed = att_field_allowed && def_field_allowed && attack_allowed; if(attack_allowed){ int att_field_sum = 0; int def_field_sum = 0; for(int i = 0; i < att_field.get_dice_number();i++){ att_field_sum += 1 + rand_num_gen.nextInt(6); } for(int i = 0; i < def_field.get_dice_number();i++){ def_field_sum += 1 + rand_num_gen.nextInt(6); } AttackInformations infor = new AttackInformations(att_field_sum, def_field_sum,true); if(infor.get_attack_success()){ def_field.set_dice_number(Max(att_field.get_dice_number()-1,1).get_max()); def_field.set_owner(att_field.get_owner()); } att_field.set_dice_number(1); } return AttackInformations(-1,-1,false); } public ArrayList get_fields(){ return fields; } public void new_game(){ fields.clear(); int num_fields = 20 + rand_num_gen.nextInt(10); int[] player_num_fields = new int[players.size()]; for(int x: player_num_fields){ x = 0; } } }