项目要求

       设计一个小游戏,游戏以认识汉字并写出拼音为主题,要求 (该软件至少包含以下功能,
多者不限):
1 、游戏应该支持不同用户的使用,能够将用户信息及得分以文件形式保存。
2 、软件可以读取汉字字库文件(可以在网上找,或者自己做一个,只要包括部分汉字及
拼音即可),并实现随机抽取一个汉字显示在游戏界面上。
3 、游戏界面上以图片形式显示 26 个字母( 26 个图片,类似扑克牌),支持鼠标对图片
的拖动。
4 、支持用户将字母分别拖动到指定区域组成答案并提交,游戏可以根据用户提交的图片
判断拼音是否正确。
5 、支持比赛成绩统计。
6 、可以参考网络中类似软件。

项目需求分析与个人建议: (仅为建议,请有意者选择性听取)

(简单游戏项目,不劳一定没有干货,加油)

思路千万条,不要让外人左右自己的想法,敢想咱也得敢干。

从题设可见,文章所列内容有以下几个关键点:

1、注册登录(网上教程多此处不提了)

2、游戏本体:自己规划和设计提高能力的关键步骤;难点主要有:图片的拖动,图片接受框(建议做出类似吸附的效果)。本人所制如下:

3、结束部分(成绩统计和其他功能模块),自主万岁。

简单划分三部分后,接着介绍难点:

具体来说,难点在于图片的拖动和图片接受框的制作,其中拖动方式样式较多,主要用坐标的变化来实现拖动,可利用(1)mouseup+mousemove+mousedown(如下)的组合完成拖拽的实现,也可将其附在click事件上,点击后即可移动图片(此过程中可根据26字母图片的共性实现总工作量的缩减)。

对于图片接受框,可以只是一个图片提供坐标,也可制作一个图片吸附的功能,具体就是将图片的定位点到达某个位置范围内即令其坐标直接等同于图片接受框,并将字母图片所代表的内容存到答案中。

        private void q_MouseMove(object sender, MouseEventArgs e){if (down == true){q.Left += Convert.ToInt16(e.X - xPos);q.Top += Convert.ToInt16(e.Y - yPos);}//移动中}private void q_MouseUp(object sender, MouseEventArgs e){down = false;if (q.Left >= pic1.Left - 10 && q.Top >= pic1.Top - 10 &&q.Right <= pic1.Right + 10 && q.Bottom <= pic1.Bottom + 10){pin1.Text = "q";da[0] = pin1.Text;  }else if (q.Left >= pic2.Left - 10 && q.Top >= pic2.Top - 10 &&q.Right <= pic2.Right + 10 && q.Bottom <= pic2.Bottom + 10){pin2.Text = "q";da[1] = pin2.Text;}else if (q.Left >= pic3.Left - 10 && q.Top >= pic3.Top - 10 &&q.Right <= pic3.Right + 10 && q.Bottom <= pic3.Bottom + 10){pin3.Text = "q";da[2] = pin3.Text;}else if (q.Left >= pic4.Left - 10 && q.Top >= pic4.Top - 10 &&q.Right <= pic4.Right + 10 && q.Bottom <= pic4.Bottom + 10){pin4.Text = "q";da[3] = pin4.Text;}else if (q.Left >= pic5.Left - 10 && q.Top >= pic5.Top - 10 &&q.Right <= pic5.Right + 10 && q.Bottom <= pic5.Bottom + 10){pin5.Text = "q";da[4] = pin6.Text;}else if (q.Left >= pic6.Left - 10 && q.Top >= pic6.Top - 10 &&q.Right <= pic6.Right + 10 && q.Bottom <= pic6.Bottom + 10){pin6.Text = "q";da[5] = pin6.Text;}q.Left = Convert.ToInt16(x0);q.Top = Convert.ToInt16(y0);}private void q_MouseDown(object sender, MouseEventArgs e){down = true;q = (PictureBox)sender;//获取准确坐标xPos = e.X;//设置鼠标坐标,移动用yPos = e.Y;x0 = q.Left;y0 = q.Top;//设置初始坐标,回到初始位置用}

对于字库:字库文件可以自制一个比较简单的,以分隔符的方式将其存到文本文档中即可,在抽题读取时用分隔符的方式将题目各部分存在数组中进行读取,也可从网上下载,只要自己能懂一切都不是问题,自己思考后能懂即可。

对于抽题部分,我们生成一个随机数并根据所用字库文件中的题量限制随即数的范围,一个arrylist就可以解决存储问题,再加上分隔符即可实现抽题。

答案部分可由拼音和音标构成,以字库文件的选择为依据,将答案与所选题对比进行作答的正误判断,也可有自己的创新,无论是以验证的方式还是提交后自动跳转下一题的方式,均可对需求进行完善和解决,同时依据需求,对所选的成绩可进行统计,以多种形式对作品进行完善,以求更加完美。各种功能的附加等也应依据游戏本体等进行添加和完善。

对于答案组成,个人可以凭借自己的想法进行,对于过程中所出现的各种情况,我们均可对其进行分类和整理,存到成绩内,能够查看处理好细节即可。

项目的过程是需要自己思索的,估计作此项目也只会出现在大一阶段,这是一个提升自己能力的好机会,思路如上仅供参考,希望能有帮助。

汉字英雄游戏项目(C#为例)思路建议相关推荐

  1. 学好小学奥数必懂的解题思路 建议家长帮孩子收藏

    奥数一直是小学数学里的重头戏,各年级的奥数学习有其独立的特点.如果想要系统学习奥数,就需要从整体上有一个把握和规划,那么不同阶段的孩子应该学哪些奥数内容呢?家长不妨一起来看看. 一二年级 1.巧算与速 ...

  2. 【测试】用例设计思路-输入框类型功能

    在我们的测试中,设计测试用例的质量,不仅与需求说明书有关,而且与测试人员的测试能力有关,今天我们通过一个典型的案例,总结一下对于输入框类型的功能,如何设计测试用例. 如图所示:我们需要测试身份证查询功 ...

  3. 单例模式(懒汉单例和饿汉单例)

    转载于:http://www.manongjc.com/article/53899.html ==单例模式就是指一个类在整个程序中只有一个实例.==确保一些不需要重复创建的类创建多余的实例.特别是某些 ...

  4. 功能测试笔记PART2-测试用例设计方法与实战【等价类划分、边界值、因果图判定表、正交实验法】

    如何设计软件设计[测试用例设计] 一.测试设计与测试用例 测试设计:将概括的测试目标转化为具体的测试条件和测试用例的一系列活动. 测试分析和设计的主要任务: 评审测试依据 (需求.系统架构.设计.接口 ...

  5. “拨”出数位上的数字 - 多种思路实现反向输出一个四位数

    文章目录 前言 一.引例 -- 反向输出一个四位数 1. 题干描述 2. 思路简述 二.实现思路 -- 拨出数字 思路一:用取模运算分别拨出数位 代码        说明 思路二:循环取数 代码    ...

  6. 多测师拱墅校区_肖sir_设计用例方法

    一.认识基本术语 1.动态测试 :通过运行软件的组件或系统来测试软件 2.静态测试:对组件的规格说明书进行评审,对静态代码进行走查 3.正式评审:对评审过程及需求文档的一种特定评审 4.度量:测量所使 ...

  7. 2017年第八届蓝桥杯JavaB组省赛 刷题笔记、思路及答案

    前言 本人是二本院校大二的计算机系学生,已经报名了下一届的蓝桥杯省赛,整个寒假在家(这次的寒假挺久的哈哈)在b站学习了一些算法(现在会bfs走迷宫.dfs相关算法.递归回溯.常见排列算法),但是还是有 ...

  8. 作为一个职场中人的一些思考,关于做事的方式和思路

    转手他人的注意点 转手他人是合理的,也是必须的,因为有些事情你不一定合适干,有一些事情你不一定有时间干,有一些事情你虽然可以干,但是别人干的效果也不差,让年轻的团队成员获得锻炼也是团队发展中的一个重要 ...

  9. Pytorch模型量化实践并以ResNet18模型量化为例(附代码)

    更多.更及时内容欢迎微信公众号:小窗幽记机器学习 围观,后续会进一步整理模型推理加速和部署方面的相关内容. 文章目录 量化基础知识 映射函数 量化参数 校准(Calibration) Affine和S ...

最新文章

  1. python批量命名变量_python变量命名的7条建议
  2. java使用BigDecimal 处理商业精度及高精度详解
  3. 【云栖大会】阿里云生态 开启智能“大航海时代”
  4. Ubuntu安装并使用sogou输入法
  5. stream进行分组统计
  6. c java 开发效率高_Java 的开发效率究竟比 C++ 高在哪里?
  7. 开源数据库:何为NoSQL生态系统?
  8. JavaEE 启示录
  9. protel99SE - 多张原理图生成一张总网表的方法
  10. directx游戏开发终极指南 directx游戏编程教程
  11. 软件开发生命周期(Software Development Life Cycle)(一)
  12. python编程输入法_用Python写一个拼音输入法
  13. 搜索自己博客中的文章
  14. 在信息不完全对称时,你可以用你的“空城计”虚张声势
  15. python自己制作节奏大师游戏_十分钟利用Python制作属于你自己的个性logo
  16. 数据仓库(三)之架构篇
  17. springboot连接mysql8.x: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents
  18. win7开机登录界面的壁纸怎样更换修改
  19. 天梯赛 L2-032 彩虹瓶 (25 分)
  20. location 拦截所有_AdGuard for Mac(广告拦截软件)

热门文章

  1. 用 Python 把朋友头像变表情包? Easy!
  2. java登录器20100206_锄 - Minecraft Wiki,最详细的官方我的世界百科
  3. 【JavaScript】使用正则表达式匹配整个字符串
  4. excel vba计算平均数
  5. java中将数组转换为集合
  6. JavaWeb核心知识
  7. 企业如何实现数字化转型?
  8. 记一次网站攻击到提权的全部过程
  9. uefi装完系统后无法引导_uefi u盘无法引导怎么办
  10. yum下载速度过慢解决方案