ios - 按顺序循环数组并重复

标签 ios objective-c arrays

我正在创建一个本地多人基于文本的游戏,最多可以涉及无限数量的玩家。我创建了一个数组来保存用户在应用程序启动时输入的所有玩家姓名。但是,我在尝试弄清楚如何按索引显示数组索引然后自行重复时遇到问题,例如

玩家第 1 回合

玩家 2 回合

玩家第 1 回合

玩家 2 回合

玩家第 1 回合

以此类推,直到问完所有问题(想想问答游戏)

到目前为止,我已经想出了这个,但它没有完成这项工作

int i;       

int count;

for (i = 0, count = [_players count]; i < count; i = i + 1)
    {
        NSString *element = [_players objectAtIndex:i];
        self.turnlabel.text =( i, element);
        NSLog(@"The element at index %d in the array is: %@", i, element);
    }

以前,当我在没有 and array 的情况下工作时,我使用了一个简单的 if 语句来检查字符串的值并计算它显示的次数,然后将其添加到该字符串中,如果该值小于前一个字符串,则应用程序确定轮到其他玩家了。但是现在我正在使用一个数组,我似乎无法弄清楚如何做到这一点。

基本上我将如何依次显示数组中的每个索引然后重复直到游戏结束?

编辑 当我从 plist 生成的问题用完时,游戏结束。

每个玩家将轮流进行,先是玩家 1,然后是玩家 2,然后是玩家 3,然后回到玩家 1 和玩家 2,依此类推。他们将被一次问一个问题。

如果这是一个非常基本的问题,我很抱歉,我现在是第一周接触 Xcode 的新手。

最佳答案

您可能想要做的是保留对当前播放器的引用。然后循环提问。如果玩家答对了,继续下一个问题,如果玩家答错了,则增加玩家引用。当您增加播放器时进行检查,看看是否有必要返回到播放器#1。

例如:

NSArray *playerArray = @[@"Player 1", @"Player 2", @"Player 3"];

NSUInteger currentPlayerIndex = 1;

然后轮到玩家了,如果他答错了,

currentPlayerIndex++;

然后检查:

if (curentPlayerIndex >= playerArray.count) {
    currentPlayerIndex = 0;
}

希望这有帮助。

关于ios - 按顺序循环数组并重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22897854/

相关文章:

iphone - 重新启动到APP时为什么会丢失数据?

ios - 如何获取从应用程序下载的 ipa 文件的链接库

ios - 你如何本地化 UIAlertview 的内容

ios - 如何在 iOS 中加载 View 然后加载数据?

c - 使用 malloc 为其分配内存后如何加载结构?

Java - 为什么将数组声明为一种接口(interface)类型?

ios - UITableViewCell 持有 UICollectionView 并点击集合单元格 segue

ios - 为什么身份验证不适用于我的 ASP.NET REST API?

iphone - 如何从音频队列缓冲区中提取整数样本并将修改后的样本写回?

python - 在基于另一列的列中重复值