Field, Player und Gamemanger in vielen Zügen bereits programmiert. Es läuft noch nicht aber der Grundbau ist fast fertig. [Noch ohne Kommentare]
This commit is contained in:
parent
8d76c8bcf0
commit
47797fc963
39
server/game-logic/Field.java
Normal file
39
server/game-logic/Field.java
Normal file
@ -0,0 +1,39 @@
|
||||
import java.util.ArrayList;
|
||||
|
||||
import Player;
|
||||
|
||||
public class Field {
|
||||
private int dice_number;
|
||||
private ArrayList<Field> neighbours;
|
||||
private Player owner;
|
||||
|
||||
public Field(int input_dice_number, Player input_owner){
|
||||
neighbours = new ArrayList<Field>();
|
||||
dice_number = input_dice_number;
|
||||
owner = input_owner;
|
||||
}
|
||||
|
||||
public ArrayList<Field> get_neighbours(){
|
||||
return neighbours;
|
||||
}
|
||||
|
||||
public void add_neighbour(Field input){
|
||||
neighbours.add(input);
|
||||
}
|
||||
|
||||
public int get_dice_number(){
|
||||
return dice_number;
|
||||
}
|
||||
|
||||
public void set_dice_number(int number){
|
||||
dice_number = number;
|
||||
}
|
||||
|
||||
public Player get_owner(){
|
||||
return owner;
|
||||
}
|
||||
|
||||
public void set_owner(Player input){
|
||||
owner = input;
|
||||
}
|
||||
}
|
137
server/game-logic/GameManager.java
Normal file
137
server/game-logic/GameManager.java
Normal file
@ -0,0 +1,137 @@
|
||||
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<Field> fields;
|
||||
private ArrayList<Player> players;
|
||||
private Player current_att_pl;
|
||||
private Random rand_num_gen;
|
||||
|
||||
public GameManager(){
|
||||
fields = new ArrayList<Field>();
|
||||
players = new ArrayList<Player>();
|
||||
rand_num_gen = new Random();
|
||||
}
|
||||
|
||||
public ArrayList<Player> 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<Field> 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;
|
||||
}
|
||||
}
|
||||
}
|
21
server/game-logic/Player.java
Normal file
21
server/game-logic/Player.java
Normal file
@ -0,0 +1,21 @@
|
||||
public class Player{
|
||||
private String name;
|
||||
private int playerid;
|
||||
|
||||
public Player(String input_name, int input_id){
|
||||
name = input_name;
|
||||
playerid = input_id;
|
||||
}
|
||||
|
||||
public void set_name(String input_name){
|
||||
name = input_name;
|
||||
}
|
||||
|
||||
public String get_name(){
|
||||
return name;
|
||||
}
|
||||
|
||||
public int get_playerid(){
|
||||
return playerid;
|
||||
}
|
||||
}
|
8
server/game-logic/Test.java
Normal file
8
server/game-logic/Test.java
Normal file
@ -0,0 +1,8 @@
|
||||
import GameManager.*;
|
||||
|
||||
public class Test {
|
||||
public static void main(String[] args){
|
||||
Random rand_num = new Random();
|
||||
System.out.println(Integer.toString(rand_num.nextInt(2)));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user