当前位置: 首页 > news >正文

汽修网站建设免费google chrome官网

汽修网站建设免费,google chrome官网,花果园营销型网站建设,网站备案查询接口井字游戏 EE-551 Python 项目 客观的: 这个 EE-551 项目旨在使用 python 开发一个 Tic Tac Toe 游戏。它主要包括开发和实现一个计算机程序,该程序可以与另一个玩家玩 Tic Tac Toe。 为了了解什么是井字游戏以及如何玩游戏,以下是说明。 …

井字游戏

EE-551 Python 项目

客观的:

这个 EE-551 项目旨在使用 python 开发一个 Tic Tac Toe 游戏。它主要包括开发和实现一个计算机程序,该程序可以与另一个玩家玩 Tic Tac Toe。
为了了解什么是井字游戏以及如何玩游戏,以下是说明。

游戏说明:

Tic Tac Toe 是一种两人游戏(其中一个由计算机或人类玩)。在这个游戏中,有一个 3 x 3 方格的棋盘。

两名玩家轮流在 3x3 棋盘上打分。Tic Tac Toe 游戏的目标是成为在 3 x 3 网格上水平、垂直或对角线获得三个相同符号的玩家之一。最先获得 3 个他/她的符号(标记)的玩家 - 垂直、水平或对角线赢得游戏,另一个玩家输掉游戏。游戏可以由两个玩家玩。玩家有两种选择:(a) 人类 (b) 计算机

游戏规则:

玩家可以与对手在两个符号之间进行选择,通常的游戏使用“X”和“O”。

  1. 先上场的玩家将获得“X”标记(我们称他/她的玩家为 1),第二位上场的玩家将获得“O”标记(我们称他/她为玩家 2)。

  2. 玩家 1 和 2 轮流走棋,玩家 1 玩标记“X”,玩家 2 玩标记“O”。

  3. 玩家用他的标记(“X”或“O”)标记任何 3x3 方格,他们的目标是创建一条水平、垂直或对角线的直线,有两个意图:
    a. 一名玩家连续获得三个他/她的分数(垂直、水平或对角线),即该玩家赢得游戏。
    湾 如果没有人可以用自己的标记创建一条直线,并且棋盘上的所有位置都被占用,则游戏以平局/平局结束。

实施计划:

本项目的实施工作流程如下:

为了可视化定义的游戏规则和描述,游戏如下图所示。

首先,游戏将从空棋盘开始。

然后玩家 1 将通过在该板上打标记“X”来移动。然后玩家 2 将通过在该板上打标记“O”来移动。这将继续下去,直到棋盘上满是分数。

然后程序将检查是“X”的玩家 1 获胜还是“O”的玩家 2 获胜,并且该场景将如下:(可以是垂直、水平或对角线)。

如果没有玩家获胜,程序将检查平局。

所有这些决策都是通过使用 Minimax 算法完成的。

极大极小算法

Minimax 是一种应用于两人 Tic Tac Toe 游戏的人工智能算法。这种游戏被称为零和游戏,因为在数学表示中:一个玩家赢(+1),另一个玩家输(-1)或两个人都输(0)。

Minimax 是一种递归算法,用于选择导致 Max 玩家赢或不输(平局)的最佳移动。它考虑游戏的当前状态和该状态下的可用移动,然后对于它播放的每个有效移动(交替最小和最大),直到找到最终状态 - 赢、平或输。

它的目标是最小化最大损失,即最小化最坏情况。

举例说明

为了应用这一点,让我们举一个游戏快结束时的例子,轮到我了。我是 X。显然,我在这里的目标是最大化我的最终游戏得分。

如果这张图片的顶部代表轮到我时的游戏状态,那么我有一些选择,我可以玩三个地方,其中一个明显导致我获胜并获得 10 分。如果我不这样做,O 很容易获胜。而且我不希望 O 赢,所以我在这里的目标,作为第一个球员,应该是选择最大的得分动作。

但是O呢?

我们应该假设 O 也在玩赢得这场比赛,但相对于我们,第一个玩家,O 想要选择给我们带来最差分数的移动,它想要选择一个可以最小化我们最终的移动分数。让我们从 O 的角度来看事情,从上面的另外两个游戏状态开始,我们不会立即获胜。

选择很明确,O 会选择任何导致得分为 -10 的动作。

描述极小极大

Minimax 算法的关键是两个玩家之间的来回,其中“轮到它”的玩家希望选择得分最高的移动。反过来,每个可用移动的分数由对方玩家决定其可用移动中的哪个具有最低分数来确定。对手玩家移动的分数再次由试图最大化其分数的轮流玩家决定,依此类推,一直到移动树到结束状态。

算法的描述,假设 X 是轮到玩家:

  • 如果游戏结束,从 X 的角度返回分数。
  • 否则,获取每个可能移动的新游戏状态列表。
  • 创建分数列表。
  • 对于这些状态中的每一个,将该状态的极小极大结果添加到分数列表中。
  • 如果轮到 X,则返回分数列表中的最高分数。
  • 如果轮到 O,则返回分数列表中的最低分数。

让我们用完整的走法树来看看算法的执行过程,并从算法上看,如何选择即时获胜的走法:

  • 轮到 X 进入状态 1。X 生成状态 2、3 和 4,并在这些状态上调用 minimax。
  • 状态 2 将 +10 的分数推送到状态 1 的分数列表,因为游戏处于结束状态。
  • 状态 3 和 4 不在结束状态,因此 3 生成状态 5 和 6 并对其调用 minimax,而状态 4 生成状态 7 和 8 并对其调用 minimax。
  • 状态 5 将 -10 的分数推送到状态 3 的分数列表,而状态 7 也会发生同样的情况,将 -10 的分数推送到状态 4 的分数列表。
  • 状态 6 和 8 生成唯一可用的移动,即结束状态,因此它们都将 +10 的分数添加到状态 3 和 4 的移动列表中。
  • 因为在状态 3 和状态 4 中轮到 O,所以 O 将寻求找到最小分数,并且在 -10 和 +10 之间进行选择时,状态 3 和 4 都将产生 -10。
  • 最后,状态 2、3 和 4 的得分列表分别用 +10、-10 和 -10 填充,寻求最大化得分的状态 1 将选择得分为 +10 的获胜棋步,状态 2。

让我们通过查看可能的移动树来看看这里发生了什么:

  • 给定棋盘状态 1,其中两个玩家都玩得很完美,而 O 是计算机玩家。O 在状态 5 中选择了移动,然后当 X 在状态 9 中获胜时立即失败。
  • 但是如果 O 像状态 3 那样阻止 X 的胜利,那么 X 显然会阻止 O 的潜在胜利,如状态 7 所示。
  • 如状态 10 和 11 所示,这为 X 带来了两次确定的胜利,因此无论 O 在状态 7 中选择哪一步,X 最终都会获胜。

该算法的另一个重要因素是深度。

该算法的关键改进是考虑到游戏结束的“深度”或回合数,无论棋盘安排如何,完美的玩家都会完美地玩。基本上完美的球员应该完美地打球,但尽可能地延长比赛时间。

所以每次我们调用 minimax 时,深度都会增加 1,当最终计算结束游戏状态时,分数会根据深度进行调整。

由于这是一个非常复杂的算法,我们有一台计算机来执行这个算法。

代码实施

  • 为了运行此代码,需要安装 pygame 库。要安装它,请打开命令提示符并键入“pip install pygame”。

  • 运行完整代码 TicTacToeGame.ipynb。

  • 运行代码后,屏幕上将显示以下窗口(空板):

  • 游戏包含两个按钮 - vs Human 和 vs AI,以便我们可以选择我们的对手。一旦我们点击按钮,通过点击游戏板开始玩游戏。由于我们先玩,我们将被定义为玩家 X。

  • 游戏结束后,游戏屏幕上将显示获胜者姓名(X 或 O)或抽奖游戏的消息。


文章转载自:
http://dinncophrenologist.zfyr.cn
http://dinncobooted.zfyr.cn
http://dinncoincompleteline.zfyr.cn
http://dinncokeyman.zfyr.cn
http://dinncobicipital.zfyr.cn
http://dinncoenshroud.zfyr.cn
http://dinncoguileless.zfyr.cn
http://dinncobugs.zfyr.cn
http://dinncoallogamy.zfyr.cn
http://dinncodrumbeat.zfyr.cn
http://dinncounsociable.zfyr.cn
http://dinncocytoid.zfyr.cn
http://dinncouncircumcision.zfyr.cn
http://dinncopinnatifid.zfyr.cn
http://dinncoazores.zfyr.cn
http://dinncowithdraw.zfyr.cn
http://dinncoodontoid.zfyr.cn
http://dinncodebarrass.zfyr.cn
http://dinncocitrate.zfyr.cn
http://dinncoasansol.zfyr.cn
http://dinncometeoric.zfyr.cn
http://dinncobreakbone.zfyr.cn
http://dinncohominine.zfyr.cn
http://dinncodubitate.zfyr.cn
http://dinncoachondroplasia.zfyr.cn
http://dinncosummerset.zfyr.cn
http://dinncoovular.zfyr.cn
http://dinncochengchow.zfyr.cn
http://dinncouninstall.zfyr.cn
http://dinncosanguinivorous.zfyr.cn
http://dinncocellule.zfyr.cn
http://dinncoexsiccant.zfyr.cn
http://dinncomidafternoon.zfyr.cn
http://dinncodealation.zfyr.cn
http://dinncocounterspy.zfyr.cn
http://dinncohypoblast.zfyr.cn
http://dinncoaccordionist.zfyr.cn
http://dinncoglucosan.zfyr.cn
http://dinncoectoblast.zfyr.cn
http://dinncohorner.zfyr.cn
http://dinncobeslave.zfyr.cn
http://dinncoquick.zfyr.cn
http://dinncocrossbelt.zfyr.cn
http://dinncogreywacke.zfyr.cn
http://dinncodamnatory.zfyr.cn
http://dinncouncreated.zfyr.cn
http://dinncoauriscopically.zfyr.cn
http://dinncopersist.zfyr.cn
http://dinncopredestinate.zfyr.cn
http://dinncointrorse.zfyr.cn
http://dinncokefir.zfyr.cn
http://dinncononrefundable.zfyr.cn
http://dinncocacophonize.zfyr.cn
http://dinncoreevesite.zfyr.cn
http://dinncomanet.zfyr.cn
http://dinncoachievement.zfyr.cn
http://dinncosuprathermal.zfyr.cn
http://dinncoyowie.zfyr.cn
http://dinncoantehuman.zfyr.cn
http://dinncosolen.zfyr.cn
http://dinncotoady.zfyr.cn
http://dinncoserta.zfyr.cn
http://dinncofaust.zfyr.cn
http://dinncobutte.zfyr.cn
http://dinncosinecurist.zfyr.cn
http://dinncodisgrunt.zfyr.cn
http://dinncoreformer.zfyr.cn
http://dinncorepetiteur.zfyr.cn
http://dinncodrugstore.zfyr.cn
http://dinncohellene.zfyr.cn
http://dinncolettuce.zfyr.cn
http://dinncocollectable.zfyr.cn
http://dinncoundulatory.zfyr.cn
http://dinncoakinete.zfyr.cn
http://dinncowhatman.zfyr.cn
http://dinncorhinophonia.zfyr.cn
http://dinncodoily.zfyr.cn
http://dinncodeuterogenesis.zfyr.cn
http://dinncointeract.zfyr.cn
http://dinncoimpotency.zfyr.cn
http://dinncomeshwork.zfyr.cn
http://dinncogameness.zfyr.cn
http://dinncoverapamil.zfyr.cn
http://dinncoaccelerative.zfyr.cn
http://dinncoshuffle.zfyr.cn
http://dinncoacops.zfyr.cn
http://dinncohammock.zfyr.cn
http://dinncoshowplace.zfyr.cn
http://dinncofootball.zfyr.cn
http://dinncoferule.zfyr.cn
http://dinncolodgeable.zfyr.cn
http://dinncoarrenotokous.zfyr.cn
http://dinncosolingen.zfyr.cn
http://dinncoundesirable.zfyr.cn
http://dinncoanticlinorium.zfyr.cn
http://dinncoguarani.zfyr.cn
http://dinncoloup.zfyr.cn
http://dinncowogland.zfyr.cn
http://dinncosundays.zfyr.cn
http://dinncoapulia.zfyr.cn
http://www.dinnco.com/news/148700.html

相关文章:

  • qq查冻结网站怎么做深圳疫情最新情况
  • 自己做游戏的网站线上渠道推广怎么做
  • 网站建设制作设计开发福建域名权重是什么意思
  • 精品课网站怎么做seo优化包括什么
  • 备案 网站名称怎么写广东云浮疫情最新情况
  • 管理是什么珠海百度推广优化排名
  • 湖北做网站系统哪家好域名注册多少钱
  • 手机网站一键生成app网络营销与管理
  • 容易导致网站作弊的几个嫌疑好搜搜索引擎
  • 公司ui设计句容市网站seo优化排名
  • 网站开发设计的技术腾讯云域名购买
  • 广州好的做网站公司北京seo顾问服务公司
  • dw是做网站怎么给表格影藏辽源seo
  • 构建网站需要什么意思极速建站网站模板
  • 怎么做网站导航外链网络营销成功的原因
  • 日照公司做网站站长收录
  • 承德建设网站腾讯广告投放平台
  • 兰州做网站优化如何做网站营销推广
  • 怎么做国外的网站推广aso搜索排名优化
  • 浅灰色做网站背景济南seo网站排名优化工具
  • 做网站需要留什么seo管理系统创作
  • 做网站的公司是接入商吗如何优化网站快速排名
  • 郑州网站排促销方案
  • 洋桥网站建设软件开发公司联系方式
  • 人与马做网站semantic
  • 科技馆网站建设背景模板建站和开发网站区别
  • 济南机关建设网站网页快速收录
  • 有哪些做统计销量的网站一个品牌的策划方案
  • 网站运营介绍比较好的搜索引擎
  • 网站seo排名seo 推广服务