python棋类游戏编写入门
刚接触棋类游戏程序编写的朋友,往往比较迷惑,不知从何下手。
本文总结了棋类游戏的主程序流程、计算机走子策略、打分方式(以井字棋、黑白棋、五子棋为例),未使用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游戏编程入门
<Python游戏编程入门>这些文章负责整理在这本书中的知识点.注意事项和课后习题的尝试实现.并且对每一个章节给出的最终实例进行分析和注释. 初识pygame:pie游戏pygame游戏库 ...
- Python编程:从入门到实践(选记)
本文参考< Python 编程:从入门到实践>一书,作者: [ 美 ] Eric Matthes 第1章 起步 1.1 搭建python环境 在不同的操作系统中, Python 存 ...
- Python学习之路【第一篇】-Python简介和基础入门
1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...
- Python简介和基础入门
1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是一种开发语言,而且已经 ...
- Python编程:从入门到项目实践高清版附PDF百度网盘免费下载|Python入门编程免费领取
百度网盘:Python编程:从入门到项目实践高清版附PDF免费下载 提取码:oh2g 第一部分 基础知识第1章 起步 21.1 搭建编程环境 21.1.1 Python 2和Python 3 21 ...
- 小白的 Python 修炼手册:入门篇
Life is short, you need Python.(人生苦短,我用 Python.) --Bruce Eckel 前言 听说现在是全民 Python 的时代,虽然不知道事实如何,但学会 P ...
- Python黑客编程2 入门demo--zip暴力破解
Python黑客编程2 入门demo--zip暴力破解 上一篇文章,我们在Kali Linux中搭建了基本的Python开发环境,本篇文章为了拉近Python和大家的距离,我们写一个暴力破解zip包密 ...
- Python 小游戏 Bunny
最近在学习Python,所以上网找了一个小程序练练手. 关于这款名为[Bunny]的小游戏,详细请看下面的链接: http://www.oschina.net/translate/beginning- ...
- PC游戏编程(入门篇)(前言写的很不错)
PC游戏编程(入门篇) 第一章 基石 1. 1 BOSS登场--GAF简介 第二章 2D图形程式初体验 2.l 饮水思源--第一个"游戏"程式 2.2 知其所以然一一2D图形学基础 ...
随机推荐
- MVP架构分析与搭建
一个项目的核心就是架构 1.什么是MVP:MVP是一种项目架构设计模式. 其实MVP的本质就是将view和model完全隔离出来,通过Presenter (主持人) 统一调度管理.
- 【Tomcat】Unrecognized Windows Sockets error: 10106: Socket creation failed
tomcat8启动过程中报如下错误 -Nov- ::]: java.net.SocketException: Unrecognized Windows Sockets error: : create ...
- [Spark] Spark 安装配置
原文地址:https://www.cnblogs.com/memento/p/9148732.html Windows 上的单机版安装 下载地址:http://spark.apache.org/dow ...
- Python实现批量梯度下降算法
# -*- coding: UTF-8 -*- import numpy as npimport math # 定义基础变量learning_rate = 0.1n_iterations = 1000 ...
- [20180316]为什么不使用INDEX FULL SCAN (MIN/MAX).txt
[20180316]为什么不使用INDEX FULL SCAN (MIN/MAX).txt --//链接:http://www.itpub.net/thread-2100456-1-1.html.自己 ...
- python自动发送测试报告(五)
python实现自动发送邮件具体步骤参考笔者的另一篇博文,python实现邮件的发送 本次只展示发送附件的代码,MIMEApplication支持常用格式文档(.jpg..mp3.zip等)当做附件上 ...
- 在 Azure Resource Manager 模板中使用托管磁盘
本文介绍使用 Azure Resource Manager 模板预配虚拟机时托管与非托管磁盘之间的差异. 这有助于将现有模板从使用非托管磁盘更新为使用托管磁盘. 我们将使用 101-vm-simple ...
- python第七十七天---HTML
HTML5 :规则, 浏览器的通用规则 1.规则, 浏览器的通用规则 2.开发者: 学习html 规则 开发后台程序 - 写html文件 (当作模板) - 数据库获取数据,替换到指定的HTML文件中的 ...
- 第四章 Hyper-V 2012 R2 网络配置
尼玛的我不高兴写了,所以下面的文档我直接把原来的pdf给转换出来,加了点自己的注解,我写的话会写自己觉得终于的章节. 在搭建虚拟化平台时,网络的虚拟化是一个非常重要的环节,如何保障网络的持续可用并 ...
- 辽宁移动宽带体验及魔百盒M101s-2刷机
一.背景 坐标:辽宁 某城,移动宽带100M. 设备:移动赠送,华为光猫一只,魔百盒M101s-2电视盒子 一只,据安装人员说这个魔百盒是移动自己开发设计的. 二.上网体验 上网:浏览一般网站没问题. ...