两百行代码解决!使用Python面向对象做个小游戏

由于我们使用Python来实现,并且不会制作UI界面,所以不会这么好看。虽然不够好看,但是逻辑却是一样的。并且和之前我们做的那些小游戏相比,今天做的这个游戏有一个非常大的特点就是非常适合设计AI。我们只需要用很简单的算法就可以做出一个还不错的ai来。当然我们循序渐进,先从最简单的游戏功能本身开始。

课题

今天的课题就是使用Python编写一个不带UI界面的tic tac toe的小游戏。

这一次,游戏当中会涉及两方,所以我们需要有判断游戏胜负手的相关逻辑。除此之外,由于涉及两个玩家,所以我们需要设计一个AI,让我们可以和电脑进行游戏。最后实现的效果差不多应该是这样的:

也就是在游戏一开始的时候,支持玩家选择参与游戏的两方。这里我们先把AI算法的设计放一放,可以先做出随机选择的弱智AI。

游戏开始之后,双方交替行动,每次执行都会在屏幕上输出相应的具体信息,以及棋盘当前的情况。

知识点

面向对象

tic tac的游戏虽然简单,但是它涉及的内容还是挺多的。需要棋盘,还需要玩家,还需要添加玩家以及执行步骤等等操作。这些逻辑如果不加以封装,全部都写成面向过程的话,会使得代码非常的混乱。很明显的,我们需要使用面向对象,对这些逻辑进行抽象和封装,来达到简化编码以及思考的目的。

我们目前的设计比较简单,也不需要用到继承以及抽象类等等高端的用法,就使用最基本的面向对象定义类就可以了。在Python当中定义一个类非常简单,通过关键字class完成。

比如:


  1. class Game: 
  2.     pass 

构造函数

一般来说当我们定义一个类的时候都需要为它设计构造函数,构造函数就是当我们创建这个类的实例的时候调用的方法。它会替我们完成一些初始化的工作。Python当中类的构造函数是__init__,我们直接在类当中实现它即可。


  1. class Game: 
  2.     def __init__(self): 
  3.         self.board = Board() 
  4.         self.players = [] 
  5.         self.markers = ['O''X'
  6.         self.numbers = [1, -1] 

比如在上面这个例子当中,我们就为Game这个类做了一些初始化的设定。比如给它赋予一个board以及players等等变量。

【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章