广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python游戏开发怎么用graphics实现AI五子棋
  • 729
分享到

Python游戏开发怎么用graphics实现AI五子棋

2023-06-25 11:06:01 729人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容介绍了“python游戏开发怎么用graphics实现ai五子棋”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果展示源码impor

本篇内容介绍了“python游戏开发怎么用graphics实现ai五子棋”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

效果展示

Python游戏开发怎么用graphics实现AI五子棋

源码

import sysimport cfgfrom modules.misc.Buttons import *from modules.ai.playWithAI import *from modules.online.playOnline import *from PyQt5.QtGui import *from PyQt5.QtCore import *from PyQt5.QtWidgets import *'''游戏开始界面'''class gameStartUI(QWidget):def __init__(self, parent=None, **kwargs):super(gameStartUI, self).__init__(parent)self.setFixedSize(760, 650)self.setWindowTitle('五子棋-微信号: ilove-Python')self.setWindowIcon(QIcon(cfg.ICON_FILEPATH))# 背景图片palette = QPalette()palette.setBrush(self.backgroundRole(), QBrush(QPixmap(cfg.BACKGROUND_IMAGEPATHS.get('bg_start'))))self.setPalette(palette)# 按钮# --人机对战self.ai_button = PushButton(cfg.BUTTON_IMAGEPATHS.get('ai'), self)self.ai_button.move(250, 200)self.ai_button.show()self.ai_button.click_signal.connect(self.playWithAI)# --联机对战self.online_button = PushButton(cfg.BUTTON_IMAGEPATHS.get('online'), self)self.online_button.move(250, 350)self.online_button.show()self.online_button.click_signal.connect(self.playOnline)'''人机对战'''def playWithAI(self):self.close()self.gaming_ui = playWithAIUI(cfg)self.gaming_ui.exit_signal.connect(lambda: sys.exit())self.gaming_ui.back_signal.connect(self.show)self.gaming_ui.show()'''联机对战'''def playOnline(self):self.close()self.gaming_ui = playOnlineUI(cfg, self)self.gaming_ui.show()'''run'''if __name__ == '__main__':app = QApplication(sys.argv)handle = gameStartUI()font = QFont()font.setPointSize(12)handle.setFont(font)handle.show()sys.exit(app.exec_())

开发工具

Python版本: 3.6.4

相关模块:

graphics模块。

环境搭建

安装Python并添加到环境变量即可。

注:
graphics模块在相关文件中已经提供,就是一个py文件,直接放在当前路径或者放到python安装文件夹下的site-packages文件夹内均可。

原理简介

对于五子棋这样的博弈类AI,很自然的想法就是让计算机把当前所有可能的情况都尝试一遍,找到最优的落子点。这里有两个问题:

(1)如何把所有可能的情况都尝试一遍;

(2)如何定量判断某落子点的优劣。

对于第一个问题,其实就是所谓的博弈树搜索,对于第二个问题,其实就是所谓的选择评估函数。评估函数的选取直接决定了AI算法的优劣,其形式也千变万化。可以说,每个评估函数就是一个选手,对不同的棋型每个选手自然有不同的看法和应对措施,当然他们的棋力也就因此各不相同了。

但博弈树搜索就比较固定了,其核心思想无非是让计算机考虑当前局势下之后N步所有可能的情况,其中奇数步(因为现在轮到AI下)要让AI方的得分最大,偶数步要让AI方的得分最小(因为对手也就是人类,也可以选择最优策略)。

当然这样的搜索其计算量是极大的,这时候就需要剪枝来减少计算量。

其中A代表AI方,P代表人类方。AI方搜索最大值,人类方搜索最小值。因此Layer3的A1向下搜索的最终结果为4,Layer3的A2向下搜索,先搜索Layer4的P3,获得的分值为6,考虑到Layer2的P1向下搜索时取Layer3的A1和A2中的较小值,而Layer3的A2搜索完Layer4的P3时,其值就已经必大于Layer3的A1了,就没有搜索下去的必要了,因此Layer3到Layer4的路径3就可以剪掉了

上述搜索策略其实质就是:

minimax算法+alpha-beta剪枝算法。

“Python游戏开发怎么用graphics实现AI五子棋”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Python游戏开发怎么用graphics实现AI五子棋

本文链接: https://www.lsjlt.com/news/304514.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python游戏开发怎么用graphics实现AI五子棋
    本篇内容介绍了“Python游戏开发怎么用graphics实现AI五子棋”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果展示源码impor...
    99+
    2023-06-25
  • Python游戏开发实例之graphics实现AI五子棋
    前言 利用Python+graphics模块实现AI五子棋。 让我们愉快地开始吧~~~ 效果展示 源码 import sys import cfg from modules....
    99+
    2022-11-12
  • java开发实现五子棋游戏
    本文实例为大家分享了java实现五子棋游戏的具体代码,供大家参考,具体内容如下 此游戏具有双人对战功能和人机对战功能 一、游戏界面的实现 一个游戏首先从设计界面开始 1、首先创建一...
    99+
    2022-11-12
  • 怎么利用C语言实现AI五子棋游戏
    本篇内容介绍了“怎么利用C语言实现AI五子棋游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录一.如何实现二.实现代码及分析(1)菜单的...
    99+
    2023-06-20
  • 怎么用python代码实现五子棋游戏
    这篇文章主要介绍“怎么用python代码实现五子棋游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用python代码实现五子棋游戏”文章能帮助大家解决问题。先上代码 #调用pygam...
    99+
    2023-06-30
  • 怎么使用Vue开发一个五子棋小游戏
    这篇文章主要讲解了“怎么使用Vue开发一个五子棋小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Vue开发一个五子棋小游戏”吧!1.绘制游戏区域和游戏元素开始写代码之前,一定要记...
    99+
    2023-07-02
  • 怎么用C语言实现五子棋游戏
    这篇文章主要介绍“怎么用C语言实现五子棋游戏”,在日常操作中,相信很多人在怎么用C语言实现五子棋游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用C语言实现五子棋游戏”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-20
  • 如何用Python实现简易五子棋游戏
    这篇文章主要介绍了如何用Python实现简易五子棋游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用Python实现简易五子棋游戏文章都会有所收获,下面我们一起来看看吧。具体代码如下class ...
    99+
    2023-06-30
  • 怎么使用python+pygame实现简易五子棋小游戏
    本篇内容主要讲解“怎么使用python+pygame实现简易五子棋小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用python+pygame实现简易五子棋小游戏”吧!tkinter库...
    99+
    2023-07-05
  • python怎么实现人人对战的五子棋游戏
    这篇文章主要介绍“python怎么实现人人对战的五子棋游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python怎么实现人人对战的五子棋游戏”文章能帮助大家解决问题。checkerboard.p...
    99+
    2023-06-30
  • Java怎么实现简单的五子棋游戏
    本文小编为大家详细介绍“Java怎么实现简单的五子棋游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么实现简单的五子棋游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。项目结构这个是在网上找的资源,...
    99+
    2023-06-30
  • Java怎么实现简易五子棋小游戏
    这篇文章主要介绍“Java怎么实现简易五子棋小游戏”,在日常操作中,相信很多人在Java怎么实现简易五子棋小游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java怎么实现简易五子棋小游戏”的疑惑有所帮助!...
    99+
    2023-06-30
  • java怎么实现简单五子棋小游戏
    本篇文章为大家展示了java怎么实现简单五子棋小游戏,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。讲解五子棋,实际上就是用一个数组来实现的。没有其他很复杂的结构。首先我们制作五子棋,先要有一个棋盘。...
    99+
    2023-06-26
  • 基于Python怎么实现人机对战五子棋游戏
    人人对战游戏规则:p1为黑子,p2为白子,黑子先手,一方达到五子相连即为获胜。动态演示源码分享cheackboard.py定义黑白子,落子位置以及获胜规则。from collections import namedtuple Chessm...
    99+
    2023-05-20
    Python
  • python怎么实现简易五子棋游戏控制台版
    今天小编给大家分享一下python怎么实现简易五子棋游戏控制台版的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。运行效果:&n...
    99+
    2023-06-30
  • python怎么实现三子棋游戏
    一、基本流程三子棋游戏实现逻辑如下:1、创建初始化3*3棋盘;2、玩家执U子,先进行落子;3、胜负判定【胜、负、和棋】,若胜负未分,则继续如下4、电脑执T子,进行落子;5、胜负判定,若胜负未分,则从步骤2继续执行二、基本步骤1、菜单界面选择...
    99+
    2023-05-15
    Python
  • 怎么用C语言实现简单五子棋游戏
    这篇文章主要介绍“怎么用C语言实现简单五子棋游戏”,在日常操作中,相信很多人在怎么用C语言实现简单五子棋游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用C语言实现简单五子棋游戏”的疑惑有所帮助!接下来...
    99+
    2023-06-25
  • java swing怎么实现简单的五子棋游戏
    这篇文章将为大家详细讲解有关java swing怎么实现简单的五子棋游戏,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。用java swing写的一个简单的五子棋游戏。下面是Main.java。packag...
    99+
    2023-06-06
  • 怎么用C语言实现简单五子棋小游戏
    这篇文章主要讲解了“怎么用C语言实现简单五子棋小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用C语言实现简单五子棋小游戏”吧!本文实例为大家分享了C语言实现简单五子棋小游戏的具体代...
    99+
    2023-06-20
  • Python3怎么利用Qt5实现简易的五子棋游戏
    这篇文章主要讲解了“Python3怎么利用Qt5实现简易的五子棋游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python3怎么利用Qt5实现简易的五子棋游戏”吧!要写出一个五子棋游戏,...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作