华容道软件的方块移动的算法

wxf54318 2019-09-26 09:46:07
3*3个格子,有一个格子是空的,请问如何判断哪个格子可以移动,并在鼠标移动事件中处理?
...全文
190 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bridge_go 2019-09-26
  • 打赏
  • 举报
回复
只有一个空格子,说明按一个方向键能移动的就只有一个格子。例如:按右键,肯定 <=1 个可以往右移动
Dear200892 2019-09-26
  • 打赏
  • 举报
回复
判断方格坐标,如果移动后X或Y坐标为边界值,则不能朝某个方向移动 当然,你还需要判断移动后,是否已经有相同的坐标,有,则不能移动
threenewbee 2019-09-26
  • 打赏
  • 举报
回复
xy坐标+1-1,判断周围是否有空格,有就可以。
题目一:基于μc/os-Ⅱ的多任务实现 一、 基本要求(必做) 以实验二十二为基础,做如下的改进。 1) 求出四路通道的平均值,并绘制在显示屏上(平均值应该象其他通道的值一样,可以根据实时采集值的变化而变化)。 2) 报警,在超出阈值时报警一次,如果此后此通道的值不变则不再报警,若此通道的值被调小为小于阈值而后又被调为大于阈值,则再次报警一次。 3) 结合实验十八,设置时间和日期初值,并实时显示在LCD上(同各通道的值同屏显示)。并能够在整点的时候发声提示。 二、 提高要求(选做) 在基本要求的基础上结合实验七,利用四路通道平均值的大小控制电机的转动速度,使电机实时转动。 三、 参考资料 实验7、电机转动实验;实验8、音频实验;实验18、多任务与时钟;实验22、多任务与A/D转换。 题目二:游戏设计(以游蛇吃豆为例) 功能描述:开始蛇向右方移动。按键盘上定义的上下左右键,蛇改变游动的方向,可以上下左右游动。蛇不能碰到图中的灰色栅栏,如碰到游戏结束。若蛇碰到图中一粒豆子,则豆子被蛇吃掉,图中的豆子消失,蛇深变长。 最终所有的豆子都被吃掉,游戏结束。 要求: (1) 必须改进游戏的界面,增加显示相关的统计信息。左边的显示区保持不变,右边动态显示积分和总时间统计信息,其中积分栏目显示当前已经吃下的豆子数目,总时间显示本局游戏从开始到现在经过的时间。 (2) 优化主程序,注意CPU和内存的使用效率。 (3) 考虑一个合理的得分算法,得分值应该取决于吃下去的豆子和游戏持续的时间。 (4) 得分可以在发光二极管上显示出来。 运行指导: (1) 系统启动后首先显示一个LOGO图片,大约2秒钟后图片自动消失,游戏开始。 (2) 按“2”键蛇向上游动,按“5”键蛇向下游动;按“4”键蛇向左游动;按“6”键蛇向右游动。 (3) 按“3”键游戏暂停,再次按下游戏继续进行。 按“1”键游戏重新开始。 注意:选作游戏的同学可以考虑实现俄罗斯方块华容道、打鼹鼠等游戏中的一个或多个。 题目三:shell设计 一、 基本要求(必做) 1) 设计并实现μc/os-Ⅱ的shell模型。 2) 实现简单的Shell命令 hostname命令在屏幕上打印一句话,即自定义的本机名称。 hello 命令可以带多个参数,如hello a b c d,回车后会显示: hello,I am Genie your argv is: a b c d (3)实现在串口和LCD的同步显示,即所有的命令操作过程都要显示在串口和LCD上。 四、 提高要求(选做) 自己设计几条新的命令,比如输入time即可显示时间,输入data即可显示日期或者可以通过命令设置时间和日期等。 五、 参考资料 1) GenieshellforUCOSII详细说明及使用指南.doc 2) Dos的命令模型。 3)实例代码。 题目四:世界时钟 功能:多功能时钟软件,根据使用者的需要,随时选择显示世界上各个时区的当前时间。 要求: (1) 对每个城市(例如:北京、东京、巴黎、纽约、德黑兰等)建立一个任务,显示当地时刻,时差准确,但是当前时刻不要求很准确。 (2) 显示方式两种:文本方式,图形方式 (3) 图形方式下有时钟和城市的背景图。 题目五:计算器 功能:小型简易计算器软件。运算对象:5位整数;运算操作:加减运算。 要求: (1) 自定义键位,键盘可接受加号、减号、等号和回车确认的输入。 (2) 接受第一操作数的输入,回车输入为结束。 (3) 接受加号或减号的输入。 (4) 接受第二操作数的输入,回车输入为结束。 (5) 接受等号的输入。 (6) 计算。 (7) 显示结果。 注意:可以自行设计计算器界面。 题目六:数值转换器 功能:接受4位十六进制数输入并显示,然后转换成八进制数并显示。 要求: (1) 自定义键位,键盘可接受0-9,A-F,H以及回车确认的输入。 (2) 接受4位十六进制数的输入,加H和回车确认表示输入结束。 (3) 检验数值输入的合法性,如果有错误重新执行执行(2),否则执行(4)。 (4) 数制转换计算 (5) 显示结果。 注:可以自行设计界面。 题目七:单行编辑工具 功能:简单的英文行编辑器,能够编辑纯英文的文本文件。 说明: (1) 自定义键位,使得键盘可接受小写英文字母,符号键和数字键的输入。 (2) 设计一个当前光标位置的显示方式,例如:高亮度闪烁、下划线、垂直字符隔离线等。 (3) 接受各种字符的输入,可进行光标定位,可以插入和删除字符。 (4) 一行显示不了,显示在下一行。 (5) 回车键输入表示结束。 (6) 提示输入文件名。 (7) 给定文件名。 (8) 将该单行英文字符串以指定文件名和TXT文件格式存入实验平台的RAM中。 注:难度较高,难点在于光标移动和确定当前的操作字符。 (4) 题目八:交通控制信号系统 功能:具有红、绿、黄3种指示信号的单车道十字路口交通控制软件。 要求: (2) 两组信号灯,一组控制南北方向,另一组控制东西方向。每组有3盏信号灯,颜色分别为红,绿,黄。初始状态为全暗。 (3) 从某个定时开始,南北方向控制信号和东西方向控制信号同时工作。动作次序如下: ① 南北方向控制信号动作:首先绿灯亮60秒,并且从60秒倒计时为0;然后红灯亮,倒计时显示60秒,实际亮57秒,接着黄灯亮3秒。一个周期共120秒。 ② 东西方向控制信号动作:首先红灯亮,倒计时显示60秒,实际亮57秒,接着黄灯亮3秒。最后绿灯亮60秒,从60秒倒计时为0。一个周期共120秒。 (4) 周而复始地进行步骤(2)。 (5) 如果从键盘按下某个按键,则清除所有信号灯。延时20秒后,重新开始步骤 题目九:题目自拟。须在16周提交设计题目及方案。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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