求填字游戏设计思路

hkp2008 2010-10-11 04:42:13
用java实现如下填字游戏:
图片中的方格用二维数组表示吗?是不是要先在后台生成一些成语或者单词呀,然后再根据生成的这些成语或单词在前台生成方格呀?这些方格的形状要怎么形成?大家讨论下呀,给点思路!好的思路有加分哦!!
...全文
1013 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
hkp2008 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 cenhuineng 的回复:]
我做过数独的··我觉得原理应该一样··就是每个9格块和每行每列都不重复··并且都是由1--9之间的数字组成的··我使用的方法是··界面当然要用的二维数组··然后里面的东西我就是任意输出一个数字··这样的··如果我没记错的话··
[/Quote]
说得具体点。。。
hkp2008 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 yaoweijq 的回复:]
首先得有词库
然后个人感觉对于具体的游戏图,
这个问题才有讨论的价值,要不然搜索条件,分支过多
无法在短时间内算出结果。
有了词库以后,对这些词库中的词进行预处理是必然的
如何处理我还没有想到好的数据结构
至少应该类似于hash或图的邻接表表示
以单个汉字以及其词语中的第几位为这个汉字为键,
值为一个链表,记录了符合这个条件的所有词语
对于楼主帖中给出的图来说,
从一开始,
……
[/Quote]
是要构造类似我给出的那种图,不是说按照我给定的那个图来找匹配的词语。
而且字典里存放的都是英文单词!
hkp2008 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dr_lou 的回复:]
我倒是觉得从词库里找出两个邻接的词是难点。其他的都easy。
[/Quote]
觉得easy的部分,大虾不妨说下思路!!
hkp2008 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dr_lou 的回复:]
我倒是觉得从词库里找出两个邻接的词是难点。其他的都easy。
[/Quote]
说说你的思路呀?
owen_008 2010-10-12
  • 打赏
  • 举报
回复
给楼主顶一个~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
youjianbo_han_87 2010-10-12
  • 打赏
  • 举报
回复
1. 词库。
2. 自定义数据结构(自定义包含二维数组及填写状态的类)。
3. 监听。
dr_lou 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dr_lou 的回复:]
我倒是觉得从词库里找出两个邻接的词是难点。其他的都easy。
[/Quote]

难道真的要对每个字做sql么? 还有其他方法么?

另:解决这一步后,最终遍历到页面的结构我想链表比较好吧。欢迎拍砖。
dr_lou 2010-10-12
  • 打赏
  • 举报
回复
我倒是觉得从词库里找出两个邻接的词是难点。其他的都easy。
24K純帥 2010-10-12
  • 打赏
  • 举报
回复
方格是用二维数组,每个词LZ至少该给个提示吧,而且还要考虑每组词可能有多个答案,比较有难度额
凉岑玉 2010-10-12
  • 打赏
  • 举报
回复
我做过数独的··我觉得原理应该一样··就是每个9格块和每行每列都不重复··并且都是由1--9之间的数字组成的··我使用的方法是··界面当然要用的二维数组··然后里面的东西我就是任意输出一个数字··这样的··如果我没记错的话··
yaoweijq 2010-10-12
  • 打赏
  • 举报
回复
首先得有词库
然后个人感觉对于具体的游戏图,
这个问题才有讨论的价值,要不然搜索条件,分支过多
无法在短时间内算出结果。
有了词库以后,对这些词库中的词进行预处理是必然的
如何处理我还没有想到好的数据结构
至少应该类似于hash或图的邻接表表示
以单个汉字以及其词语中的第几位为这个汉字为键,
值为一个链表,记录了符合这个条件的所有词语
对于楼主帖中给出的图来说,
从一开始,
先找出所有符合条件的词语
然后从每个词语开始,进行深度优先搜索
假设选中的词语是 紫电清霜
从这个图可以看出,搜索是有分支的,并且各个分支相互不影响
那么第一个分支就是紫在第一个字的三字词语,并且不再继续,因为后面没有接1的词语
第二个分支是清在第一位的四字词语,依次类推,
直到搜索完所有的词库,
最后根据互不影响的分支搜索结果,进行所有组合,得出所有符合条件的题解
可供参考
hkp2008 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 keeya0416 的回复:]
先建好词库
每个词条可以放入的位置
以每个词条中的字建各个模块
最后就可以把问题转化为全覆盖问题
转化成功后就比较简单了
另外解决全覆盖用 DLX 比较好
[/Quote]
全覆盖、DLX好高深的东东哦!
keeya0416 2010-10-12
  • 打赏
  • 举报
回复
先建好词库
每个词条可以放入的位置
以每个词条中的字建各个模块
最后就可以把问题转化为全覆盖问题
转化成功后就比较简单了
另外解决全覆盖用 DLX 比较好
hkp2008 2010-10-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kebin0001 的回复:]
題庫的部分就不用說了,就是你會有一堆單字,然後這些單字要用以直排或橫排的方式放入二為矩陣。
字元相同的地方可交叉。

先選橫(或直)的單字數個,以不交叉放式隨意布置。
第一個固定放0,0 第二個如果還能放第一個旁邊就放,不然就放下兩行或下三行。
依此規則放完。
再來就放直的(橫的),因為可以選字,所以就先選好位置,再選字,
選字就是判斷可交叉位置,以及字的長度能否放到格子裡。
選不……
[/Quote]
要谢谢你。
我刚开始只想着先把词条选出来再去生交错的格子。你这种按需选词的方法给了我思路。。。
果然是强人。。。
看看还有没有好的建议!!
hkp2008 2010-10-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kebin0001 的回复:]
題庫的部分就不用說了,就是你會有一堆單字,然後這些單字要用以直排或橫排的方式放入二為矩陣。
字元相同的地方可交叉。

先選橫(或直)的單字數個,以不交叉放式隨意布置。
第一個固定放0,0 第二個如果還能放第一個旁邊就放,不然就放下兩行或下三行。
依此規則放完。
再來就放直的(橫的),因為可以選字,所以就先選好位置,再選字,
選字就是判斷可交叉位置,以及字的長度能否放到格子裡。
選不……
[/Quote]
我觉得这个思路可以试一下!
wula0010 2010-10-11
  • 打赏
  • 举报
回复
首先,你得建立词库,其次根据词库生成题目,建立词库不难,难在自动生成题目,.........

你这个方格里的词看样子比较随意,可以2-7个字的词,有些地方还可以不填,这个就太活了,估计你的答案并不是唯一的,.... .......
kebin0001 2010-10-11
  • 打赏
  • 举报
回复
題庫的部分就不用說了,就是你會有一堆單字,然後這些單字要用以直排或橫排的方式放入二為矩陣。
字元相同的地方可交叉。

先選橫(或直)的單字數個,以不交叉放式隨意布置。
第一個固定放0,0 第二個如果還能放第一個旁邊就放,不然就放下兩行或下三行。
依此規則放完。
再來就放直的(橫的),因為可以選字,所以就先選好位置,再選字,
選字就是判斷可交叉位置,以及字的長度能否放到格子裡。
選不到字就換位置。
換位置先往下移一格,都不行再往左移一格。

以上方法勉強可以做出來,效果好不好就不知道了。


商科程序员 2010-10-11
  • 打赏
  • 举报
回复
这个问题不好解决,但不是不能解决.
你首先要有个词库,2字到7字的.每个词条还要对应个问题.
每个词条的每个字都要建索引.然后自动随机取词条填入上图中.
我觉写得算法比较困难.
期待高人.
目录回到顶部↑ 第1篇 vb2008基础知识 第1章 visualbasic2008.net入门2 1.1.netframework概述2 1.2 visualbasic2008.net的新特性3 1.3 安装vs2008.net4 1.3.1 vs2008.net系统软硬件要4 1.3.2 vs2008.net安装步骤4 1.4 vb2008.net集成开发环境7 1.4.1 ide启动界面7 1.4.2 主体窗口界面介绍8 1.4.3 窗口菜单作用9 1.4.4 主要开发类窗口10 1.4.5 动态帮助13 1.5 我的第一个.net应用程序13 1.6 本章 小结17 第2章 visualbasic.net编程基础18 2.1 基础编程知识18 2.1.1 关键字及标识符18 2.1.2 数据类型20 .2.1.3 变量与常量24 2.1.4 自定义结构体26 2.1.5 数组27 2.1.6 运算符与表达式29 2.1.7 结构化控制语句32 2.2 面向对象编程40 2.2.1 “面向对象编程”中的概念40 2.2.2 “对象”和“类”的使用42 2.2.3 创建自定义类45 2.3 控件常用属性47 2.4 api函数的应用49 2.4.1 api简介49 2.4.2 api的声明50 2.4.3 api的应用实例51 2.5 本章 小结52 第2篇 数据库应用开发实例 第3章 家庭理财系统54 3.1 实例功能说明54 3.2 系统设计方案55 3.2.1 模块设计及开发环境55 3.2.2 系统结构图55 3.2.3 数据库设计56 3.3 相关技术点拨58 3.3.1 ado.net数据库访问技术58 3.3.2 菜单的建立 3.3.2 (menustrip控件)62 3.3.3 状态栏的建立 3.3.2 (statusbar控件)63 3.3.4 datagrid控件的应用64 3.3.5 savefiledialog组件65 3.4 程序实现与代码66 3.4.1 家庭理财系统主界面窗体66 3.4.2 查询统计窗体设计78 3.5 实例总结83 第4章 超市管理系统84 4.1 实例功能说明84 4.2 系统设计方案88 4.2.1 模块设计及开发环境88 4.2.2 系统结构图89 4.2.3 数据库设计89 4.3 相关技术点拨91 4.3.1 工具栏的建立91 4.3.2 linklabel1控件93 4.4 程序实现与代码93 4.4.1 登录窗体93 4.4.2 超市管理系统主界面窗体96 4.4.3 进货管理窗体98 4.4.4 价格管理窗体103 4.4.5 售货管理窗体107 4.4.6 进货查询窗体113 4.4.7 售货查询窗体115 4.4.8 登录密码修改窗体118 4.4.9 增加用户窗体119 4.4.1 0关于窗体121 4.5 实例总结122 第5章 人事管理系统123 5.1 实例功能说明123 5.2 系统设计方案130 5.2.1 模块设计及开发环境130 5.2.2 系统结构图130 5.2.3 数据库设计131 5.3 相关技术点拨134 5.3.1 闪窗设计134 5.3.2 如何使用toolstrip控件创建工具栏134 5.3.3 打印报表窗体设计135 5.4 程序实现与代码139 5.4.1 闪窗设计139 5.4.2 登录窗体140 5.4.3 人事管理系统主界面窗体140 5.4.4 编辑员工档案窗体146 5.4.5 员工档案查询窗体150 5.4.6 员工档案报表窗体151 5.5 实例总结152 第6章 酒店管理系统153 6.1 实例功能说明153 6.2 系统设计方案157 6.2.1 模块设计及开发环境157 6.2.2 系统结构图158 6.2.3 数据库设计158 6.3 相关技术点拨160 6.3.1 如何在button控件类型上添加图片并调整图片与 6.3.1 文字的对齐方式160 6.3.2 如何使房间的编号与房间类型匹配160 6.3.3 如何实现结账退房161 6.4 程序实现与代码161 6.4.1 酒店管理系统主界面窗体161 6.4.2 客房信息设置窗体162 6.4.3 预订管理窗体165 6.4.4 入住管理窗体168 6.4.5 结账退房窗体172 6.4.6 客房信息查询窗体175 6.4.7 预订信息查询窗体176 6.4.8 入住登记查询窗体177 6.4.9 入住客史查询窗体178 6.5 实例总结178 第7章 销售管理系统179 7.1 实例功能说明179 7.2 系统设计方案191 7.2.1 模块设计及开发环境191 7.2.2 系统结构图191 7.2.3 数据库设计191 7.3 相关技

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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