uebung04
This commit is contained in:
parent
192db94f14
commit
136be17443
39
uebung04/chess/Rook.java
Normal file
39
uebung04/chess/Rook.java
Normal file
@ -0,0 +1,39 @@
|
||||
package chess;
|
||||
|
||||
import static java.lang.Integer.signum;
|
||||
import static java.lang.Math.abs;
|
||||
|
||||
public class Rook extends Piece{
|
||||
public Rook(Color color, Board board, int row, int col) {
|
||||
super(color, board, row, col);
|
||||
}
|
||||
|
||||
@Override
|
||||
public char charRep() {
|
||||
return getColor() == Color.white ? 'r' : 'R';
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "" + getColor() + " rook at (" + getRow() + ", " + getCol() + ")";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canCapture(Piece other) {
|
||||
if (getBoard() != other.getBoard() || getColor() == other.getColor())
|
||||
return false;
|
||||
if (other.getRow() != getRow() &&
|
||||
other.getCol() != getCol())
|
||||
return false;
|
||||
final int dr = signum(other.getRow() - getRow());
|
||||
final int dc = signum(other.getCol() - getCol());
|
||||
int r = getRow() + dr;
|
||||
int c = getCol() + dc;
|
||||
while (r != other.getRow() || c != other.getCol()) {
|
||||
if (getBoard().pieceAt(r, c) != null) return false;
|
||||
r += dr;
|
||||
c += dc;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
53
uebung04/tournament/ByeGame.java
Normal file
53
uebung04/tournament/ByeGame.java
Normal file
@ -0,0 +1,53 @@
|
||||
package tournament;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class ByeGame extends Game{
|
||||
private final String player1;
|
||||
private final Game ref;
|
||||
|
||||
ByeGame(String player1, Game ref){
|
||||
super();
|
||||
this.ref = ref;
|
||||
this.player1 = player1;
|
||||
}
|
||||
|
||||
public Game getRef() {
|
||||
return ref;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPlayer1() {
|
||||
return player1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPlayer2() {
|
||||
return ref.getWinner();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getAllPlayers() {
|
||||
List<String> players = new ArrayList<String>();
|
||||
players.add(player1);
|
||||
players.addAll(ref.getAllPlayers());
|
||||
return players;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<Game> getAllGames()
|
||||
{
|
||||
List<Game> temp = new ArrayList(Arrays.asList(this.getId()));
|
||||
temp.addAll(ref.getAllGames());
|
||||
return temp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getRemaningPlayers() {
|
||||
// TODO Auto-generated method stub
|
||||
throw new UnsupportedOperationException("Unimplemented method 'getRemaningPlayers'");
|
||||
}
|
||||
}
|
47
uebung04/tournament/Game.java
Normal file
47
uebung04/tournament/Game.java
Normal file
@ -0,0 +1,47 @@
|
||||
package tournament;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public abstract class Game {
|
||||
private static int counter = 0;
|
||||
private final int id;
|
||||
//null nicht notwendig
|
||||
private String winner = null;
|
||||
|
||||
|
||||
protected Game() {
|
||||
this.id = counter++;
|
||||
}
|
||||
|
||||
public int getId(){
|
||||
return this.id;
|
||||
}
|
||||
|
||||
public String getWinner(){
|
||||
return this.winner;
|
||||
}
|
||||
|
||||
public void setWinner(String winner) {
|
||||
String player1 = getPlayer1();
|
||||
System.out.println("Player 1: " + player1);
|
||||
String player2 = getPlayer2();
|
||||
System.out.println("Player 2: " + player2);
|
||||
this.winner = this.winner == null && player1 != null && player2 != null && (winner == player1 || winner == player2) ? this.winner = winner : this.winner;
|
||||
}
|
||||
|
||||
public abstract String getPlayer1();
|
||||
|
||||
public abstract String getPlayer2();
|
||||
|
||||
public abstract List<String> getAllPlayers();
|
||||
|
||||
public abstract List<String> getRemaningPlayers();
|
||||
|
||||
public abstract List<Game> getAllGames();
|
||||
|
||||
public String toString(){
|
||||
return "Game: " + getId() + " Player: "+ getPlayer1()+ " vs Player: " + getPlayer2() + "Winner is: "+ getWinner();
|
||||
}
|
||||
|
||||
|
||||
}
|
51
uebung04/tournament/OrdinaryGame.java
Normal file
51
uebung04/tournament/OrdinaryGame.java
Normal file
@ -0,0 +1,51 @@
|
||||
package tournament;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class OrdinaryGame extends Game{
|
||||
private Game Player1;
|
||||
private Game Player2;
|
||||
public OrdinaryGame(Game Player1, Game Player2)
|
||||
{
|
||||
this.Player1 = Player1;
|
||||
this.Player2 = Player2;
|
||||
}
|
||||
@Override
|
||||
public String getPlayer1()
|
||||
{
|
||||
return Player1.getWinner();
|
||||
}
|
||||
@Override
|
||||
public String getPlayer2()
|
||||
{
|
||||
return Player2.getWinner();
|
||||
}
|
||||
@Override
|
||||
public List<String> getAllPlayers()
|
||||
{
|
||||
List<String> temp = new ArrayList();
|
||||
temp.addAll(Player1.getAllPlayers());
|
||||
temp.addAll(Player2.getAllPlayers());
|
||||
return temp;
|
||||
}
|
||||
@Override
|
||||
public List<String> getRemaningPlayers()
|
||||
{
|
||||
if(this.getWinner() != null)
|
||||
return new ArrayList<>(Arrays.asList(this.getWinner()));
|
||||
List<String> temp = new ArrayList();
|
||||
temp.addAll(Player1.getRemaningPlayers());
|
||||
temp.addAll(Player2.getRemaningPlayers());
|
||||
return temp;
|
||||
}
|
||||
@Override
|
||||
public List<Game> getAllGames()
|
||||
{
|
||||
List<Game> temp = new ArrayList(Arrays.asList(this.getId()));
|
||||
temp.addAll(Player1.getAllGames());
|
||||
temp.addAll(Player2.getAllGames());
|
||||
return temp;
|
||||
}
|
||||
}
|
51
uebung04/tournament/SeededGame.java
Normal file
51
uebung04/tournament/SeededGame.java
Normal file
@ -0,0 +1,51 @@
|
||||
package tournament;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class SeededGame extends Game{
|
||||
private String player1;
|
||||
private String player2;
|
||||
|
||||
public SeededGame(String player1, String player2) {
|
||||
super();
|
||||
this.player1 = player1;
|
||||
this.player2 = player2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPlayer1()
|
||||
{
|
||||
return player1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPlayer2()
|
||||
{
|
||||
return player2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getAllPlayers()
|
||||
{
|
||||
//return new ArrayList<String>(Arrays.asList(player1, player2));
|
||||
return List.of(player1, player2);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getRemaningPlayers()
|
||||
{
|
||||
if(this.getWinner() != null)
|
||||
return new ArrayList<>(Arrays.asList(this.getWinner()));
|
||||
List<String> temp = new ArrayList(Arrays.asList(player1,player2));
|
||||
return temp;
|
||||
}
|
||||
@Override
|
||||
public List<Game> getAllGames()
|
||||
{
|
||||
return List.of(this);
|
||||
}
|
||||
}
|
||||
|
19
uebung04/tournament/Tournament.java
Normal file
19
uebung04/tournament/Tournament.java
Normal file
@ -0,0 +1,19 @@
|
||||
package tournament;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class Tournament {
|
||||
private final Game finale;
|
||||
private final String name;
|
||||
public Tournament(String name, Game finale)
|
||||
{
|
||||
this.finale = finale;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public List<String> getAllPlayers() {return finale.getAllPlayers();}
|
||||
|
||||
public List<Game> getAllGames() {return finale.getAllGames();}
|
||||
|
||||
public List<String> getRemainingPlayers() {return finale.getRemaningPlayers();}
|
||||
}
|
Loading…
Reference in New Issue
Block a user