【发布时间】:2014-04-20 22:08:27
【问题描述】:
我正在为一个类似于 Hangman 的游戏编写 iOS 应用程序,只是要求玩家从第一个字母开始,一次猜一个字母。游戏开始时,密语在UITextField 中显示为星号 (*)。
当玩家猜出第一个字母时,程序应将其与密语进行比较,看字母是否正确。如果猜测正确,应用程序应将第一个星号替换为正确的字母。如果猜测不正确,将采取其他行动。玩家一次一个字母地重复这个过程,直到完全拼出这个秘密单词。
这是我目前用来检查猜出的字母和密码的代码,但它不能正常工作。
-(void) checkGameLetter : (NSString *) letterToCheck{
bool match = NO;
NSRange gameLetterRange;
char charToCheck = [letterToCheck characterAtIndex:0];
for(int i = 0; i < self.correctWord.length; i++)
{
char tempString = [self.correctWord characterAtIndex:i];
if(charToCheck == tempString){
match = YES;
gameLetterRange = NSMakeRange(i, 1);//location, length
Screen.text =[Screen.text stringByReplacingCharactersInRange:gameLetterRange withString:letterToCheck];
}
}
【问题讨论】:
-
我无法理解您的问题……这是针对 Hangman 应用程序的吗? “未知”字母是否带有星号 (*)?
-
@aapierce 是的,由*显示的未知字母适用于像 Hangman 这样的应用程序,但我希望玩家按顺序输入字母!例如,如果我有一个单词(书),玩家应该先输入“b”,然后游戏将检查它是否正确,然后玩家应该输入第二个字母“o”,然后输入第三个字母“o”,依此类推。
-
所以你要问的是如何从输入的单词中提取最后一个字符?
-
@vikingosegundo 我想在游戏中按正确的顺序(索引)检查输入的字母。 char 在索引 0 然后 char 在索引 1 然后 char 在索引 2 等等
-
@user3554683 我完全重写了你的问题,试图让它更清楚。如果我有错误,请随时纠正。
标签: objective-c ios7 nsstring nsrange