Skip to content
Snippets Groups Projects
Select Git revision
  • faee8fb49185dc4f51980d31d7fe9a64d8dee266
  • main default protected
2 results

Dice.java

Blame
  • 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());
        }*/
    }