iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何使用Python面向对象做个小游戏
  • 644
分享到

如何使用Python面向对象做个小游戏

2023-06-15 18:06:32 644人浏览 泡泡鱼

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

摘要

这篇文章主要讲解了“如何使用python面向对象做个小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Python面向对象做个小游戏”吧!我们今天同样实现一个小游戏,这个小游戏非常

这篇文章主要讲解了“如何使用python面向对象做个小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Python面向对象做个小游戏”吧!

我们今天同样实现一个小游戏,这个小游戏非常有名,我想大家都应该玩过。它就是tic tac  toe,我们打开chrome搜索一下就可以直接找到游戏了。

如何使用Python面向对象做个小游戏

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

课题

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

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

如何使用Python面向对象做个小游戏

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

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

如何使用Python面向对象做个小游戏

知识点

面向对象

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

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

比如:

class Game:     pass

构造函数

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

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

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

类方法

既然是类,自然会有属于类的类方法。类方法的定义和普通函数的定义是一样的,唯一不同的是它写在类的内部,并且第一个参数默认是self。self这个关键字相当于Java当中的this,指代的就是运行的时候调用方法的实例。

比如我们给Game这个类实现一个添加玩家的方法:

class Game:     def __init__(self):         self.board = Board()         self.players = []         self.markers = ['O', 'X']         self.numbers = [1, -1]       def add_player(self, player):         if player == 'h' or player == 'human':             self.players.append(HumanPlayer())         elif player == 'r' or player == 'random':             self.players.append(RandomPlayer())

我们看下add_player这个方法内部的逻辑,我们在这个方法当中通过self关键字调用了类实例当中的变量。这就是为什么我们需要设定一个self参数的原因,当我们调用的时候,并不需要理会self这个参数,它是Python自动为我们填充的。

当然我们定义类方法的时候也可以定义没有self参数的方法,只不过这样的方法不再属于类的实例,而属于类本身。我们想要调用的话,只能通过类名来访问。

比如:

class Test:     def say():         print("hello world")

在Test这个类当中我们实现了一个没有self关键字的say方法,如果我们通过Test的实例去调用它一定会出错。因为我们在通过实例调用方法的时候,Python会自动为我们把实例作为第一个参数传入。这样就导致了接受和传输的参数对应不上,于是引发报错,如果我们想要调用这个say方法,应该这样:

Test.say()

也就是说这个方法不再属于类创建的实例,而属于类本身。可以理解成Java类当中的static关键字修饰的方法。

方法的方法

Python当中对于方法的定义是比较灵活的,我们可以给一个类创建方法,同样也可以在一个方法的内部创建另外一个方法。比如下面这个例子:

def outer(arg1, arg2):          def inner(arg1, arg2):         return arg1 + arg2          return inner(arg1, arg2)

由于Python支持函数式编程,所以方法内部的方法还可以实现像是闭包、  装饰器等等功能。不过这里我们用不到那么高端的用法,只需要会最基本的就可以了。最基本的也就是在函数内部定义一个函数,主要在这个inner函数当中是可以使用outer当中的定义的变量的。比如:

def outer(arg1):          arg2 = 10     def inner(arg1):         return arg1 + arg2          return inner(arg1)

上述的代码没有问题,不过还有一点需要注意。在inner当中虽然可以访问到outer中定义的参数和变量,但是它是不可以修改的。如果想要修改,需要使用nonlocal关键字声明这是一个外层变量。

比如:

def outer(arg1):          arg2 = 10     def inner(arg1):         nonlocal arg2         arg2 += 1         return arg1 + arg2          return inner(arg1)

通过在方法内实现方法,可以进一步简化函数内部代码的逻辑,把一些很复杂的函数功能进行进一步的拆分和简化。了解这个用法,也是后面学习闭包、函数式编程等进阶内容的基础。

感谢各位的阅读,以上就是“如何使用Python面向对象做个小游戏”的内容了,经过本文的学习后,相信大家对如何使用Python面向对象做个小游戏这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 如何使用Python面向对象做个小游戏

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

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

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

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

下载Word文档
猜你喜欢
  • 如何使用Python面向对象做个小游戏
    这篇文章主要讲解了“如何使用Python面向对象做个小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Python面向对象做个小游戏”吧!我们今天同样实现一个小游戏,这个小游戏非常...
    99+
    2023-06-15
  • Java基于面向对象如何实现一个战士小游戏
    这篇文章主要讲解了“Java基于面向对象如何实现一个战士小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java基于面向对象如何实现一个战士小游戏”吧!一、思路首先,我们知道在系统中有个...
    99+
    2023-07-02
  • Java基于面向对象实现一个战士小游戏
    目录一、思路二、代码实现设计一个游戏系统,在该系统当中拥有战士 Soldier 角色;,每个角色拥有自己的名字 name 、等级 level、生命力 hp ,攻击力 atk、防御力 ...
    99+
    2024-04-02
  • 如何使用python做一个罚点球小游戏
    本篇内容介绍了“如何使用python做一个罚点球小游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在学习了一点 Python 基础之后,我...
    99+
    2023-06-30
  • 用python做简单的小游戏,如何用python写小游戏
    大家好,小编来为大家解答以下问题,初学者怎么用python写简单小游戏教程,如何用python编写一个简单的小游戏,今天让我们一起来看看吧! 1、python简单小游戏代码   1、Python猜拳小游戏代码:   2、import r...
    99+
    2023-09-08
    人工智能
  • 原生JS面向对象实现打字小游戏
    本文实例为大家分享了JS面向对象实现打字小游戏的具体代码,供大家参考,具体内容如下 Demo介绍 通过键盘点击下落小球所显示的数字,小球刷新再任意位置重新掉落。并且,每五个球后掉落速...
    99+
    2024-04-02
  • JS实战面向对象贪吃蛇小游戏示例
    目录思考一、贪吃蛇效果图二、贪吃蛇分析2.1 开始游戏功能2.2 运动功能2.2.1 蛇的不同方向的运动2.2.2 键盘控制方向运动功能2.3 吃食物功能2.3.1 食物的产生2.3...
    99+
    2024-04-02
  • 原生JS面向对象实现打砖块小游戏
    本文实例为大家分享了JS实现打砖块小游戏的具体代码,供大家参考,具体内容如下 通过面向对象,通过修改对JS的调用次数可直接设置打砖块游戏的个数 小球的反弹速度以及反弹方向都设置了随机...
    99+
    2024-04-02
  • 教你使用python做一个“罚点球”小游戏
    在学习了一点 Python 基础之后,我们可以做一个罚点球的小游戏,大概流程是这样: 每一轮,你先输入一个方向射门,然后电脑随机判断一个方向扑救。方向不同则算进球得分,方向相同算扑救...
    99+
    2024-04-02
  • 如何使用Python编写小游戏?
    大家好,我是沐尘而生,如果你是一个热爱编程的小伙伴,又想尝试游戏开发,那么这篇文章一定能满足你的好奇心。不废话,让我们马上进入Python游戏开发的精彩世界吧! Python游戏开发的魅力 编写小游...
    99+
    2023-08-31
    python pygame 开发语言
  • JavaScript面向对象编程小游戏之贪吃蛇的示例分析
    这篇文章主要为大家展示了“JavaScript面向对象编程小游戏之贪吃蛇的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript面向对象编程...
    99+
    2024-04-02
  • python面向对象的使用案例
    这篇文章给大家分享的是有关python面向对象的使用案例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。面向对象1. 创建支持With语句的对象我们都知道如何使用打开或关闭语句,例如打开文件或获取锁,但是如何实现自...
    99+
    2023-06-27
  • Python面向对象的类和对象怎么使用
    这篇文章主要介绍“Python面向对象的类和对象怎么使用”,在日常操作中,相信很多人在Python面向对象的类和对象怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python面向对象的类和对象怎么使用...
    99+
    2023-06-22
  • 如何使用Python中的面向对象设计模式
    如何使用Python中的面向对象设计模式,需要具体代码示例概述:在Python编程中,面向对象设计模式是非常重要的一个概念。它提供了一种结构化的方法来解决问题,并使得代码更易于理解、维护和扩展。本文将介绍几种常见的面向对象设计模式,并提供具...
    99+
    2023-10-22
    Python 设计模式 面向对象
  • Python面向对象之为何要用类
      对于非程序员科班出身的技术人员,理解很多开发思想领域里面的事情,其实是一件挺痛苦的事情,直到接触到了Python当中的类,我才明白了什么是面向对象,更多的理解还是要通过实际的代码操练才能够慢慢的掌握。今天记录一下什么是面向对象,在Pyt...
    99+
    2023-01-31
    要用 面向对象 Python
  • 如何使用JavaScript进行面向对象编程
    这篇文章主要为大家展示了“如何使用JavaScript进行面向对象编程”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Jav...
    99+
    2024-04-02
  • Python还能这么玩之用Python做个小游戏的外挂
    目录一、前言二、工具的准备三、开挂步骤四、实现开挂,自动做菜一、前言 我打开4399小游戏网,点开了一个不知名的游戏,唔,做寿司的,有材料在一边,客人过来后说出他们的要求,你按照菜单...
    99+
    2024-04-02
  • 如何用C语言做贪吃蛇小游戏
    这篇文章主要讲解了“如何用C语言做贪吃蛇小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用C语言做贪吃蛇小游戏”吧!C语言作为计算机编程最初学的语言,作为高级语言的C语言,那么它又可...
    99+
    2023-06-16
  • 如何使用Python实现愤怒小鸟游戏
    这篇文章给大家分享的是有关如何使用Python实现愤怒小鸟游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。开发工具Python版本:3.6.4相关模块:pygame模块;以及一些python自带的模块。环境搭建...
    99+
    2023-06-15
  • 详解Python使用OpenCV如何确定一个对象的方向
    目录1.代码实现2.输出图像3.了解坐标轴4.计算0到180度之间的方向在本教程中,我们将构建一个程序,该程序可以使用流行的计算机视觉库 OpenCV 确定对象的方向(即以度为单位的...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作