Skip to content
Snippets Groups Projects
Commit 57b02fba authored by EL GAOUAL Zaid's avatar EL GAOUAL Zaid
Browse files

Human player

parent a83e40a2
No related branches found
No related tags found
No related merge requests found
...@@ -94,22 +94,22 @@ public class GameController { ...@@ -94,22 +94,22 @@ public class GameController {
private void playComputerTurn(){ private void playComputerTurn(){
// TODO // TODO
// uncomment // uncomment
// if (!game.hasEnded() && !game.isHumanTurn()){ if (!game.hasEnded() && !game.isHumanTurn()){
// ComputerPlayer player = ((ComputerPlayer) game.getPlayer()); ComputerPlayer player = ((ComputerPlayer) game.getPlayer());
// Flooder.flood(player.getStartCell(), player.play()); Flooder.flood(player.getStartCell(), player.play());
// setScoreLabelTextProperty(); setScoreLabelTextProperty();
// pause.play(); pause.play();
// } }
} }
public void playHumanTurn(Color color){ public void playHumanTurn(Color color){
// TODO // TODO
// uncomment // uncomment
// if(!game.hasEnded() && game.isHumanTurn()){ if(!game.hasEnded() && game.isHumanTurn()){
// Flooder.flood(game.getPlayer().getStartCell(), color); Flooder.flood(game.getPlayer().getStartCell(), color);
// setScoreLabelTextProperty(); setScoreLabelTextProperty();
// game.incrementTurn(); game.incrementTurn();
//} }
} }
private void setPauseAnimation(){ private void setPauseAnimation(){
...@@ -145,7 +145,7 @@ public class GameController { ...@@ -145,7 +145,7 @@ public class GameController {
@FXML @FXML
public void setPlayerHuman(){ public void setPlayerHuman(){
// TODO // TODO
// game.setPlayer(new HumanPlayer("human", getGridStartCell())); game.setPlayer(new HumanPlayer("human", getGridStartCell()));
} }
@FXML @FXML
......
...@@ -41,6 +41,6 @@ public interface Cell { ...@@ -41,6 +41,6 @@ public interface Cell {
* @return this {@link Cell}'s property * @return this {@link Cell}'s property
*/ */
Property<Color> getColorProperty(); Property<Color> getColorProperty();
Iterator<Cell> iterator();
} }
package model;
import javafx.scene.paint.Color;
import java.util.Iterator;
public class Flooder {
public static void flood(Cell startCell, Color floodingColor){
Iterator<Cell> i = startCell.iterator();
while (i.hasNext()){
i.next().setColor(floodingColor);
}
}
public static int coloredArea(Cell startCell){
int colored=0;
Iterator<Cell> i = startCell.iterator();
while (i.hasNext()){
i.next();
colored++;
}
return colored;
}
}
\ No newline at end of file
...@@ -3,6 +3,7 @@ package model; ...@@ -3,6 +3,7 @@ package model;
import javafx.beans.property.Property; import javafx.beans.property.Property;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
import java.util.Iterator;
import java.util.List; import java.util.List;
public class GrayCell extends AbstractCell{ public class GrayCell extends AbstractCell{
...@@ -30,6 +31,11 @@ public class GrayCell extends AbstractCell{ ...@@ -30,6 +31,11 @@ public class GrayCell extends AbstractCell{
} }
@Override
public Iterator<Cell> iterator() {
return null;
}
@Override @Override
public void setColor(Color color){ public void setColor(Color color){
......
...@@ -5,11 +5,11 @@ public class HumanPlayer implements Player { ...@@ -5,11 +5,11 @@ public class HumanPlayer implements Player {
private String name; private String name;
private Cell startCell; private Cell startCell;
HumanPlayer(String name, Cell startCell) { public HumanPlayer(String name, Cell startCell) {
this.name = name; this.name = name;
this.startCell = startCell; this.startCell = startCell;
} }
HumanPlayer(Cell startCell1) { public HumanPlayer(Cell startCell1) {
this.startCell = startCell1; this.startCell = startCell1;
} }
......
...@@ -44,6 +44,10 @@ public class SquareCell extends AbstractCell{ ...@@ -44,6 +44,10 @@ public class SquareCell extends AbstractCell{
public void setNeighbours(List<Cell> cells) { public void setNeighbours(List<Cell> cells) {
this.neighbours=cells; this.neighbours=cells;
} }
public Iterator<Cell> iterator(){
return new ColoredCellIterator(this);
}
} }
//package model; package model;
//
//import javafx.scene.paint.Color; import javafx.scene.paint.Color;
//import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
//
//import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
//
//class ComputerPlayerTest { class ComputerPlayerTest {
//
//
//
// @Test @Test
// void testSetStrategyAndPlay() { void testSetStrategyAndPlay() {
// ComputerPlayer player = new ComputerPlayer("computer",null); ComputerPlayer player = new ComputerPlayer("computer",null);
// player.setStrategy(startCell -> Color.INDIGO); player.setStrategy(startCell -> Color.INDIGO);
// player.setStartCell(new SquareCell()); player.setStartCell(new SquareCell());
// assertThat(player.play()).isEqualTo(Color.INDIGO); assertThat(player.play()).isEqualTo(Color.INDIGO);
// } }
//
//
// @Test @Test
// void testIsHuman() { void testIsHuman() {
// assertThat(new ComputerPlayer("computer", null).isHuman()).isFalse(); assertThat(new ComputerPlayer("computer", null).isHuman()).isFalse();
// } }
//} }
\ No newline at end of file \ No newline at end of file
//package model; package model;
//
//import javafx.scene.paint.Color; import javafx.scene.paint.Color;
//import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
//import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
//
//import static javafx.scene.paint.Color.*; import static javafx.scene.paint.Color.*;
//import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
//
//class FloodGameTest { class FloodGameTest {
//
// private final int totalNumberOfCells = 6; private final int totalNumberOfCells = 6;
// private final Grid gridTwoThree = new ArrayGrid(2,3); private final Grid gridTwoThree = new ArrayGrid(2,3);
// private final Color colorONE = RED; private final Color colorONE = RED;
// private final Color colorTWO = BLUE; private final Color colorTWO = BLUE;
// private FloodGame game; private FloodGame game;
// private final Player playerONE = new ComputerPlayer("player1", gridTwoThree.getCell(0, 0), startCell -> colorONE); private final Player playerONE = new ComputerPlayer("player1", gridTwoThree.getCell(0, 0), startCell -> colorONE);
// private final Player playerTWO = new ComputerPlayer("player2", gridTwoThree.getCell(1, 2), startCell -> colorTWO); private final Player playerTWO = new ComputerPlayer("player2", gridTwoThree.getCell(1, 2), startCell -> colorTWO);
//
// @BeforeEach @BeforeEach
// private void initGame(){ private void initGame(){
// game = new FloodGame(totalNumberOfCells); game = new FloodGame(totalNumberOfCells);
// } }
//
//
// @Test @Test
// void testSetTurnAndGetTurn() { void testSetTurnAndGetTurn() {
// assertThat(game.getTurn()).isEqualTo(0); assertThat(game.getTurn()).isEqualTo(0);
// game.setTurn(100); game.setTurn(100);
// assertThat(game.getTurn()).isEqualTo(100); assertThat(game.getTurn()).isEqualTo(100);
// } }
//
//
//
//
// @Test @Test
// void testResetTurn() { void testResetTurn() {
// game.setTurn(100); game.setTurn(100);
// game.resetTurn(); game.resetTurn();
// assertThat(game.getTurn()).isEqualTo(0); assertThat(game.getTurn()).isEqualTo(0);
// } }
//
//
// @Test @Test
// void testIncrementTurn() { void testIncrementTurn() {
// game.incrementTurn(); game.incrementTurn();
// game.incrementTurn(); game.incrementTurn();
// assertThat(game.getTurn()).isEqualTo(2); assertThat(game.getTurn()).isEqualTo(2);
// } }
//
// @Test @Test
// void testGetPlayer() { void testGetPlayer() {
// game.setPlayer(playerONE); game.setPlayer(playerONE);
// game.setPlayer(playerTWO); game.setPlayer(playerTWO);
// assertThat(game.getPlayer()).isEqualTo(playerTWO); assertThat(game.getPlayer()).isEqualTo(playerTWO);
// game.incrementTurn(); game.incrementTurn();
// assertThat(game.getPlayer()).isEqualTo(playerTWO); assertThat(game.getPlayer()).isEqualTo(playerTWO);
// } }
//
// @Test @Test
// void testIsHumanTurn() { void testIsHumanTurn() {
// game.setPlayer(new HumanPlayer("human",gridTwoThree.getCell(1,2))); game.setPlayer(new HumanPlayer("human",gridTwoThree.getCell(1,2)));
// assertThat(game.isHumanTurn()).isTrue(); assertThat(game.isHumanTurn()).isTrue();
// game.setPlayer(playerONE); game.setPlayer(playerONE);
// assertThat(game.isHumanTurn()).isFalse(); assertThat(game.isHumanTurn()).isFalse();
// } }
//
// private void fillGridYellow(Grid grid){ private void fillGridYellow(Grid grid){
// for(Cell cell: grid) for(Cell cell: grid)
// cell.setColor(YELLOW); cell.setColor(YELLOW);
// } }
//
// @Test @Test
// void testHasWon() { void testHasWon() {
// game.setPlayer(playerONE); game.setPlayer(playerONE);
// gridTwoThree.getCell(0,0).setColor(RED); gridTwoThree.getCell(0,0).setColor(RED);
// gridTwoThree.getCell(1,1).setColor(BLUE); gridTwoThree.getCell(1,1).setColor(BLUE);
// assertThat(game.hasWon(game.getPlayer())).isFalse(); assertThat(game.hasWon(game.getPlayer())).isFalse();
// fillGridYellow(gridTwoThree); fillGridYellow(gridTwoThree);
// assertThat(game.hasWon(game.getPlayer())).isTrue(); assertThat(game.hasWon(game.getPlayer())).isTrue();
// } }
//
// @Test @Test
// void testHasEnded() { void testHasEnded() {
// game.setPlayer(playerONE); game.setPlayer(playerONE);
// gridTwoThree.getCell(1,2).setColor(RED); gridTwoThree.getCell(1,2).setColor(RED);
// gridTwoThree.getCell(0,1).setColor(YELLOW); gridTwoThree.getCell(0,1).setColor(YELLOW);
// assertThat(game.hasEnded()).isFalse(); assertThat(game.hasEnded()).isFalse();
// fillGridYellow(gridTwoThree); fillGridYellow(gridTwoThree);
// assertThat(game.hasEnded()).isTrue(); assertThat(game.hasEnded()).isTrue();
// } }
//
//} }
\ No newline at end of file \ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment