刚接触棋类游戏程序编写的朋友,往往比较迷惑,不知从何下手。

本文总结了棋类游戏的主程序流程、计算机走子策略、打分方式(以井字棋、黑白棋、五子棋为例),未使用minimax算法,比较简单,适合刚接触的朋友。特记录如下:

作者:hhh5460

本文地址:https://www.cnblogs.com/hhh5460/p/10114236.html

一、主程序流程

所有双人对战棋类游戏在人机模式下的主程序流程几乎雷同。

流程:

1.初始化棋盘

2.确定玩家,执黑先走

3.进入循环

4.打印棋盘、提示走子、(显示得分?)

5.思考走法、放弃终止

6.落子、(吃子?、翻棋?)

7.判断局面、是否终止、(是否轮换?)

8.切换棋手

9.游戏结束,返回信息

二、计算机走子策略

1.对所有合法的走子位置“打分”

2.取分值最高的走子位置

3.再取行最小的,若行相等,再取列最小的

三、“打分”方式

注意:同一个点位,双方的棋型分都要加上!!

1.井字棋

棋型分值:

三连  100

活二  10

活一  1

2.黑白棋

翻了对方棋子的数目、或者翻了对方棋子的权重之和

3.五子棋

棋型分值:

0.活五     +100000

1.死五  +100000

2.活四     +10000

3.死四     +1000

4.活三     +1000

5.死三     +100

6.活二     +100

7.死二     +10

8.活一     +10

9.死一  +2

特别说明:

10.跳连   两边棋型分相加 + 上一级分值的20% ?商榷

四、确定棋型

方法是,从当前落子位置向周围八个方向搜索。

注意,黑白棋八个方向是独立考虑的,而井字棋与五子棋八个方向的相反方向要放在一起考虑。

五、棋力分析

这种按照最高得分走棋的策略,就是我们下棋时常说的:贪吃,即贪婪模式。棋力不会太高,属于入门水平

六、代码

(未公布)

python棋类程序_python棋类游戏编写入门相关推荐

  1. python 单机程序_Python tkinter制作单机五子棋游戏

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于Python家庭,作者Python家庭 实战项目:使用Python ...

  2. python游戏设计_python小游戏设计入门1-了解游戏

    从小到大玩过很多的游戏,在我小时候,能玩游戏的地方不多,那时玩游戏都是偷摸玩的,只要是个游戏就觉得非常有趣,比较经典的有魂斗罗,拳皇,超级玛丽,贪吃蛇,俄罗斯方块等游戏:发展到现在,玩游戏已经成为生活 ...

  3. python 重启程序_python重启程序

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! # 重启程序 def restart_program():print(重启... ...

  4. 人工智能python小程序_Python:一个可以套路别人的python小程序

    一个可以套路别人的python小程序~ 先简要介绍一下程序. 程序是使用pycharm工具,python语言所写.程序包括客户端 client.py 和服务器端 server.py 两部分,利用了py ...

  5. python游戏程序中游戏对象是什么_Python写游戏: PyGame入门(上)

    Python部落(www.freelycode.com)组织翻译, 禁止转载 PyGame是一个用Python写的SDL库.SDL是一个能访问计算机多媒体硬件组件(包括声卡,视频卡,输入组件等)的跨平 ...

  6. python源文件改写_Python源文件改写.编写一个程序,读取一个Python源程序,将文件中所有除保留字外的小写字母换成大写字母...

    程序代码如下: importkeyword. s=keyword.kwlist. #建立保留字列表. n=input("输入一个文件名:"). f=open(n,"r&q ...

  7. 温度转换的python程序_Python通过小实例入门学习---1.0(温度转换)

    1.安装Python 3 下载地址: Welcome to Python.org​www.python.org 2."温度转换"实例:摄氏度--->华氏度 / 华氏度---& ...

  8. python抽奖程序_Python编写抽奖式随机提问程序

    本文主要思路:使用tkinter编写界面,使用3个Label组件和多线程技术实现学生名单的滚动显示. import tkinter import tkinter.messagebox import r ...

  9. python汇率程序_Python入门案例(一):汇率兑换

    一.汇率兑换V1.0 主要知识点:注释:说明信息,是不被执行的,单行注释用#,多行注释用三个单引号 命名:命名只能使用字母.数字和下划线:且须保证命名的唯一性:且不能以数字开头,Python是区分字母 ...

最新文章

  1. 使用GDI+缩放图片文件
  2. 区块链BaaS云服务(28)TOP Network 区块链平台
  3. java程序的最小程序单位_微信小程序中rpx与rem单位使用
  4. 误删了公司数据库,但我还是活下来了
  5. 实战HCNA1:华为设备快速记忆生成树的角色及选举规则,实施基本的VLAN间路由和基础的VRRP协议...
  6. 怎么看端口有没有被占用?Win11查看端口是否占用的方法
  7. 问题十:【总结】解决了问题四~问题九,vec3这个类的代码应该都能看懂了
  8. Django 输出二维码
  9. 让海底电缆给数据中心提供更快的直连
  10. word大括号中公式左对齐
  11. 24.FFmpeg学习笔记 - 用libavfilter转换原始音频格式1
  12. 罗永浩曾想自杀,戴威债务缠身仍不认输......这是无数创业者的生存现状
  13. 阿里云数据迁移工具解决方案:腾讯云迁移到阿里云
  14. 机器学习实战(Machine Learning in Action)学习笔记————09.利用PCA简化数据
  15. 51单片机 八音盒设计
  16. 漫画 | 连绿巨人都想要了解的Greenplum
  17. Spring IOC详解 以及 Bean生命周期详细过程 可以硬刚面试官的文章
  18. Flutter vs Native用于移动开发
  19. 直线内插法的图怎么用计算机画,直线内插法(设计费).pdf
  20. Steam教育对国内大学生的影响力

热门文章

  1. Pytest装饰器@pytest.mark.parametrize一键生成接口正交试验用例
  2. 【资讯】2017年最好的25大发明,你最钟爱哪个?
  3. 制作github博客
  4. 设备树中#address-cells和#size-cells作用
  5. Hadoop Mapreduce 调优
  6. 如何在命令长度受限的情况下成功get到webshell(函数参数受限突破、mysql的骚操作)...
  7. CentOS7 升级Python2.x到3.x
  8. Gridiew——表的内容居中
  9. elipse+pydev+python开发arcgis脚本程序
  10. 扬长避短使用Windbg和Visual Studio高效调试调试你的代码