220 likes | 378 Views
石头 , 剪子和布 上海交通大学软件学院 林寅. 项目概述. 项目 概述 功能概述 演示 实现 项目意义 心得与致谢. 内容. 包含 4 个工程 Slider 控件 Atlas Model OpenGLDisplayBox 控件 主程式 除 OpenGL Display Box 用 C++ .NET ( OpenGL 官方 API 只支持 C++ )外,其余均用 C# 编制 特点: 多元素 ,多规则,多算法,多地图 ,具有统计功能 为添加新元素做好准备 人机界面、图形学、算法方面下了大功夫. 项目概述. 项目概述 功能概述 演示 实现
E N D
石头,剪子和布 上海交通大学软件学院 林寅 项目概述
项目概述 功能概述 演示 实现 项目意义 心得与致谢 内容
包含4个工程 • Slider控件 • Atlas Model • OpenGLDisplayBox控件 • 主程式 • 除OpenGL Display Box用C++ .NET(OpenGL官方API只支持C++)外,其余均用C#编制 • 特点: • 多元素,多规则,多算法,多地图,具有统计功能 • 为添加新元素做好准备 • 人机界面、图形学、算法方面下了大功夫 项目概述
项目概述 功能概述 演示 实现 项目意义 心得与致谢 内容
完成题目中的要求 • 计算单天,多天以后的地图 • 动态演示地图的变化 功能概述
额外完成的功能: • 地图的生成,编辑,存取 • 地图、单格和效率的统计 • 多规则、多算法 • 多地图支持 • 图形学效果 • 人机界面 功能概述(续)
其它特色: • 双缓冲实现画面消抖 • 强稳定性,演示过程中单元格大小、演示速度即时可调 • 人机界面友好,美观且易学,在图形学方面下了很大功夫(细致到阴影边沿的模糊处理) • 程序结构严谨,应用了许多设计模式的思想 • 具有极高的易读性、扩展性和可维护性,为新要素、新地图、新规则、新算法的加入作好了充分的准备 • 代码符合命名规范 • 文档规范,全英文编写,结构严谨,条理清晰 功能概述(续2)
项目概述 功能概述 演示 实现 项目意义 心得与致谢 内容
主界面:自编小控件通过事件与文本框联动、地图编辑、剩余时间和进度、统计主界面:自编小控件通过事件与文本框联动、地图编辑、剩余时间和进度、统计 文件菜单:自定义十字地图、选项读取当前设置、尽量不重新生成地图、三维倒角 足球:建模,弧形倒角,相邻 编辑菜单 演示要点
项目概述 功能概述 演示 实现(架构与设计模式,算法与数据结构) 项目意义 心得与致谢 内容
实现(架构与设计模式) • 架构 • 为多种地图、规则和算法的协作,以及新元素的添价,选用了灵活的架构 • 设计模式(举例) • Proxy: 记录算法封装了另一种算法作为主算法,自己只负责保存状态和检查状态是否重复 • Factory Method: 用于建立各种地图 • Strategy: 用于切换算法、规则
实现(数据结构) • 所有地图用二维数组储存 • 六边形方格采用60度角斜交建立坐标轴 • 空间体对其平面展开图进行存储
实现(重点算法) • 四种算法 • 普通算法 • 快速算法 • 记录算法 • 消去算法(连珠消除及智能回避) • 六边形地图构造及自动左上对齐 • 六边形被点击时领域判断 • 空间多面体上元素储存和相邻判断
项目概述 功能概述 演示 实现 项目意义 心得与致谢 内容
项目意义 • 提出了对空间多面体顶点坐标,二面角全手工精确求算的方法,具有普适意义,是我个人的独立研究成果* • 使用虚拟球的方法实现3D旋转,与市面一些游戏的场景旋转控制方式相比,手感优势突出 • 连珠规则为消去类游戏提供了核心算法,记录算法则体现了本人在提高算法效率上所下的功夫 *互联网上找了一下,似乎足球绘制大多借助建模工具,顶点、二面角的手工精确求算本人尚属首例
抓紧一分一秒时间,工作学习时一心一意 不要畏惧困难,现学现用,活学活用,原理在心中,问题迎刃解 最后,感谢软件学院给我这次宝贵的学习机会!并向大作业期间给过我帮助的同学、助教、老师,致以深深的谢意! 心得与致谢
统计地图上个种族的数据,统计地图上每个格子的详细数据统计地图上个种族的数据,统计地图上每个格子的详细数据 • 统计四种算法,两种作图API在当前机器上的效率 统计功能
三种游戏规则,其中连珠模式的创意来自于最流行的消除类小游戏三种游戏规则,其中连珠模式的创意来自于最流行的消除类小游戏 • 四种算法,每种规则下都有不同的算法可以选择 • 高效的算法与可维护性的完美结合,为添加新的元素,规则和地图类型设计了灵活的架构 规则与算法
多达九种地图的支持,其中二维5种,包含方形和六边形格子,三维4种,包含平面构成的正多面体和球面多边形构成的足球多达九种地图的支持,其中二维5种,包含方形和六边形格子,三维4种,包含平面构成的正多面体和球面多边形构成的足球 多地图支持
单元格分方形、六边形两种 立体面片分球面和平面两种,并有做过良好的倒角处理 多地图支持
使用两种作图API编程,用户可自由切换 • 二维渐变色效果,动态的统计框效果,半透明阴影和边缘的模糊处理 • 地图大小参数可调,显示比例缩放可调,窗体大小可自由调整 • 三维建模,倒角,光照,纹理映射,和鼠标可控自由旋转 图形学特性
用户界面的一致性,友好性,易学性 • 多种编辑方式提高地图编辑效率 • 三维设备和二维图框平滑切换,大量用户觉察不到的幕后工作在悄悄运行 人机界面友好