2013-10-09 227 views
-2

我正在用HTML,CSS和JavaScript製作一個二十一點遊戲,這是我迄今爲止所應該做的就是讓玩家和計算機初步掌握和打印到屏幕上。但手的價值總是返回爲0,我不知道爲什麼...任何幫助將不勝感激,這裏是它的小提琴:http://jsfiddle.net/KR9jJ/值總是返回爲0並且不知道爲什麼

//當窗口加載時,將畫布放置到中心屏幕垂直地和水平

window.onload = window.onresize = function() { 
    var canvas = document.getElementById('canvas'); 
    var viewportWidth = window.innerWidth; 
    var viewportHeight = window.innerHeight; 
    var canvasWidth = viewportWidth * 0.8; 
    var canvasHeight = canvasWidth/2; 
    canvas.style.position = "absolute"; 
    canvas.setAttribute("width", canvasWidth); 
    canvas.setAttribute("height", canvasHeight); 
    canvas.style.top = (viewportHeight - canvasHeight)/2 + "px"; 
    canvas.style.left = (viewportWidth - canvasWidth)/2 + "px"; 
}; 

//用於隨機數生成器函數的1-13

function random() { 
    var number = (Math.random()*13)+1; 
    return number; 
} 

function rank() { 
    var randomCard = random(); 
    var output = "randomCard"; 
    switch (randomCard) { 
     case 1: 
      output = "Ace"; 
      break; 
     case 2: 
      output = "Two"; 
      break; 
     case 3: 
      output = "Three"; 
      break; 
     case 4: 
      output = "Four"; 
      break; 
     case 5: 
      output = "Five"; 
      break; 
     case 6: 
      output = "Six"; 
      break; 
     case 7: 
      output = "Seven"; 
      break; 
     case 8: 
      output = "Eight"; 
      break; 
     case 9: 
      output = "Nine"; 
      break; 
     case 10: 
      output = "Ten"; 
      break; 
     case 11: 
      output = "Jack"; 
      break; 
     case 12: 
      output = "Queen"; 
      break; 
     case 13: 
      output = "King"; 
     break; 
    } 
return output; 
} 

//函數返回卡的基於隨機結果的值

function value(randomCard) { 
var output = 0; 
    if (randomCard === ("Ace")) { 
     output = 11; 
    } 

    if (randomCard === ("Two")) { 
     output = 2; 
    } 

    if (randomCard === ("Three")) { 
     output = 3; 
    } 

    if (randomCard === ("Four")) { 
     output = 4; 
    } 

    if (randomCard === ("Five")) { 
     output = 5; 
    } 

    if (randomCard === ("Six")) { 
     output = 6; 
    } 

    if (randomCard === ("Seven")) { 
     output = 7; 
    } 

    if (randomCard === ("Eight")) { 
     output = 8; 
    } 

    if (randomCard === ("Nine")) { 
     output = 9; 
    } 

    if (randomCard === ("Ten")) { 
     output = 10; 
    } 

    if (randomCard === ("Jack")) { 
     output = 10; 
    } 

    if (randomCard === ("Queen")) { 
     output = 10; 
    } 

    if (randomCard === ("King")) { 
     output = 10; 
    } 
return output; 
} 

//指定播放器和電腦默認的手

var playerHand = 0; 
var compHand = 0; 

//處理初始手中電腦和播放器

var playerFirstCard = rank(); 
var playerCardOne = value(playerFirstCard); 

var compFirstCard = rank(); 
var compCardOne = value(compFirstCard); 

var playerSecondCard = rank(); 
var playerCardTwo = value(playerSecondCard); 
playerHand = playerHand + (playerCardOne+playerCardTwo); 

var compSecondCard = rank(); 
var compCardTwo = value(compSecondCard); 
compHand = compHand + (compCardOne+compCardTwo); 

//顯示玩家和譜曲手

document.getElementById('p').innerHTML = playerHand; 
document.getElementById('c').innerHTML = compHand; 

請注意:請不要使用jQuery建議。

+3

你需要將其分解爲單位,然後測試單位。並且稍後纔將已經測試過的單元放在一起。 –

+0

即時通訊不知道爲什麼你得到0的問題。但我猜測Math.floor((Math.random()* 13)+1)將幫助你 –

回答

2

你的rank()總是返回「隨機卡」,因爲(Math.random()*13)+1會出現類似9.1245986,而不是整數。

+0

Ohhhh謝謝!所以這個循環函數會修復我接受它? Math.round(Math.random()* 13)+1)?Math.round(Math.random()* 13)+1)? –

+0

現在修復它,謝謝你......我會盡快接受 –

+1

@Daniel Morgan你想使用'Math.floor()'。 – lincolnk

2

在等級函數。 從數學實驗室添加樓層功能。你的隨機數是十進制的,而你檢查你的數字是否是自然的。

var randomCard = Math.floor(random()); 
相關問題