Merge branch 'Create_game_rules' into 'master'
merging game_rules onto master See merge request odabasioglu1/latice!4master
commit
4c1292bacf
|
@ -1,13 +1,14 @@
|
||||||
package latice.application;
|
package latice.application;
|
||||||
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.nio.file.Paths;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
import javafx.scene.image.Image;
|
|
||||||
import latice.model.Color;
|
import latice.model.Color;
|
||||||
import latice.model.Deck;
|
import latice.model.Deck;
|
||||||
|
import latice.model.GameBoard;
|
||||||
|
import latice.model.Player;
|
||||||
import latice.model.Rack;
|
import latice.model.Rack;
|
||||||
|
import latice.model.Score;
|
||||||
import latice.model.Shape;
|
import latice.model.Shape;
|
||||||
import latice.model.Tile;
|
import latice.model.Tile;
|
||||||
|
|
||||||
|
@ -16,9 +17,9 @@ public class LaticeApplicationConsole {
|
||||||
|
|
||||||
ArrayList<Tile> listOfTile = new ArrayList<Tile>();
|
ArrayList<Tile> listOfTile = new ArrayList<Tile>();
|
||||||
|
|
||||||
System.out.println("Hello Latice !");
|
//System.out.println("Hello Latice !");
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
for (Color color : Color.values()) {
|
for (Color color : Color.values()) {
|
||||||
for (Shape shape : Shape.values()) {
|
for (Shape shape : Shape.values()) {
|
||||||
Tile tile = new Tile(color, shape);
|
Tile tile = new Tile(color, shape);
|
||||||
|
@ -40,8 +41,86 @@ public class LaticeApplicationConsole {
|
||||||
System.out.println("-----------------");
|
System.out.println("-----------------");
|
||||||
deck.displayListTile();
|
deck.displayListTile();
|
||||||
|
|
||||||
|
System.out.println("-----------------");
|
||||||
|
GameBoard board = new GameBoard();
|
||||||
|
board.displayGameBoard();
|
||||||
|
System.out.println("-----------------");
|
||||||
|
board.setGridBoard(" NV ", 4, 4);
|
||||||
|
board.displayGameBoard();
|
||||||
|
System.out.println("-----------------");
|
||||||
|
Score scorePlayer1 = new Score();
|
||||||
|
Score scorePlayer2 = new Score();
|
||||||
|
Player player1 = new Player("player1", scorePlayer1);
|
||||||
|
Player player2 = new Player("player2", scorePlayer2);
|
||||||
|
|
||||||
|
System.out.println(player1.getName() + " a " + scorePlayer1.getScore() +" points");
|
||||||
|
System.out.println(player2.getName() + " a " + scorePlayer2.getScore() +" points");
|
||||||
|
|
||||||
|
rack.displayRack();
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
for (Color color : Color.values()) {
|
||||||
|
for (Shape shape : Shape.values()) {
|
||||||
|
Tile tile = new Tile(color, shape);
|
||||||
|
System.out.println(color.getStringColor() + shape.getStringShape()+ ".png");
|
||||||
|
|
||||||
|
listOfTile.add(tile);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("-----------------");
|
||||||
|
//System.out.println("Notre Deck :");
|
||||||
|
//Deck deck1 = new Deck(listOfTile);
|
||||||
|
//Deck deck2 = new Deck(listOfTile);
|
||||||
|
//deck1.displayListTile();
|
||||||
|
System.out.println("-----------------");
|
||||||
|
//Rack rack1 = new Rack(deck1);
|
||||||
|
//Rack rack2 = new Rack(deck2);
|
||||||
|
//Score scorePlayer1 = new Score();
|
||||||
|
//Score scorePlayer2 = new Score();
|
||||||
|
//Player player1 = new Player("player1", scorePlayer1);
|
||||||
|
//Player player2 = new Player("player2", scorePlayer2);
|
||||||
|
|
||||||
|
System.out.println("-----------------");
|
||||||
|
//GameBoard board = new GameBoard();
|
||||||
|
//board.displayGameBoard();
|
||||||
|
System.out.println("-----------------");
|
||||||
|
|
||||||
|
//System.out.println(player1.getName() + " a " + scorePlayer1.getScore() +" points");
|
||||||
|
//System.out.println(player2.getName() + " a " + scorePlayer2.getScore() +" points");
|
||||||
|
//rack1.displayRack();
|
||||||
|
|
||||||
|
|
||||||
|
System.out.println("Hello Latice !");
|
||||||
|
System.out.println("-----------------");
|
||||||
|
|
||||||
|
Deck deck1 = new Deck(listOfTile);
|
||||||
|
Deck deck2 = new Deck(listOfTile);
|
||||||
|
Rack rack1 = new Rack(deck1);
|
||||||
|
Rack rack2 = new Rack(deck2);
|
||||||
|
|
||||||
|
Score scorePlayer1 = new Score();
|
||||||
|
Score scorePlayer2 = new Score();
|
||||||
|
Player player1 = new Player("player1", scorePlayer1, deck1, rack1);
|
||||||
|
Player player2 = new Player("player2", scorePlayer2, deck2, rack2);
|
||||||
|
|
||||||
|
System.out.println("-----------------");
|
||||||
|
GameBoard board = new GameBoard();
|
||||||
|
board.displayGameBoard();
|
||||||
|
|
||||||
|
|
||||||
|
Scanner play = new Scanner(System.in);
|
||||||
|
|
||||||
|
for(int i = 0; i < 10; i++) {
|
||||||
|
|
||||||
|
player1.Play(play,board);
|
||||||
|
player2.Play(play,board);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,26 @@
|
||||||
package latice.model;
|
package latice.model;
|
||||||
|
|
||||||
public enum Color {
|
public enum Color {
|
||||||
YELLOW("y"),
|
YELLOW("y", "Y"),
|
||||||
NAVYBLUE("n"),
|
NAVYBLUE("n", "N"),
|
||||||
RED("r"),
|
RED("r", "R"),
|
||||||
MAGENTA("m"),
|
MAGENTA("m", "M"),
|
||||||
GREEN("g"),
|
GREEN("g", "G"),
|
||||||
TURQUOISE("t"); //TODO find what is the color turchese, and write it's color code
|
TURQUOISE("t", "T");
|
||||||
|
|
||||||
private String stringColor;
|
private String stringColor;
|
||||||
|
private String stringColorConsole;
|
||||||
|
|
||||||
Color(String stringColor) {
|
Color(String stringColor, String stringColorConsole) {
|
||||||
this.stringColor = stringColor;
|
this.stringColor = stringColor;
|
||||||
|
this.stringColorConsole = stringColorConsole;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getStringColor() {
|
public String getStringColor() {
|
||||||
return this.stringColor;
|
return this.stringColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getStringColorConsole() {
|
||||||
|
return this.stringColorConsole;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,85 @@
|
||||||
|
package latice.model;
|
||||||
|
|
||||||
|
public class GameBoard {
|
||||||
|
private Integer DIMENSION = 9;
|
||||||
|
public static final String SUN = " SU ";
|
||||||
|
public static final String MOON = " MO ";
|
||||||
|
private String[][] gridBoard;
|
||||||
|
|
||||||
|
public GameBoard() {
|
||||||
|
this.gridBoard = new String[DIMENSION][DIMENSION];
|
||||||
|
|
||||||
|
for (int i = 0; i < DIMENSION; i++) {
|
||||||
|
for (int j = 0; j < DIMENSION; j++) {
|
||||||
|
System.out.print("|");
|
||||||
|
if (i == 4 && j == 4) { //Affiche la lune au centre du plateau
|
||||||
|
|
||||||
|
this.gridBoard[i][j] = MOON;
|
||||||
|
|
||||||
|
|
||||||
|
}else if (i == j && (i <= 2 || i >= 6)) { //Affiche la diagonale ('\') de soleil
|
||||||
|
|
||||||
|
this.gridBoard[i][j] = SUN;
|
||||||
|
|
||||||
|
}else if (i == DIMENSION-1-j && (i <= 2 || i >= 6)) { //Affiche la diagonale ('/') de soleil
|
||||||
|
|
||||||
|
this.gridBoard[i][j] = SUN;
|
||||||
|
|
||||||
|
}else if ( ((i == 0 || i == 8)&& j == 4) || (i== 4 && (j == 0 || j == 8)) ) {//Affiche les soleils au mileu de chaque coté ('+')
|
||||||
|
|
||||||
|
this.gridBoard[i][j] = SUN;
|
||||||
|
|
||||||
|
}else {
|
||||||
|
this.gridBoard[i][j] = " ";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (j == 8) {
|
||||||
|
System.out.println("|");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void displayGameBoard() {
|
||||||
|
|
||||||
|
for (int i = 0; i < DIMENSION; i++) {
|
||||||
|
for (int j = 0; j < DIMENSION; j++) {
|
||||||
|
System.out.print("|");
|
||||||
|
if (i == 4 && j == 4) { //Affiche la lune au centre du plateau
|
||||||
|
|
||||||
|
System.out.print(this.gridBoard[i][j]);
|
||||||
|
|
||||||
|
}else if (i == j && (i <= 2 || i >= 6)) { //Affiche la diagonale ('\') de soleil
|
||||||
|
|
||||||
|
System.out.print(this.gridBoard[i][j]);
|
||||||
|
|
||||||
|
}else if (i == DIMENSION-1-j && (i <= 2 || i >= 6)) { //Affiche la diagonale ('/') de soleil
|
||||||
|
|
||||||
|
System.out.print(this.gridBoard[i][j]);
|
||||||
|
|
||||||
|
}else if ( ((i == 0 || i == 8)&& j == 4) || (i== 4 && (j == 0 || j == 8)) ) {//Affiche les soleils au mileu de chaque coté ('+')
|
||||||
|
|
||||||
|
System.out.print(this.gridBoard[i][j]);
|
||||||
|
|
||||||
|
}else {
|
||||||
|
System.out.print(this.gridBoard[i][j]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (j == 8) {
|
||||||
|
System.out.println("|");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[][] getGridBoard() {
|
||||||
|
return gridBoard;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGridBoard(String value, Integer x, Integer y) {
|
||||||
|
this.gridBoard[x][y] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,60 @@
|
||||||
|
package latice.model;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class Player {
|
||||||
|
private final String name;
|
||||||
|
private Score score;
|
||||||
|
private Rack rack;
|
||||||
|
private Deck deck;
|
||||||
|
|
||||||
|
public Player(String name, Score score, Deck deck, Rack rack) {
|
||||||
|
//Demande le nom du joueur
|
||||||
|
Scanner enterPlayerName = new Scanner(System.in);
|
||||||
|
System.out.println("Veuilez entrer votre nom " + name + " :");
|
||||||
|
String namePlayer = enterPlayerName.next();
|
||||||
|
|
||||||
|
this.name = namePlayer;
|
||||||
|
this.score = score;
|
||||||
|
this.deck = deck;
|
||||||
|
this.rack = rack;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getScore() {
|
||||||
|
return this.score.getScore();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Play(Scanner play, GameBoard board) {
|
||||||
|
System.out.println("c'est à votre tour de jouer " + this.name +"!");
|
||||||
|
if (this.getScore() == 0) {
|
||||||
|
|
||||||
|
System.out.println("Vous avez " + this.getScore() + " point");
|
||||||
|
|
||||||
|
}else {
|
||||||
|
System.out.println("Vous avez " + this.getScore() + " points");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.print("Quel tuile voulez-vous jouez ? ");
|
||||||
|
this.rack.displayRack();
|
||||||
|
String tileToPlay = play.next();
|
||||||
|
System.out.print("Sur quelle ligne, voulez-vous placer la tuile ?");
|
||||||
|
int row = Integer.parseInt(play.next());
|
||||||
|
System.out.print("Sur quelle colonne, voulez-vous placer la tuile ?");
|
||||||
|
int column = Integer.parseInt(play.next());
|
||||||
|
board.setGridBoard(" "+tileToPlay+" ", row, column);
|
||||||
|
this.rack.removeTile(tileToPlay);
|
||||||
|
|
||||||
|
board.displayGameBoard();
|
||||||
|
|
||||||
|
this.rack.updateRack();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
package latice.model;
|
||||||
|
|
||||||
|
public class Position {
|
||||||
|
private final Integer row;
|
||||||
|
private final Integer column;
|
||||||
|
|
||||||
|
public Position(Integer row, Integer column) {
|
||||||
|
this.row = row;
|
||||||
|
this.column = column;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getRow() {
|
||||||
|
return row;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getColumn() {
|
||||||
|
return column;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -10,35 +10,37 @@ import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.text.Text;
|
import javafx.scene.text.Text;
|
||||||
|
|
||||||
public class Rack {
|
public class Rack {
|
||||||
private static ArrayList<Tile> listRackTile = new ArrayList<Tile>();
|
private ArrayList<Tile> listRackTile = new ArrayList<Tile>();
|
||||||
private static ArrayList<Image> rackTileImage = new ArrayList<Image>();
|
private ArrayList<Image> rackTileImage = new ArrayList<Image>();
|
||||||
|
private Deck deck;
|
||||||
|
|
||||||
public Rack(Deck deck) {
|
public Rack(Deck deck) {
|
||||||
|
this.deck = deck;
|
||||||
|
|
||||||
Image image = new Image("laticePlateau.png");
|
|
||||||
ImageView imageView = new ImageView(image);
|
|
||||||
Tile tile;
|
Tile tile;
|
||||||
|
|
||||||
System.out.println("Il y a dans le rack : " + listRackTile.size() + " valeurs");
|
System.out.println("Il y a dans le rack : " + listRackTile.size() + " valeurs");
|
||||||
|
|
||||||
for (int i = 0; i < 5; i++) {
|
for (int i = 0; i < 5; i++) {
|
||||||
int index = (int)(Math.random()*((deck.getListTile()).size()-0+1)+0); //(int)(Math.random()*(max-min+1)+min);
|
int index = (int)(Math.random()*(((this.deck.getListTile()).size()-1)-0+1)+0); //(int)(Math.random()*(max-min+1)+min);
|
||||||
|
|
||||||
|
tile = (this.deck.getListTile()).get(index);
|
||||||
|
this.listRackTile.add(tile);
|
||||||
|
this.deck.getListTile().remove(index);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
tile = (deck.getListTile()).get(index);
|
|
||||||
|
|
||||||
listRackTile.add(tile);
|
|
||||||
|
|
||||||
// root.setCenter(imageView);
|
|
||||||
|
|
||||||
deck.getListTile().remove(index);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("Il y a dans le rack : " + listRackTile.size() + " valeurs");
|
System.out.println("Il y a dans le rack : " + this.listRackTile.size() + " valeurs");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ArrayList<Tile> getListRackTile() {
|
public ArrayList<Tile> getListRackTile() {
|
||||||
return listRackTile;
|
return this.listRackTile;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setListRackTile(ArrayList<Tile> listRackTile) {
|
public void setListRackTile(ArrayList<Tile> listRackTile) {
|
||||||
|
@ -46,6 +48,57 @@ public class Rack {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void updateRack() {
|
||||||
|
|
||||||
|
Tile tile;
|
||||||
|
|
||||||
|
for (int i = 0; i < 5-this.listRackTile.size() ; i++) {
|
||||||
|
int index = (int)(Math.random()*( ((this.deck.getListTile()).size()-1)-0+1)+0); //(int)(Math.random()*(max-min+1)+min);
|
||||||
|
|
||||||
|
tile = (this.deck.getListTile()).get(index);
|
||||||
|
this.listRackTile.add(tile);
|
||||||
|
this.deck.getListTile().remove(index);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeTile(String stringTile) {
|
||||||
|
int count = 0;
|
||||||
|
int index = -1;
|
||||||
|
System.out.println("taille : " + this.listRackTile.size());
|
||||||
|
for (Tile tile : this.listRackTile) {
|
||||||
|
System.out.println(count++);
|
||||||
|
if (stringTile.equals(tile.getShapeConsole() + tile.getColorConsole())) {
|
||||||
|
index = this.listRackTile.indexOf(tile);
|
||||||
|
System.out.println(index);
|
||||||
|
System.out.println("tuile supprimé avec succès");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (index != -1) {
|
||||||
|
this.listRackTile.remove(index);
|
||||||
|
}
|
||||||
|
System.out.println("taille : " + this.listRackTile.size());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void displayRack() {
|
||||||
|
boolean success = false;
|
||||||
|
System.out.print("rack : ");
|
||||||
|
for (Tile tile : this.listRackTile) {
|
||||||
|
if (success) {
|
||||||
|
System.out.print(", " + tile.getShapeConsole() + tile.getColorConsole());
|
||||||
|
}else {
|
||||||
|
System.out.print(tile.getShapeConsole() + tile.getColorConsole());
|
||||||
|
success = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public HBox createTileImage() {
|
public HBox createTileImage() {
|
||||||
Image image;
|
Image image;
|
||||||
|
@ -77,7 +130,7 @@ public class Rack {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ArrayList<Image> getRackTileImage() {
|
public ArrayList<Image> getRackTileImage() {
|
||||||
return rackTileImage;
|
return rackTileImage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
package latice.model;
|
||||||
|
|
||||||
|
public class Rules {
|
||||||
|
private static boolean START = true;
|
||||||
|
|
||||||
|
public Rules() {
|
||||||
|
// TODO Auto-generated constructor stub
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
package latice.model;
|
||||||
|
|
||||||
|
public class Score {
|
||||||
|
private Integer score;
|
||||||
|
|
||||||
|
public Score() {
|
||||||
|
this.score = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getScore() {
|
||||||
|
return score;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setScore(Integer score) {
|
||||||
|
this.score = score;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -1,20 +1,26 @@
|
||||||
package latice.model;
|
package latice.model;
|
||||||
|
|
||||||
public enum Shape {
|
public enum Shape {
|
||||||
BIRD("bird"),
|
BIRD("bird", "B"),
|
||||||
DOLPHIN("dolphin"),
|
DOLPHIN("dolphin", "D"),
|
||||||
FLOWER("flower"),
|
FLOWER("flower", "Fl"),
|
||||||
FEATHER("feather"),
|
FEATHER("feather", "F"),
|
||||||
GECKO("gecko"),
|
GECKO("gecko", "G"),
|
||||||
TURTLE("turtle");
|
TURTLE("turtle", "T");
|
||||||
|
|
||||||
private String stringShape;
|
private String stringShape;
|
||||||
|
private String stringShapeConsole;
|
||||||
|
|
||||||
Shape(String stringShape) {
|
Shape(String stringShape, String stringShapeConsole) {
|
||||||
this.stringShape = stringShape;
|
this.stringShape = stringShape;
|
||||||
|
this.stringShapeConsole = stringShapeConsole;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getStringShape() {
|
public String getStringShape() {
|
||||||
return this.stringShape;
|
return this.stringShape;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getStringShapeConsole() {
|
||||||
|
return this.stringShapeConsole;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,17 +3,34 @@ package latice.model;
|
||||||
public class Tile {
|
public class Tile {
|
||||||
private final Color color;
|
private final Color color;
|
||||||
private final Shape shape;
|
private final Shape shape;
|
||||||
|
private Position position;
|
||||||
|
|
||||||
public Tile(Color color, Shape shape) {
|
public Tile(Color color, Shape shape) {
|
||||||
this.color = color;
|
this.color = color;
|
||||||
this.shape = shape;
|
this.shape = shape;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setPosition(Position position) {
|
||||||
|
this.position = position;
|
||||||
|
}
|
||||||
|
|
||||||
public Color getColor() {
|
public Color getColor() {
|
||||||
return this.color;
|
return this.color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getColorConsole() {
|
||||||
|
return this.color.getStringColorConsole();
|
||||||
|
}
|
||||||
|
|
||||||
public Shape getShape() {
|
public Shape getShape() {
|
||||||
return this.shape;
|
return this.shape;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getShapeConsole() {
|
||||||
|
return this.shape.getStringShapeConsole();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Position getPosition() {
|
||||||
|
return this.position;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue