我将使用 Glut 和 Opengl游戏信息(wiki)在 c 中构建我自己的宝石。
简短的游戏信息 游戏由一个网格组成,比如说 8x8,带有不同的宝石。当您通过交换两个相邻的宝石来创建至少 3 个相同类型的宝石的行/列时,宝石将消失。比赛场地将从顶部填充。
两个设计概念 链表与数组
有几种方法可以实现这一点,但我想要最容易维护和最有效的方法。我的想法是:
(二维数组代表比赛场地/网格)。
1) 包含所有指向 gem 对象(实例)的指针的链表。还有一个 2D 数组,其中包含指向链表元素的所有指针,用于快速访问链表。链表可用于轻松打印游戏对象。每个链表对象都带有一个位置(宝石、记分板、时间 ets)
2)和上面的想法一样,但是每行或每列都有一个链表,其他游戏元素也有一个链表
3)只有一个带有指向对象/实例(宝石)的指针的二维数组。
所需操作
-交换元素(宝石),通过交换指针?
-“创建”新元素(在网格顶部)
-检查行/列中至少有 3 个彼此相邻的相同类型的宝石
我希望我把这一切都说清楚了。你认为最好的解决方案是什么?