我正在创建一个java的多米诺骨牌游戏。
这是游戏板的外观:
SEEEEEEE
DDDDEEEE
EEEDEEEE
EEEDEEEE
EEEDEEEE
EEECEEEE每个字母都是一个对象。S是一个开关,它是唯一可以触摸的值。D是一个Domino,它的状态要么是down,要么是up。如果Domino命中C,则C是游戏获胜的地方。
每个对象都有坐标,并将使用坐标进行初始化。例如)S在(0,0)中,S被初始化为Switch S= new Switch(0,0);
我的问题是:
1.)当按下S时,我该如何检查每一边,看看是否有Domino型?如果有多个边(N、S、E、W),该怎么办?
一旦在开关旁边发现了多米诺骨牌,他们的状态就必须变为Down,然后我们必须检查在down状态的Dominoes旁边有没有更多的多米诺骨牌,直到所有连接的多米诺骨牌都倒下。
2.)如何有效地创建包含这些对象的不同顺序的不同级别。我将使用双数组,因为级别大小是静态的,8 x 6。
3.)将来我想做一个有图像的游戏板,而不是文本。我该怎么做呢?我的事情是给某种类型的对象一个图片属性,然后在黑板上显示图片。每个对象的大小都是相同的。
谢谢,
费尔南多·迪亚兹
发布于 2010-11-02 21:08:36
我会这样做:
假设Hit Queue是刚刚被击中的多米诺骨牌的列表(想象它们正在倒下,即将与其他骨牌相撞)。
如果Switch可以被视为Domino,则将其添加到命中队列中,然后启动下面的domino倒下算法。
如果Switch不能被视为Domino,则首先在算法中间执行检查,然后开始算法。
Domino倾倒算法
While (Domino C is not Down) AND (Hit Queue is not empty):
Let New Hits be an empty queue of dominoes
For each Domino in Hit Queue:
mark Domino as Down
Check each adjacent position (NSEW) for a domino:
If one is found, add a reference to it to New Hits
Replace Hit Queue with New Hits
Update GUI (make Down dominoes red or something)
Let Victory be a Boolean equal to whether Domino C is Down这本质上是一波一波地向外移动,在每一波之后更新GUI。当C被击中时,或者当任何现有的domino不再有骨牌可击中时,它就结束了。
https://stackoverflow.com/questions/4077784
复制相似问题