2016-07-22 2 views
-1

私は非常にActionScriptのプログラミングに新しいです。私は最近、関数について学びました。私の割り当ては、ユーザーが範囲を入力し、コンピュータがこの範囲内の乱数を生成する推測ゲームを作成することでした。ユーザーはその番号が何であるかを推測します。関数は値を返さないactionscript guessing game

私の主な問題は、関数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

機能は、そのようなあなたの:intがニーズとして:void以外の何かに終了した場合return行になります。次のようになります。

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