www.webdeveloper.com
Results 1 to 2 of 2

Thread: Simple Yahtzee Program

  1. #1
    Join Date
    Oct 2012
    Posts
    3

    Simple Yahtzee Program

    I'm having issues with my code for a yahtzee program. Something is wrong with my second switch statement. The results are not being calculated, and printed on the screen. I'm still a beginner, so I'm having trouble deciphering what I did wrong.

    Here's the code:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title></title>
    </head>



    <body>
    <button type="button" onClick="throwDie()">Click To Play Yahtzee</button>

    <script>


    function throwDie()
    {

    var dieNum = new Array (12);
    var dieValue = new Array (6);
    var count = 0;

    for ( var i = 0; i <= 12; i++ )
    {
    var randthrow = Math.floor( (Math.random() *6) +1 );
    dieNum[i] = randthrow;
    }

    for( var i=0; i<12; i++ )

    switch (dieNum[i])
    {
    case 1:

    document.write ("<img src=http://people.bridgewater.edu/~vcapacci/Classes/2012-Fall-CSCI330/PA%27s/PA2/Dice/die1.png>");
    break;

    case 2:

    document.write ("<img src=http://people.bridgewater.edu/~vcapacci/Classes/2012-Fall-CSCI330/PA%27s/PA2/Dice/die2.png>");
    break;

    case 3:

    document.write ("<img src=\http://people.bridgewater.edu/~vcapacci/Classes/2012-Fall-CSCI330/PA%27s/PA2/Dice/die3.png>");
    break;

    case 4:

    document.write ("<img src=http://people.bridgewater.edu/~vcapacci/Classes/2012-Fall-CSCI330/PA%27s/PA2/Dice/die4.png>");
    break;

    case 5:

    document.write ("<img src=http://people.bridgewater.edu/~vcapacci/Classes/2012-Fall-CSCI330/PA%27s/PA2/Dice/die5.png>");
    break;

    case 6:

    document.write ("<img src=http://people.bridgewater.edu/~vcapacci/Classes/2012-Fall-CSCI330/PA%27s/PA2/Dice/die6.png>");
    break;

    count += dieNum[i];

    }

    document.write("<br>Results :" + count + "<br>");
    for(var i=0;i<6;i++){dieNum[i]=0;}

    for (var i=0;i<12;i++)


    switch (dieValue [i])

    {

    case 1:

    dieValue[0]++;
    break;

    case 2:

    dieValue[1]++;
    break;

    case 3:

    dieValue[2]++;
    break;

    case 4:

    dieValue[3]++;
    break;

    case 5:

    dieValue[4]++;
    break;

    case 6:

    dieValue[5]++;
    break;


    }

    document.writeln("Results");

    for(i=0;i<6;i++)
    {
    document.write((i+1)+":"+dieNum[i]+" ");
    }

    for(var i=0;i<6;i++)
    {
    if(dieNum[i]>=5)
    {
    alert("<h1>YAHTZEE!!</h1>");
    break;
    }
    }

    for(var i=0;i<6;i++)
    {
    if(dieNum[i]>=10)
    {
    alert("<h2><b>DOUBLE YAHTZEE!!</b></h2></font></center>");
    break;

    }

    }
    }

    </script>
    </body>
    </html>

  2. #2
    Join Date
    Dec 2005
    Location
    FL
    Posts
    7,373

    Lightbulb

    Basic game layout. It has no checks for winners/losers, dice sum or other fancy displays.
    Might simplify your convoluted (to me) logic and make it easier to modify and add effects.
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
     "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Yahtzee Game</title>
    </head>
    <body>
    <h1> Yahtzee Game </h1>
    <button onClick="startGame()">New Player</button><p>
    <table border="1">
     <tr>
      <th> <br>Dice <p> Check to save </th>
      <th> <img src="" id="die0"> <br> <input type="checkbox" id="cb0"> </th>
      <th> <img src="" id="die1"> <br> <input type="checkbox" id="cb1"> </th>
      <th> <img src="" id="die2"> <br> <input type="checkbox" id="cb2"> </th>
      <th> <img src="" id="die3"> <br> <input type="checkbox" id="cb3"> </th>
      <th> <img src="" id="die4"> <br> <input type="checkbox" id="cb4"> </th>
     </tr>
    </table>
    <p>
    <button onclick="throwDie()">Next Roll</button>
    
    <script type="text/javascript">
    // Extensive modifications from: http://www.webdeveloper.com/forum/newreply.php?do=postreply&t=268019
    
    var baseURL = "http://people.bridgewater.edu/~vcapacci/Classes/2012-Fall-CSCI330/PA%27s/PA2/Dice/";
    var dieImg = ['die1.png','die2.png','die3.png','die4.png','die5.png','die6.png'];
    
    var dieNum = [0,0,0,0,0];
    var dieValue = [1,2,3,4,5,6];
    
    function startGame() {
      dieNum = [0,0,0,0,0];
      for (var i=0; i<dieNum.length; i++) { document.getElementById('cb'+i).checked = false; }
      throwDie();
    }
    
    function throwDie() {
     for (var d=0; d<dieNum.length; d++) {
      var randthrow = Math.floor((Math.random()*dieValue.length));
      if (document.getElementById('cb'+d).checked) { } else { dieNum[d] = randthrow; }
     }
     var str = '';
     for (var d=0; d<dieNum.length; d++) {
      var tmp = baseURL+dieImg[dieNum[d]];  
      document.getElementById('die'+d).src = tmp;
      str += document.getElementById('die'+d).src+'\n';
     } // alert(str);  // alert(dieNum.join(','));
    }  
    </script>
    </body>
    </html>
    Post back if you have questions about set-up or ideas about going forward.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

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



Recent Articles