网站大量收购独家精品文档,联系QQ:2885784924

数据结构(Python课程)课程项目2.PDF

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构(Python课程)课程项目2

数据结构(Python 课程)课程项目 2‐2 (五子棋)  (北京大学数学学院,2014 年 11 月 20 日)  本项目要求以项目组为单位独立完成下面工作。一个项目组由两位同学组成,12月5 日 前将完成的程序和所写报告(打包)提交辅导老师。评分要求包括: 1. 所提交的程序应该完整,包括主程序和demo 程序(演示程序);程序的模块划分合理, 代码清晰,格式合理,易读易理解; 2. 所提交报告对项目工作描述应清晰准确,说明为什么采用有关的结构设计,其中的想法 和解决的问题等;报告应包含对所完成的项目的分析,讨论其优点和缺点; 3. 总结在完成这一项目过程中的体会和遇到的困难。 项目描述: 五子棋是一种两方对弈的纯策略型棋类游戏。棋盘大小为 15*15,对弈双方分别使用黑 白两色棋子,下在棋盘直线与横线的交叉点上。行棋时两方轮流著棋子下于棋盘空点处,先 形成任何方向(横/纵/斜)的 5 子以上连线者获胜。 本项目要求实现一个与人博弈的五子棋程序:程序为行棋的一方,用户方通过交互完成 与程序的五子棋对弈。本系统的设计和实现要求提供三种不同的下棋难度 Easy/Normal/Hard。对不同的难度,程序采用不同的博弈策略与用户对弈。较高难度时程序 应能表现出更高的博弈水准。 基本功能: 完成的系统需要实现下面功能:     1. 用户可以选择先手还是后手,选择下棋难度; 2. 胜负状态的判断; 3. 有棋子落下后棋盘状态的更新与显示; 4. 电脑方的下棋位置的决策机制,实现三种不同的难度等级; 5. 双方平局的判断(无空位落子)。   注:不限制开局落子位置,不考虑实际五子棋的各种特殊规则(如各种禁手,交换行棋权等)。 此外本项目的考察重点是数据结构的设计及实现,请不要把重点放在 UI 上。用户交互方面 可以采用比较简单的设计。例如:棋盘状态可以用字符阵列形式输出,黑白棋分别用 O 和 X 表示(空格形式任选);用户落子可以用输入一对坐标的方式表示;每次计算机落子之后输 出棋盘的当前布局。 项目要求: 根据题目要求设计并实现所需的功能 1. 设计所需数据结构,根据需要定义有用的类(class ),如用什么数据结构记录棋盘布局; 2. 单独实现一个脚本文件 gomoku.py ,执行它就能开始实际游戏; 3. 实现一个名字为demo.py 的脚本文件,展示在三种不同难度下系统自己与自己对战的博 弈过程。每次输出一个局面,等到用户有任意输入后输出下一局面。 可以根据情况和需要,把整个系统分别实现为几个模块,以利于系统的开发。 报告的要求: 报告大致可以分为几个部分: 1. 对问题的分析和整体系统的设计概述; 2. 具体的数据结构和程序结构设计,本项目请尤其注意阐述清楚电脑方落子的决策机制, 即核心算法; 3. 实现中的关键问题和技术分析; 4. 系统完成的情况和实际效果的说明; 5. 重要算法的时间复杂性分析,并说明自己的程序没有不合理的空间浪费。 6. 完成了这个系统之后的回顾和分析:优点和缺点,改进可能性。 报告可以参考以上结构组织。

文档评论(0)

shaofang00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档