2016-07-22 69 views
-1

我是非常新的動作編程。我最近才瞭解到函數,我的任務是創建一個猜測遊戲,用戶輸入一個範圍,計算機將在此範圍內生成一個隨機數。用戶然後猜測數字是什麼。功能不會返回值動作猜謎遊戲

我的主要問題是,我得到函數guessCorrect()的錯誤「函數不返回值」。我不明白爲什麼會發生這種情況,或者如何解決這個問題。另外,如果偶然發生其他錯誤,請告訴我。非常感謝您的幫助。

  • 我曾嘗試將其與回報,但得到了同樣的結果

這裏是我的代碼:

btnGuess.addEventListener(MouseEvent.CLICK, guessNumbers); 

//Global Variables 
var count = 0; 

var myGuess:int; 
var Answer:int; 
var highNumber:int; 
var lowNumber:int; 

function guessNumbers(e:MouseEvent):void { 
//Set Variables 
highNumber = int(txtinHighValue.text) 
lowNumber = int(txtinLowValue.text) 

Answer = randomWholeNumber(highNumber, lowNumber); 

myGuess = int(txtinGuess.text); 

lblOutput.text = guessCorrect(myGuess, Answer, count); 

} 

function randomWholeNumber(highNumber:int,lowNumber:int):int 
{ 

return Math.floor((highNumber - lowNumber + 1) * Math.random() + lowNumber); 

} 

**function guessCorrect(myGuess:int, Answer:int, count:int):String { 
while (myGuess != Answer) { 
    if (myGuess < Answer) { 
     lblOutput.text = "Guess to low - try again!" 
     count ++ 
    } 
    else if (myGuess > Answer) { 
     lblOutput.text = "Guess to high - try again!" 
     count ++ 
    } 
    else if (myGuess == Answer){ 
     lblOutput.text = "It's a match - you win!" 
     count ++ 
    } 
} 
}** 

lblGuesses.text = "Guessess: " += count 

btnNewGame.addEventListener(MouseEvent.CLICK, guessNumbers); { 
    count = 0; 
    highNumber = 0; 
    lowNumber = 0; 
} 
+0

'guessCorrect'直接影響'lblOutput.text',但應該返回字符串值。你的函數不返回任何東西。 –

+0

我投票結束這個簡單的錯字 - 你忘了在'guessCorrect'函數中放置一個'return string;'語句。我的建議:花更多的時間來處理一些Actionscript教程,直到你更好地理解函數。 – Brian

+0

該功能缺失的回報甚至不是主要問題。 While循環會在第一次調用時永久運行,從而阻塞和崩潰應用程序。 – alebianco

回答

0

當一個功能比其他東西兩端:void如您:int有需求成爲return行。看起來像:

function myFunction():int 
{ 
    var myVar: int = 5; 
    return myVar; 
}