|
@ -1,77 +1,171 @@
|
|||
package ch.zhaw.projekt2.turnierverwaltung;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/**
|
||||
* Class Representing a game, implements Serializable to be saved inside a tournament
|
||||
* Holding the data and points for a single match
|
||||
*/
|
||||
public class Game implements Serializable {
|
||||
private Participant participant1, participant2;
|
||||
private int points1, points2;
|
||||
private Place place;
|
||||
private Game previousGame1, previousGame2;
|
||||
|
||||
private static final Logger logger = Logger.getLogger(FileIO.class.getCanonicalName());
|
||||
|
||||
/**
|
||||
* Constructor to initialize a new game.
|
||||
* Two participants are needed.
|
||||
*
|
||||
* @param participant1 that is added to the game
|
||||
* @param participant2 that is added to the game
|
||||
*/
|
||||
public Game(Participant participant1, Participant participant2) {
|
||||
logger.fine("initializing a new game with the participants: " + participant1 + ", " + participant2);
|
||||
this.participant1 = participant1;
|
||||
this.participant2 = participant2;
|
||||
}
|
||||
|
||||
public Game(Game previousGame1, Game previousGame2){
|
||||
/**
|
||||
* Constructor to initialize a game with two previous games.
|
||||
*
|
||||
* @param previousGame1 previous game (connecting to this game in the hierarchy)
|
||||
* @param previousGame2 other previous game (connecting to this game in the hierarchy)
|
||||
*/
|
||||
public Game(Game previousGame1, Game previousGame2) {
|
||||
logger.fine("initializing a new game with the previous games: " + previousGame1 + ", " + previousGame2);
|
||||
this.previousGame1 = previousGame1;
|
||||
this.previousGame2 = previousGame2;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the points of the first participant
|
||||
*
|
||||
* @return points of participant 1
|
||||
*/
|
||||
public int getPoints1() {
|
||||
logger.fine("Returning points of: " + participant1 + ", holding: " + points1 + " points");
|
||||
return points1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to set the points of the first participant
|
||||
*
|
||||
* @param points1 to be set for the first participant
|
||||
*/
|
||||
public void setPoints1(int points1) {
|
||||
logger.fine("Setting points of: " + participant1 + ", to " + points1 + " points");
|
||||
this.points1 = points1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the points of the second participant
|
||||
*
|
||||
* @return points of participant 2
|
||||
*/
|
||||
public int getPoints2() {
|
||||
logger.fine("Returning points of: " + participant2 + ", holding: " + points2 + " points");
|
||||
return points2;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to set the points of the second participant
|
||||
*
|
||||
* @param points2 to be set for the second participant
|
||||
*/
|
||||
public void setPoints2(int points2) {
|
||||
logger.fine("Setting points of: " + participant2 + ", to " + points2 + " points");
|
||||
this.points2 = points2;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the first Participant
|
||||
*
|
||||
* @return the first Participant
|
||||
*/
|
||||
public Participant getParticipant1() {
|
||||
logger.fine("Returning the first participant: " + participant1);
|
||||
return participant1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to set the first participant
|
||||
*
|
||||
* @param participant1 to be set as the first participant
|
||||
*/
|
||||
public void setParticipant1(Participant participant1) {
|
||||
logger.fine("Setting the first Participant as: " + participant1);
|
||||
this.participant1 = participant1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to set the second participant
|
||||
*
|
||||
* @param participant2 to be set as the second participant
|
||||
*/
|
||||
public void setParticipant2(Participant participant2) {
|
||||
logger.fine("Setting the second Participant as: " + participant2);
|
||||
this.participant2 = participant2;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the second Participant
|
||||
*
|
||||
* @return the second participant
|
||||
*/
|
||||
public Participant getParticipant2() {
|
||||
logger.fine("Returning the second participant: " + participant2);
|
||||
return participant2;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to set the place of a game
|
||||
*
|
||||
* @param place to be set for the game
|
||||
*/
|
||||
public void setPlace(Place place) {
|
||||
logger.fine("Setting the location of the game " + this + " to: " + place);
|
||||
this.place = place;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get the place of a game
|
||||
*
|
||||
* @return the place of the game
|
||||
*/
|
||||
public Place getPlace() {
|
||||
logger.fine("Returning the place of the game, current Location: " + place);
|
||||
return place;
|
||||
}
|
||||
|
||||
public Participant getWinner(){
|
||||
if(points1 > points2){
|
||||
/**
|
||||
* Method to determine the winner of a game, if there is a draw null will be returned.
|
||||
*
|
||||
* @return the winner of the game or null if draw
|
||||
*/
|
||||
public Participant getWinner() {
|
||||
logger.finer("Determining winner of game");
|
||||
if (points1 > points2) {
|
||||
logger.fine(participant1 + "has won the game");
|
||||
return participant1;
|
||||
} else if(points2 > points1){
|
||||
} else if (points2 > points1) {
|
||||
logger.fine(participant2 + "has won the game");
|
||||
return participant2;
|
||||
} else {
|
||||
logger.fine("There is no winner");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void refreshParticipants(){
|
||||
/**
|
||||
* Method that gets the winner of previous games and sets them as the participants of this game.
|
||||
*/
|
||||
public void refreshParticipants() {
|
||||
participant1 = previousGame1.getWinner();
|
||||
participant2 = previousGame2.getWinner();
|
||||
logger.fine("Refreshed Participants, new Participants: " + participant1 + ", " + participant2);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue