Dice code modification Question

Posted on 2007-12-03
Medium Priority
Last Modified: 2008-02-01
The code below works for finding 5, 4, 3 and a pair for dice and compare hands. Now I would like to add a small and large straight and full house..(like a yahtzee hand). I plan on writing methods for the straights and full house...but my questions are:

1. Where would I need to add this in existing code.
2. I assume I would have to once determining either straight or flush I would have to assign a value for it...What would be good?

Some comments appreciated...
public class FiveDice3
  public static void main(String[] args)
     final int NUM = 5;
     Die[] comp = new Die[NUM];
     Die[] player =  new Die[NUM];
     int x;
     for(x = 0; x < NUM; ++x)
        comp[x] = new Die();
        player[x] = new Die();
     int compMatch, playerMatch;
     int compHigh, playerHigh;
     String computerName = "Computer";
     String playerName = "You";
     display(computerName, comp, NUM);
     display(playerName, player, NUM);
     compMatch = howManySame(comp, NUM);
     playerMatch = howManySame(player, NUM);
     compHigh = compMatch / 10;
     playerHigh = playerMatch / 10;
     compMatch = compMatch % 10;
     playerMatch = playerMatch % 10;
     if(compMatch == 1)
       System.out.println("Computer has nothing");
       System.out.println("Computer has " + compMatch + " of a kind");
     if(playerMatch == 1)
       System.out.println("You have nothing");
       System.out.println("You have " + playerMatch + " of a kind");
     if(compMatch > playerMatch)
        System.out.println("Computer wins");
        if(compMatch < playerMatch)
           System.out.println("You win");
          if(compHigh > playerHigh)
            System.out.println("Computer's values are higher - computer wins");
            if(compHigh < playerHigh)
               System.out.println("Your values are higher - you win");
              System.out.println("It's a tie");
  public static void display(String who, Die[] die, int num)
     int x;
     String dice = "";
     for(x = 0; x < num; ++x)
        dice = dice + die[x].getValue() + " ";
     System.out.println(who + " rolled: " + dice);
  public static int howManySame(Die[] die, int num)
     int[] same = new int[num];
     int x, y;
     int highest;
     int highValue = 0;
     for(x = 0; x < num; ++x)
       same[x] = 1; // every die matches itself
     for(x = 0; x < num - 1; ++x)
       for(y = x + 1; y < num; ++y)
         if(die[x].getValue() == die[y].getValue())
             if(die[x].getValue() > highValue)
                highValue = die[x].getValue();
     highest = same[0];
     for(x = 1; x < num; ++x)
        if(same[x] > highest)
          highest = same[x];
     highest = highest + 10 * highValue;
     return highest;
public class Die
  private int value;
  private static final int HIGHEST_DIE_VALUE = 6;
  private static final int LOWEST_DIE_VALUE = 1;
  public Die()
    value = ((int)(Math.random() * 100) % HIGHEST_DIE_VALUE +
  public int getValue()
    return value;

Open in new window

Question by:CPlusJavaCSharp
LVL 86

Expert Comment

ID: 20402018
Excuse my ignorance, but how do you get a flush in dice - there are no suits..?
LVL 92

Accepted Solution

objects earned 1400 total points
ID: 20402043
1. add a method (or define an interface and a class) for each check thats required.
2. value them based on their rank

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

An old method to applying the Singleton pattern in your Java code is to check if a static instance, defined in the same class that needs to be instantiated once and only once, is null and then create a new instance; otherwise, the pre-existing insta…
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
The viewer will learn how to implement Singleton Design Pattern in Java.
Suggested Courses
Course of the Month16 days, 8 hours left to enroll

864 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question