[我正在学习如何用AppleScript编写代码时,我已经创建了这个简单的游戏,将我还不是很丰富的知识付诸实践。
我的代码显示一条消息,要求用户/玩家猜测1到20之间的数字,并将他们的输入与随机选择的数字进行比较。当玩家的猜测=随机选择的数字时,游戏结束。在此之前,它一直要求玩家猜测是更低还是更高。
[当用户/玩家输入的不是数字,而是字母或数字以外的其他任何符号时,我都会努力显示一条消息(“猜数字!!”)。
我已经意识到,如果我没有以“整数”形式获得用户/播放器的输入,编译器将不会对其进行比较,以检查它是否在给定范围内(1到20)。
但是当我这样做时,每当用户/播放器未键入数字(而是字母或数字以外的其他任何符号)时,编译器将显示一条错误,指出无法将此字符转换为整数。
因此,每当用户/播放器不输入数字时,我什至都无法使用if语句使编译器显示我的消息(“猜数字!!”!
类似于:如果玩家猜测≠整数则显示对话框“猜数字!!!”如果结束,则>
我该如何解决这个问题?预先感谢!
set RandomNumber to (random number from 1 to 20) as integer display dialog RandomNumber set EndOfGame to false set NoOfTries to 0 repeat until EndOfGame is true set Playersguess to the text returned of (display dialog "I'm thinking on a number between 1 and 20. Guess which one it is!" default answer "" buttons {"Ok"} default button 1) as integer if Playersguess = RandomNumber then set NoOfTries to NoOfTries + 1 if NoOfTries > 1 then display dialog "Very well! It took you " & NoOfTries & " tries to guess the number I was thinking." set EndOfGame to true else display dialog "Very well! It took you " & NoOfTries & " try to guess the number I was thinking." set EndOfGame to true end if else if (Playersguess > RandomNumber) and (Playersguess < 21) and (Playersguess ≠ RandomNumber) then display dialog "Wrong guess! Guess lower!" set NoOfTries to NoOfTries + 1 else if (Playersguess < RandomNumber) and (Playersguess > 0) and (Playersguess ≠ RandomNumber) then display dialog "Wrong guess! Guess higher!" set NoOfTries to NoOfTries + 1 else if Playersguess > 20 then display dialog "Guess a number up to 20!!!" else if Playersguess < 1 then display dialog "Guess a number starting at 1!!!" end if end repeat
我正在学习如何用AppleScript编写代码时,我已经创建了这个简单的游戏,将我还不是很广的知识付诸实践。我的代码显示一条消息,要求用户/玩家猜测一个...
我在脚本的开头添加了两个属性。我还向您的代码中添加了此重复循环repeat while {Playersguess} is not in validNumbers
,这是如何解决有人输入大于20的整数或我未在validNumbers
属性中定义的任何其他键值的事件的示例...在set Playersguess to the text returned of
块内包装这部分代码... try
允许代码在遇到错误时继续运行。
您的代码还有其他一些问题需要解决,但就目前而言,我所做的调整应该能够使您回到正确的轨道上。