纵横字谜(基本框架)

原创 2004年07月28日 12:05:00

  老婆最喜欢玩纵横字谜,比如对南方周末每期的《小强填字》总是津津乐道。最近我闲来无事,不妨做一个电脑上玩的填字,以博老婆一笑,^-^。
  首先应该有一个TPuzzleItem类吧?这个表示谜题的单个条目,包括坐标、方向(横向还是纵向)、谜面、谜底等属性,对了,还应该保存解题人输入的答案。这个TPuzzleItem还应该有一些方法(没有方法的类,也就没有存在的必要了),比较重要的就是根据给定的逻辑坐标返回该单元格的字符(如果给定的坐标不属于该条目,就返回空),为了便于导入和导出,还应该有ExportToXMLNode和ImportFromXMLNode这两个方法,以便于根据XML节点来导入导出。
  多个条目应该由TPuzzle类来管理,TPuzzle有一个私有的TList对象来维护条目列表,而不是让TPuzzle从TCollection继承,因为我实在不想过多去了解这个TCollection的内部结构,用委托而不是继承,也是俺一贯的做法。同样,TPuzzle也应该有ExportToXMLNode和ImportFromXMLNode这两个方法。每一个TPuzzle代表一个谜题,为了区分不同的谜题,它具有一个Guid属性。
  TPuzzle与TPuzzleItem于GUI完全无关,它只是在提供谜题的逻辑,至于界面上如何实现,如何与用户交互这些工作,交给TPuzzleGUI来处理。TPuzzleGUI委托一个私有字段FPuzzle来处理逻辑方面的问题,自己接受用户的输入、负责在屏幕上绘制出谜题。TPuzzleGUI从TCustomControl继承,并具有WS_VSCROLLBAR和WS_HSCROLLBAR属性,这样可以显示很大的栅格给用户(虽然实际上可以用不到),由于并未对栅格建立二维数组,只是由TPuzzle来维护一组条目列表,所以占用的内存并不因屏幕上显示的栅格多少而增加。
  界面的设计可简可繁,反正一切都是绘制出来的,由于绘制的小地方比较多,所以TPuzzleGUI也用一个缓冲区,先将所有要绘制的内容画在缓冲区中,再一次性画上屏幕,有点象DirectDraw的做法,但是这种小玩意就不用劳DX的大驾了吧。界面设计稍微细微一点,带给用户的感觉也就好一点,可惜俺不是美工,没办法把一切都画得那么完美:-(
  还剩下一个如何保存多个谜题的问题,这种存储由TPuzzleContainer来完成,这是一个抽象类,才能方便俺以后改变存储方式,比方说今天用XML来存储,明天想通了,或许就用个ACCESS库了呢。抽象工厂模式应该是要用到的吧,虽然现在还看不出有什么好处,呵呵。

纵横字谜的答案(Crossword Answers)

Crossword Answers Time limit: 3.000 seconds  Crossword Answers  A crosswo...
  • qq_15096707
  • qq_15096707
  • 2015年02月02日 19:43
  • 1425

算法竞赛入门经典(第2版)习题3-6 纵横字谜的答案 Crossword Answers UVa232

写这题用了一上午,样例数据都过了后提交发现WA。 反复jianch
  • archya
  • archya
  • 2014年07月11日 12:23
  • 1793

纵横字谜的答案 (UVa232)

题意:输入一个r行c列的网格,黑格用*号表示,每个白格都填有一个字母。如果一个白格的左边相邻位置或者上边相邻位置没有白格(可能是黑格,也可能出了网格边界),则称这个白格是一个起始格。首先把所有起始格从...
  • u014422052
  • u014422052
  • 2015年01月18日 20:20
  • 2178

猜字谜 基于MFC框架

  • 2009年09月29日 13:05
  • 512KB
  • 下载

15字谜

  • 2006年02月23日 09:05
  • 44KB
  • 下载

数据结构与算法分析——字谜问题实现

数据结构与算法分析 第一章课后习题答案第2题   一、问题描述:   二、解题思路:(针对的是字典不太大的情况) 1、单词表中的每个单词均可以用一个四元组(行,列,方向,长度)表示; ...
  • wang8978
  • wang8978
  • 2017年04月17日 10:49
  • 444

一个菜鸟的java求字谜算法

《数据结构与算法分析》的一个课后习题 我自己写的代码如下。。。 感觉效率也太低了。。。 有大神能指导指导吗 萌新路过 呃呃。。这是原题 编写一个程序求解字谜游戏问题 ...
  • yang1874
  • yang1874
  • 2017年02月05日 17:12
  • 66

便民工作室对福彩3D14352期全部字谜浅释

焰舞:只进不出 鬼六神算 2在前 8要出 3在后 3D 晚秋(和值)谜:三期对称 D:奇小排大 P3 晚秋(和值)谜:儿含口中 D:报数至始 圣手:一时搏大彩 北京短信 别无选择 太阳...
  • freelovefree
  • freelovefree
  • 2014年12月26日 19:32
  • 4

C语言猜字谜游戏

采用课本所提有序四元组来解决
  • qq_38445477
  • qq_38445477
  • 2017年08月04日 10:15
  • 164

JAVA编程思想导论(猜字谜游戏1.0)

本文将借用一个简易的猜字谜游戏,向读者简单介绍JAVA面向对象的部分知识以及实现思路。...
  • azhexuezhang2015
  • azhexuezhang2015
  • 2015年12月06日 10:54
  • 526
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:纵横字谜(基本框架)
举报原因:
原因补充:

(最多只允许输入30个字)