DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

+ Reply to Thread
Results 1 to 2 of 2

Thread: JAVA die

  1. #1
    Join Date
    Oct 2003
    Posts
    1

    Angry JAVA die

    Me and a friend have been working on this for a while, and we can't get it . The program supposed to roll the dice(twice) and compare both scores..

    Here's what we came up with:
    Code:
    import javax.swing.*;
    import java.util.*;
    
    public class Dice {
    private Random random = new Random();
    
    
    public int roll() {
    int die1 = random.nextInt(6) + 1;
    int die2 = random.nextInt(6) + 1; 
    return die1 + die2; }
    
    public int[]tossResults(int number) 
    {
    int[] result = {0,0,0,0,0,0,0,0,0,0,0,0,0};
    for (int i=0; i<number; i++) 
    result[roll()]++;
    return result;
    }
    
    public static void main(String [] args)
    {
    
    int userMoney;
    int numberOfRolls;
    int[] diceThrows;
    //int myDie1 = regularDie.getroll(); 
    
    String input = JOptionPane.showInputDialog
    ("Enter the initial amount of money in dollars (no coins allowed)");
    
    userMoney = Integer.parseInt(input);
    numberOfRolls=userMoney;
    
    
    for(int i=1; i<=userMoney; i--)
    {
    Dice dice = new Dice();
    diceThrows = dice.tossResults(numberOfRolls);
    userMoney--;
    }
    
    if (die1==1 && die2==1)
    { userMoney++;
    JOptionPane.showMessageDialog(null, "You hit snake eyes, you won $1, and your value now is $"+userMoney);
    
    } 
    
    
    if(die1==2 && die2==2)
    {
    userMoney+=2;
    JOptionPane.showMessageDialog(null, "You hit double two, you won $2, and your value now is $"+userMoney);
    } 
    
    if(die1==3 && die2==3)
    { userMoney+=3;
    JOptionPane.showMessageDialog(null, "You hit double three, you won $3, and your value now is $"+userMoney);
    } 
    
    if(die1==4 && die2==4)
    { userMoney+=4;
    JOptionPane.showMessageDialog(null, "You hit double four, you won $4, and your value now is $"+userMoney);
    } 
    
    
    if(die1==5 && die2==5)
    { userMoney+=5;
    JOptionPane.showMessageDialog(null, "You hit double five, you won $5, and your value now is $"+userMoney);
    } 
    
    
    if(die1==6 && die2==6)
    { userMoney+=6;
    JOptionPane.showMessageDialog(null, "You hit double six, you won $6, and your value now is $"+userMoney);
    } 
    
    if (die2 < die1)
    
    userMoney-=die2;
    
    
    if (die2 > die1)
    
    userMoney-=die1;
    
    
    if (userMoney < 1)
    {
    
    JOptionPane.showMessageDialog(null, "You have lost all your money. Have a great day :)");
    System.exit(0); 
    }
    
    
    System.exit(0);
    }
    }
    I don't think we need array for this, do we? and how the heck do you get die1 and die1 into the public static void main(String [] args)? And it doesn't even roll :/

    [ArchAngel added CODE tags]

  2. #2
    Join Date
    Mar 2003
    Posts
    834

    Unhappy

    This won't even compile!

    It looks to me a classic case of continuing coding even if it doesn't work! You code seems quite confused and not very Object-Oriented.

    Let me suggest this you write this program again, defining:
    Code:
    class Dice {
      /**
       * Rolls a single dice.
       * @return A number between 1 and 6.
       */
      public int roll();
    }
    ...and then in your game code create TWO Dice objects (this is the joy of OO - you can just create another!).

    Also, you scoring code could be much more efficient. Check first to see if the two dice values are equal i.e. result1 == result2 and then just add one of these values to the user's money i.e. money += result1.
    ArchAngel.
    O:-)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


Top DevX Stories

Easy Web Services with SQL Server 2005 HTTP Endpoints
JavaOne 2005: Java Platform Roadmap Focuses on Ease of Development, Sun Focuses on the "Free" in F.O.S.S.
Wed Yourself to UML with the Power of Associations
Microsoft to Add AJAX Capabilities to ASP.NET
IBM's Cloudscape Versus MySQL


Sponsored Links