From 5621b7e79833e03f18e4e207369798d4d37bf1af Mon Sep 17 00:00:00 2001 From: 2211320 <2211320@stud.hs-mannheim.de> Date: Sat, 3 Dec 2022 20:37:56 +0100 Subject: [PATCH] isWon und whoWon fertig --- src/domain/Spiel.java | 4 +- src/facade/Spielsystem.java | 79 +++++++++++++++++++++++++++++++++++-- src/ui/UI.java | 1 + 3 files changed, 78 insertions(+), 6 deletions(-) diff --git a/src/domain/Spiel.java b/src/domain/Spiel.java index 2756853..5058d30 100644 --- a/src/domain/Spiel.java +++ b/src/domain/Spiel.java @@ -1,7 +1,5 @@ package domain; -import java.util.HashMap; - public class Spiel { private String spielname; @@ -44,7 +42,7 @@ public class Spiel { spielbrettArray[1][3] = ' '; spielbrettArray[1][4] = 'O'; spielbrettArray[1][5] = '\u25A1'; - spielbrettArray[1][6] = 'O'; + spielbrettArray[1][6] = 'O'; spielbrettArray[1][7] = ' '; spielbrettArray[1][8] = ' '; spielbrettArray[1][9] = ' '; diff --git a/src/facade/Spielsystem.java b/src/facade/Spielsystem.java index cab59c1..e99945d 100644 --- a/src/facade/Spielsystem.java +++ b/src/facade/Spielsystem.java @@ -11,7 +11,6 @@ import domain.Fuchs; import domain.Hennen; import domain.Spiel; import domain.Spielfigur; -import ui.UI; public class Spielsystem { private String spielname; @@ -94,8 +93,65 @@ public class Spielsystem { public void printBoard() { spiel.printBoard(); } + + public boolean gewinnBedingungHennen() { + char[][] spielbrettArray = spiel.getSpielbrettArray(); + + if(spielbrettArray[0][4] == 'X' && spielbrettArray[0][5] == 'X' && spielbrettArray[0][6] == 'X' && + spielbrettArray[1][4] == 'X' && spielbrettArray[1][5] == 'X' && spielbrettArray[1][6] == 'X' && + spielbrettArray[2][4] == 'X' && spielbrettArray[2][5] == 'X' && spielbrettArray[2][6] == 'X') { + return true; + } + + int spielfigurExistiert = 0; + + for(int i = 0; i < spielbrettArray.length; i++ ) + { + for(int k = 0; k < spielbrettArray[i].length; k++ ){ + if(spielbrettArray[i][k] == 'O') { + spielfigurExistiert++; + } + } + if(spielfigurExistiert >= 1) { + break; + } + } + + if(spielfigurExistiert == 0) { + return true; + } + return false; + } + + public boolean gewinnBedingungFuchs() { + char[][] spielbrettArray = spiel.getSpielbrettArray(); + int spielfigurExistiert = 0; + + for(int i = 0; i < spielbrettArray.length; i++ ) + { + for(int k = 0; k < spielbrettArray[i].length; k++ ){ + if(spielbrettArray[i][k] == 'X') { + spielfigurExistiert++; + } + } + } + + if(spielfigurExistiert <= 8) { + return true; + } + return false; + } public boolean isWon() { + if(gewinnBedingungHennen() == true) { + System.out.println("Hennen haben gewonnen"); + whoWon(); + return true; + } else if (gewinnBedingungFuchs() == true) { + System.out.println("Füchse haben gewonnen"); + whoWon(); + return true; + } return false; } @@ -104,8 +160,25 @@ public class Spielsystem { } public boolean whoWon() { - // true = Spieler1 | false = Spieler2 - return true; + if(gewinnBedingungFuchs() == true) { + if(spieler instanceof Fuchs) { + System.out.println("Spieler 1 gewinnt"); + return true; + + } else { + System.out.println("Spieler 2 gewinnt"); + return false; + } + } else { + if(spieler instanceof Hennen) { + System.out.println("Spieler 1 gewinnt"); + return true; + + } else { + System.out.println("Spieler 2 gewinnt"); + return false; + } + } } public boolean isValidMove(String zug) { diff --git a/src/ui/UI.java b/src/ui/UI.java index fbfbb04..ca823cf 100644 --- a/src/ui/UI.java +++ b/src/ui/UI.java @@ -228,6 +228,7 @@ public class UI { } while (erfolgreicherZug == false); spielsystem.myMove(zug); + zugHenne = true; zugFuchs = false; }