b1ue13lue 2024-12-01 19:05 采纳率: 60%
浏览 7

C语言为什么消除的是不同的字母

简易连连看:
给定一个2n2n的方阵网格游戏盘面,每个格子中放置一些符号,这些符号一定是成对出现的,同一个符号可能不止一对。程序读入玩家给出的一对位置(x1,y1)、(x2,y2),判断这两个位置上的符号是否匹配。如果匹配成功,则将两个符号消为“”并输出消去后的盘面;否则输出“Uh-oh”。若匹配次数达到3次,则输出“Game over”并结束游戏。或者当全部符号匹配成功,则输出“Congratulation!”,然后结束游戏。试编写相应程序。

用了if(map[x1][y1] == map[x2][y2]为什么A和B可以消除?

img

  • 写回答

1条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    首先,让我们澄清一下你的问题。你似乎是在询问为什么在使用 if(map[x1][y1] == map[x2][y2]) 时,字符 'A' 和 'B' 可以被消除。这个问题的答案在于你的程序逻辑。

    在你的程序中,map 是一个二维字符数组,代表了游戏的盘面。当你输入两个位置 (x1, y1)(x2, y2) 后,程序检查这两个位置上的字符是否相同。如果相同,则这两个字符可以被消除,并且程序会更新这两个位置的字符。

    关于 'A' 和 'B' 能够被消除的原因,这完全取决于你的游戏规则实现。在你的代码中,只要两个位置的字符相同,无论它们是 'A'、'B' 还是其他任何字符,都会被消除。这是由 if(map[x1][y1] == map[x2][y2]) 这个条件判断实现的。

    关于你的代码,我有一些建议:

    1. 代码中存在一些语法错误和拼写错误,例如 Jelset 应该是 else。你需要修复这些错误。
    2. 在更新盘面时,你使用了 map[x1][y1]=**; 这样的代码。这可能是一个错误,因为你可能在尝试使用两个星号来表示一个空白格子,但是这样的表示法在C语言中是不正确的。你可能需要用一个特定的字符(例如空格 ' ')来表示空白格子。
    3. 你的代码似乎不完整,有些部分(例如更新盘面的部分和读取输入的部分)没有完整地展示出来,这可能会导致一些逻辑上的问题。

    最后,确保你的程序正确地实现了游戏规则。例如,你需要确保程序能够正确地读取玩家输入的位置,并且正确地判断两个位置的字符是否匹配。如果匹配,则更新盘面并减少剩余的格子数量;如果不匹配,则输出 "Uh-oh",并减少玩家的机会。当所有字符都匹配或者玩家的机会用完时,程序应该结束。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月1日