通过使用字符串循环遍历字符来检查字符数组的字符

时间:2014-04-24 23:27:08

标签: c++ arrays string

我现在正在制作一款基本上像Connect 4的游戏,但是用字母而不是彩色的棋子。玩家将一个字母拼贴“丢弃”到网格中,然后如果该字母是他演奏的那个字母,则可以声明一个单词。然后检查该单词以查看它实际上是否在网格中(这是一个包含字母值(char)的结构数组和一个布尔值来确定该tile是否为“空”。我已经成功编码了人类玩家的回合,即接受用户输入的那个。计算机转向,结果证明是非常有问题的。

计算机播放器应该查看它剩余的字母图块(每个'播放器'都有一个字符串,其中包含字母表中的每个字母以及一组额外的元音;每次播放器播放一个图块时,相应的图块将从字符串),然后选择它将其放入一个给它最大点数的列;单词的长度与点数相关。

现在,我的人类守则有点像这样; 输入字母 - >输入所需行 - >游戏检查该列的最低行是否打开 - >瓷砖放置在列的最低可用行中 - >询问玩家是否要声明一个词 - >玩家输入一个单词 - >游戏检查每一行,每列和对角线以检查该单词是否在网格中 - >游戏检查该单词是否包含刚使用的字母 - >游戏检查词典(文本文件)以查看该词是否是有效词(它在词典中) - >人类玩家被授予与单词长度相关的分数。

所以,对于电脑玩家来说,我认为我应该首先寻找长达七个字母的单词。但是,我不知道该怎么做。我有很多字符串可以用来检查单词;字符串“hstr1”是网格的第一行,“vstr1”是网格的第一列,“dstr1”是从左上角到右下角的第一个对角线。

我正在尝试做的是,能够使程序看到网格,并想“是否有任何不完整的单词可以通过我的字母选择字符串中保留的字母完成?”我当然会开始寻找七个字母长的单词(或六个字?因为单词应该是一个字母短于'完整'),然后如果它找不到任何七个字母的单词,那么下到六,五,直到没有三个字母的字可索赔。

我在编写这个游戏方面取得了很大的进步,但这是让我完全陷入困境的一件事。如果有人能帮助我想出一些伪代码,我会非常感激。我真的没有其他任何地方可以寻求帮助,这场比赛将在五天后到期。

0 个答案:

没有答案