一个不难但比较挠头的题目,BINGO游戏,求个思路

njwangchuan 2010-06-08 04:53:26
想在PC上模拟下SEGA流行的BINGO游戏,游戏模型简化后是这样:

在一个5*5的方格矩阵,从上方依次掉落5个小球下来,小球以随机概率依次在其中任意一个格子里面,只要有任意三个球排成一条直线,如果是斜线则必须是对角线,则算玩家BINGO了,当然,一洞只能一球。

1.根据以上条件,判断玩家是否BINGO

2.假设这5*5的方格可以分成2个部分:

(1)2组对边中点连线形成的一个十字架形,共9个洞
(2)被上述“十字架”分割成的左上A、右上B、左下C、右下D4个区域,每个区域4个洞

假设玩家可以在3个球落下时候,对A、B、C、D这4个区域(连同区域内可能以有的球)进行“旋转”,来增加形成BINGO的几率,问这种情况下如何生成“旋转”策略

为方便其见,我举例说明下,用X表示空洞,F表示有球进洞,数字表示洞的编号(如需要)

*旋转

假设左上方A在3个球形成以下:

F1
23

则左上可调整为以下任意形式:

2F
31

32
1F

13
F2

*一些旋转的例子
1.三个球后

FXXXX
XXXXX
XFXXX
XXXXX
XFXXX

旋转后:

XXXXX
XFXXX
XFXXX
XFXXX
XXXXX

直接BINGO了

2.三个球后

XFXXX
XXXXF
XXXXX
XFXXX
XXXXX

旋转后:

XXXXX
XFXFX
XXXXX
XFXXX
XXXXX

通过旋转增加了3个球的BINGO机会

3.接上例,假设第4个球出来后,正好形成这种情况:

XXXXX
XFXFX
FXXXX
XFXXX
XXXXX

这种时候,不能再通过旋转左上和左下来形成BINGO!

我先给点思路:

1。数组结构,利用几何学原理判断是否BINGO
2。定义一个类,里面包含“十字架”等单个元素和4个元素链表表示ABCD区域

就本问题的第1问,采用数组结构不失为1个好办法,但考虑到第2问,这个方法就已经鸡肋了,因为旋转的时候必须要考虑到那些可能形成BINGO的机会,当然2个方法结合起来考虑也不错,就是结构冗余比较严重了,各位给点意见,陆续加分。。
...全文
677 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
njwangchuan 2010-06-10
  • 打赏
  • 举报
回复
饿,这个娱乐网上是没有下载的,连模拟都没有

我个2个网站,有兴趣的可以去看看

日文原站:
bingoparade.sega.jp
繁体介绍站:
www.lonsheng.tw

这个游戏远比我上面介绍的要复杂,我只是把其中的数学模型提炼出来
超级大笨狼 2010-06-08
  • 打赏
  • 举报
回复
没玩过这个游戏,有点想象不出来.
你给个下载吧,这个要亲身体验下,才能有兴趣去深入思考.

33,025

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧