做网站知名的学习网站,手机网站建设服务合同,凡客诚品官网怎么登录,怎么创建免费自己的网站平台井字棋是一个经典的小游戏#xff0c;在九宫格上玩家轮流画OXO#xff0c;当每列或每行或是两个对角成一线时便是获胜。今天就用Python编写一个井字棋小游戏#xff0c;与电脑对战。程序执行画面如下图所示:程序提供了两种人工智能选择#xff0c;一个是强人工智能另一个是…井字棋是一个经典的小游戏在九宫格上玩家轮流画OXO当每列或每行或是两个对角成一线时便是获胜。今天就用Python编写一个井字棋小游戏与电脑对战。程序执行画面如下图所示:程序提供了两种人工智能选择一个是强人工智能另一个是弱人工智能选择强人工智能如果计算机先下玩家可以说是没有赢的可能因此特地弄出一个弱人工智能选项一来增加游戏的趣味一来可以比较这两者在程序设计上的差异。选择弱人工智能玩家通常可以简单的获胜。游戏一开始还须得选择O或X然后会随机选择玩家先下或是计算机先下。整个程序最主要的核心在于如何决定计算机如何落子也就是人工智能实现的部分这部分的程序落在底下程序function:getComputerMove(self,board) 是实现强人工智能的方法。他有几个判断步骤首先第一步骤程序代码165~170 先判断该次落子计算机是否有获胜的可能用循环寻访所有可落子地方若有可获胜的可能则在该地方落子第二步骤程序代码172~178 先判断该次落子玩家是否有获胜的可能用循环寻访所有可落子地方若玩家有可获胜的可能则在该地方落子目的是为了阻止玩家获胜若上述两个动作都不成立则接着判断以下步骤落子第三步骤程序代码180~183[1,3,7,9]代表着在九宫格的四个角的编号此段程序在此四个角落随机选择一地方下子第四步骤程序代码185~187[5]代表着在九宫格的中间位置的编号此段程序判断中间位置是否可落子第五步骤程序代码189~190[2,4,6,8]代表着在九宫格的四个边的编号此段程序在此四个边落随机选择一地方下子透过判断以上五个步骤的落子选择ˊ可以让计算机无论是先手或是后手都可以处于不败之地。底下程序function:getComputerMove_2(self,board) 则是实现弱人工智能的方法其实也就是改变上述强人工智能的方法只保留第一步骤规则其余落子则是随机选择。另一个重要的程序片段如下266~276用来判断是否胜出也就是判断每列或每行或是对角线是否有相同的O或X即可获胜。这是一个小游戏的范例或许也称不上人工智能主要是拿来练习Python程序的应用。作者Ashing Tsai更多精彩文章请关注微信公众号易心Microbit编程