通过构建简单的骰子游戏学习如何使用Python编程

Python是一种通用的编程语言,可以用于创建桌面应用程序、3D图形、视频游戏,甚至是网站。它是一种很棒的第一编程语言,因为它很容易学习,而且比复杂的语言(如C、C++或Java)更简单。Python的强大和健壮足以创建高级应用程序,而且几乎在所有使用计算机的行业中都在使用它。这使得Python成为老少皆宜的语言,无论您是否有编程经验。

安装Python

在学习Python之前,您可能需要安装它。

1)Linux:如果您使用Linux,则已经包含Python,但是请确保您具有Python 3。要检查安装的版本,请打开一个终端窗口,然后键入:

python3 -V

如果找不到该命令,则需要从程序包管理器中安装Python 3。

2)MacOS:如果你使用的是Mac,按照上面的Linux操作系统说明来看看你是否安装了Python 3。MacOS没有内置的包管理器,所以如果没有找到python3,就从python.org/downloads/mac-osx安装它。虽然macOS已经安装了python2,但是您应该学习python3。

3)Windows:微软Windows目前不支持Python。从python.org/downloads/windows安装它。确保在安装向导中选择Add Python to PATH。

运行IDE

要使用Python编写程序,您真正需要的只是一个文本编辑器,但是拥有集成开发环境(IDE)会很方便。IDE将文本编辑器与一些友好且有用的Python功能集成在一起。IDLE 3和NINJA-IDE是要考虑的两个选项。

IDLE 3

Python带有一个称为IDLE的基本IDE。

IDLE

它具有关键字突出显示以帮助检测输入错误,并具有“运行”按钮以快速,轻松地测试代码。要使用它:

LinuxmacOS上,启动终端窗口并键入idle3

Windows上,从“开始”菜单启动Python 3

1)如果在“开始”菜单中没有看到Python,请在“开始”菜单中键入cmd来启动Windows命令提示符,然后键入C:\Windows\py.exe。

2)如果这样不起作用,请尝试重新安装Python。确保在安装向导中选择“将Python添加到PATH”。请参阅docs.python.org/3/using/windows.html以获得详细说明。

3)如果还是不行,那就使用Linux。它是免费的,只要你把你的Python文件保存到u盘,你甚至不需要安装它来使用它。

Ninja-IDE

Ninja-IDE是出色的Python IDE。它具有关键字突出显示功能,可帮助检测拼写错误,引号和括号是否完整,从而避免语法错误,行号(调试时很有用),缩进标记以及“运行”按钮来快速轻松地测试代码。

Ninja-IDE

要使用它:

1)安装Ninja-IDE。如果您使用的是Linux,最简单的方法就是使用软件包管理器;否则,请从NINJA-IDE的网站下载正确的安装程序版本。

2)启动Ninja-IDE。

3)转到“Edit”菜单,然后选择“Preferences”。

4)在“Preferences”窗口中,单击“Execution”选项卡。

5)在“ Execution”选项卡中,将python更改为python3。

Ninja-IDE中的Python3

告诉Python要做什么

关键字(Keywords)告诉Python您想要它做什么。在“IDLE”或“Ninja”中,转到“File”菜单并创建一个新文件。Ninja用户:不要创建新项目,而要创建一个新文件。

在新的空文件中,将其键入IDLE或Ninja:

print("Hello world.")

1)如果使用的是IDLE,请转到“Run”菜单,然后选择“Run module”选项。

2)如果使用的是Ninja,请单击左侧按钮栏中的“Run File”按钮。

在Ninja中运行文件

关键字print告诉Python打印出您在括号和引号中输入的所有文本。

但这并不令人兴奋。在其核心,Python只能访问基本的关键字,如printhelp、基本数学函数等。

使用import关键字可以加载更多关键字。在IDLE或Ninja中启动一个新文件,并将其命名为pen.py。

警告:请勿调用文件turtle.py,因为turtle.py是包含您要控制的turtle程序的文件的名称。命名文件turtle.py会使Python感到困惑,因为它会认为您想导入自己的文件。

将此代码键入您的文件,然后运行它:

import turtle

Turtle是一个有趣的模块。将此添加到您的文件:

turtle.begin_fill()
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.end_fill()

看看您可以使用turtle模块绘制哪些形状。

要清除乌龟绘图区域,请使用turtle.clear()关键字。您认为关键字turtle.color(“blue”)有什么用?

尝试更复杂的代码:

import turtle as t
import time

t.color("blue")
t.begin_fill()

counter=0

while counter < 4:
    t.forward(100)
    t.left(90)
    counter = counter+1

t.end_fill()
time.sleep(2)

一旦您运行了您的脚本,就到了探索更好的模块的时候了。

通过制作游戏学习Python

要了解更多关于Python如何工作的知识,并为使用图形进行更高级的编程做准备,让我们将重点放在游戏逻辑上。在本教程中,我们还将了解一些关于计算机程序是如何通过创建一个基于文本的游戏来构建的,在这个游戏中,计算机和玩家掷一个虚拟骰子,掷得最高的一方获胜。

规划游戏

在编写代码之前,重要的是要考虑要编写什么。许多程序员在开始编写代码之前编写简单的文档,因此他们有一个编程目标。如果您随游戏一起提供了文档,则骰子程序的外观如下:

1)开始掷骰子游戏,按Return或Enter键开始掷骰子。

2)结果将显示在屏幕上。

3)系统将提示您再次掷骰子或退出。

这是一个简单的游戏,但是文档向您介绍了许多您需要做的事情。例如,它告诉您需要以下组件来编写此游戏:

1)玩家:你需要一个人来玩这个游戏。

2)AI:计算机也必须掷骰子,否则玩家无人赢或输。

3)随机数:常见的六面骰子呈现1到6之间的随机数。

4)运算符:简单的数学运算可以比较一个数字和另一个数字,看哪个数字高。

5)输赢信息。

6)提示重新玩或退出。

制作骰子游戏alpha

很少有程序一开始就具备所有的功能,所以第一个版本只实现了基本的功能。首先是几个定义:

变量是可以更改的值,在Python中经常使用它们。每当您需要程序记住某些内容时,就使用变量。实际上,几乎所有与代码一起使用的信息都存储在变量中。例如,在数学方程x + 5 = 20中,变量是x,因为字母x是值的占位符。

integer是数字;它可以是正数或负数。例如,1和-1都是整数。14、21甚至10947也是如此。

Python中的变量易于创建且易于使用。骰子游戏的初始版本使用两个变量:player和ai。

在名为dice_alpha.py的新文本文件中键入以下代码:

import random

player = random.randint(1,6)
ai = random.randint(1,6)

if player > ai :
    print("You win")  # notice indentation
else:
    print("You lose")

启动游戏以确保其正常运行。

这个基本版的骰子游戏运行得很好。它完成了游戏的基本目标,但感觉并不像游戏。玩家永远不知道他们掷出了什么,也不知道电脑掷出了什么,即使玩家想再玩一次,游戏也会结束。

这在软件的第一个版本(称为alpha版本)中很常见。既然您对完成主要部分(滚动骰子)很有信心,现在就可以将其添加到程序中了。

改进游戏

在游戏的第二个版本(称为Beta版)中,进行了一些改进,使其看起来更像游戏。

1)描述结果

比起仅仅告诉玩家他们赢了还是没赢,如果他们知道自己赢了什么就更有趣了。试着对你的代码做如下修改:

player = random.randint(1,6)
print("You rolled " + player)

ai = random.randint(1,6)
print("The computer rolled " + ai)

如果您现在运行游戏,它将崩溃,因为Python认为认为您正在尝试添加字母“ You roll”以及当前在player变量中存储的任何数字。

您必须告诉Python将player和ai变量中的数字视为句子中的单词(字符串),而不是数学方程式中的数字(整数)。

对您的代码进行以下更改:

player = random.randint(1,6)
print("You rolled " + str(player) )

ai = random.randint(1,6)
print("The computer rolled " + str(ai) )

立即运行游戏以查看结果。

2)放慢速度

电脑很快,人类有时也会很快,但在游戏中,制造悬念往往更好。您可以使用Python的time函数在悬念部分降低游戏速度。

import random
import time

player = random.randint(1,6)
print("You rolled " + str(player) )

ai = random.randint(1,6)
print("The computer rolls...." )
time.sleep(2)
print("The computer has rolled a " + str(player) )

if player > ai :
    print("You win")  # notice indentation
else:
    print("You lose")

启动您的游戏以测试您的更改。

3)检测平局

如果您玩够了游戏,您会发现,即使您的游戏看似正常运行,它实际上也存在一个错误:当玩家和计算机掷相同的数字时,它不知道该怎么办。

要检查一个值是否等于另一个值,Python使用==。这是两个等号,而不是一个。如果您只使用一个=,Python会认为您在尝试创建一个新变量,但实际上您是在尝试进行数学运算。

当你想要有多于两个选择的时候,你可以使用Python的关键字elif,它的意思是else if。这允许您的代码检查某些结果是否为真,而不只是检查一件事是否为真。

像这样修改您的代码:

if player > ai :
    print("You win")  # notice indentation
elif player == ai:
    print("Tie game.")
else:
    print("You lose")

启动你的游戏几次,看看你是否可以和电脑平局。

编写最终版本的程序

骰子游戏的beta版本具有功能性,与alpha版本相比,它更像是一款游戏。

函数是可以作为独立单元调用的代码集合。函数很重要,因为大多数应用程序都有很多代码,但并不是所有代码都必须同时运行。函数使启动应用程序和控制什么时候发生什么成为可能。

将您的代码更改为此:

import random
import time

def dice():
    player = random.randint(1,6)
    print("You rolled " + str(player) )

    ai = random.randint(1,6)
    print("The computer rolls...." )
    time.sleep(2)
    print("The computer has rolled a " + str(ai) )

    if player > ai :
        print("You win")  # notice indentation
    else:
        print("You lose")

    print("Quit? Y/N")
    cont = input()

    if cont == "Y" or cont == "y":
        exit()
    elif cont == "N" or cont == "n":
        pass
    else:
        print("I did not understand that. Playing again.")

此版本的游戏询问玩家是否希望在玩完游戏后退出游戏。如果他们以Y或y响应,则会调用Python的exit函数,然后退出游戏。

更重要的是,您已经创建了自己的名为dice的函数。骰子功能不会立即运行。实际上,如果您在此阶段尝试游戏,它不会崩溃,但也不能完全运行。为了使dice函数真正起作用,您必须在代码中调用它。

将此循环添加到现有代码的底部。前两行仅用于上下文,强调缩进和不缩进的内容。密切注意缩进。

else:
        print("I did not understand that. Playing again.")

# main loop
while True:
    print("Press return to roll your die.")
    roll = input()
    dice()

While True代码块首先运行。因为从定义上讲True始终为true,所以此代码块始终运行,直到Python告诉它退出为止。

而True代码块是一个循环。它首先提示用户开始游戏,然后调用您的骰子功能。 游戏就是这样开始的。当骰子功能结束时,循环将再次运行或退出,具体取决于玩家如何回答提示。

使用循环运行程序是编写应用程序最常见的方法。该循环确保应用程序保持打开状态足够长的时间,以使计算机用户可以使用应用程序中的功能。

六一编程网

发表评论

Next Post

5大开源Python IDE

周四 6月 18 , 2020
Python无处不在。如今,它似乎为从主要网站到桌面实用程序再到企业软件的所有功能提供支持。Pyth […]

You May Like