Select Git revision
-
Malori Alvarez authoredMalori Alvarez authored
Dice.java 4.00 KiB
class Dice{
int numberSides;
double rand = 0;
int value = 1;
Dice(int numberSides) {
this.numberSides = numberSides;
if(this.numberSides <= 0) {
this.numberSides = 1;
}
}
void roll(){
this.rand = Math.random() * numberSides;
this.value = (int)this.rand;
}
String display(){
return "Dice(" + numberSides+ "faces, " + rand+ " rand, "+this.value+" choisi)";
}
int getValue(){
return this.value;
}
}
class DicePlayer{
String name;
int totalValue = 0;
int nbDiceRolls = 0;
DicePlayer(String name){
this.name = name;
}
void play(Dice dice6){
dice6.roll();
this.totalValue = this.totalValue + dice6.getValue();
this.nbDiceRolls++;
}
int getTotalValue(){
return this.totalValue;
}
int getNbDiceRolls(){
return this.nbDiceRolls;
}
String displayPlayer(){
return this.name+": "+this.totalValue+" points en "+this.nbDiceRolls+" coups.";
}
}
class OneDicePlayerGame{
public static void main(String[] args){
NDicePlayerGame game = new NDicePlayerGame(10);
/*
DicePlayer dicePlayer = new DicePlayer("Cyprien");
while(dicePlayer.getTotalValue() < 20){
Dice dice = new Dice(6);
dicePlayer.play(dice);
System.out.println(dice.display());
}
System.out.println(dicePlayer.displayPlayer());
DicePlayer dicePlayer2 = new DicePlayer("Gabin");
while(dicePlayer2.getTotalValue() < 20){
Dice dice = new Dice(6);
dicePlayer2.play(dice);
System.out.println(dice.display());
}
System.out.println(dicePlayer2.displayPlayer());
TwoDicePlayerGame twoDicePlayerGame = new TwoDicePlayerGame(dicePlayer, dicePlayer2);
System.out.println(twoDicePlayerGame.winner().displayPlayer()+" winner");
*/
}
}
class TwoDicePlayerGame{
DicePlayer dicePlayer1;
DicePlayer dicePlayer2;
TwoDicePlayerGame(DicePlayer dicePlayer1, DicePlayer dicePlayer2){
this.dicePlayer1 = dicePlayer1;
this.dicePlayer2 = dicePlayer2;
}
DicePlayer winner(){
if(dicePlayer1.getTotalValue() > 20 && dicePlayer2.getTotalValue() > 20){
if(dicePlayer1.getNbDiceRolls() < dicePlayer2.getNbDiceRolls()){
return dicePlayer1;
}else if(dicePlayer1.getNbDiceRolls() > dicePlayer2.getNbDiceRolls()){
return dicePlayer2;
}else{
if(dicePlayer1.getTotalValue() > dicePlayer2.getTotalValue()){
return dicePlayer1;
}else if(dicePlayer1.getTotalValue() > dicePlayer2.getTotalValue()){
return dicePlayer2;
}else{
return null;
}
}
}else{
if(dicePlayer1.getTotalValue() > dicePlayer2.getTotalValue()){
return dicePlayer1;
}else if(dicePlayer1.getTotalValue() > dicePlayer2.getTotalValue()){
return dicePlayer2;
}else{
return null;
}
}
}
}
class NDicePlayerGame{
DicePlayer[] players;
NDicePlayerGame(int nbPlayer){
players = new DicePlayer[nbPlayer];
int i = 0;
while(i < players.length){
players[i] = new DicePlayer(String.valueOf(i));
while(players[i].getTotalValue() < 20){
Dice dice = new Dice(6);
players[i].play(dice);
System.out.println(dice.display());
}
System.out.println(players[i].displayPlayer());
i++;
}
/*
DicePlayer[] winners = winners();
for (int place = 0; place < 3; i++){
System.out.println(place+"- "+winners[place].displayPlayer());
}*/
}
/*
DicePlayer[] winner(){
return Arrays.sort(players.displayPlayer());
}*/
}