在国外网站上找到一个练习Python的小游戏感觉不错,自己实现了一下。

通过该练习你能学到:

  1. 元组
  2. 字典
  3. 简单定义函数和封装
  4. 条件控制语句

游戏说明

以下是3个房间和1个花园:

Hall 客厅 有一把钥匙,Kitchen 厨房 有一只怪物,Dinning Room 餐厅 有一瓶药水,Garden 花园

完成游戏条件:拿到钥匙和药水到达花园并躲避怪物。

游戏操作指令:
      go [direction]
      get [item]

[direction] 包含:east, west, south, north

[item] 包含:key, potion

游戏源码

#! python3
"""
author: laoxu
""" # 游戏说明
def showInstructions():
print('''
RPG Game
========
完成游戏条件:拿到钥匙和药水到达花园并躲避怪物。 命令:
go [direction]
get [item]
'''
) # 打印当前房间和背包信息
def showCurrentRoom(room, bag):
print('You are in the %s' % room)
print('Inventory: ', bag) rooms = {
'Hall': {
'south': 'Kitchen',
'east': 'Dinning Room',
'item': 'key'
},
'Kitchen': {
'north': 'Hall',
'item': 'monster'
},
'Dinning Room': {
'west': 'Hall',
'south': 'Garden',
'item': 'potion'
},
'Garden': {
'north': 'Dinning Room'
}
} # 初始化房间
currentRoom = 'Hall' # 初始化物品栏
inventory = [] # 打印游戏帮助
showInstructions() print('You are in the %s' % currentRoom)
print('Inventory: ', inventory)
print('You see a key') while True:
# 玩家进入厨房,游戏结束
if 'item' in rooms[currentRoom] and 'monster' in rooms[currentRoom]['item']:
print('你被怪物抓住了...游戏结束!')
break
# 玩家拿到钥匙和药水进入花园,游戏结束
if currentRoom == 'Garden' and 'key' in inventory and 'potion' in inventory:
print('你逃脱了房子!你赢了!')
break # 接收操作步骤
step = input() # 客厅->厨房
if currentRoom == 'Hall' and step == 'go south':
currentRoom = 'Kitchen'
continue
# 客厅->餐厅
elif currentRoom == 'Hall' and step == 'go east':
currentRoom = 'Dinning Room'
# 厨房->客厅
elif currentRoom == 'Kitchen' and step == 'go north':
currentRoom = 'Hall'
# 餐厅->客厅
elif currentRoom == 'Dinning Room' and step == 'go west':
currentRoom = 'Hall'
# 餐厅->花园
elif currentRoom == 'Dinning Room' and step == 'go south':
currentRoom = 'Garden'
# 花园->餐厅
elif currentRoom == 'Garden' and step == 'go north':
currentRoom = 'Dinning Room'
# 拿到钥匙
elif currentRoom == 'Hall' and 'key' not in inventory and step == 'get key':
inventory.append('key')
print('key got!')
# 拿到药水
elif currentRoom == 'Dinning Room' and 'potion' not in inventory and step == 'get potion':
inventory.append('potion')
print('potion got!') # 打印房间和物品栏
showCurrentRoom(currentRoom, inventory) if currentRoom == 'Hall' and 'key' not in inventory:
print('You see a key')
if currentRoom == 'Dinning Room' and 'potion' not in inventory:
print('You see a potion') continue

运行效果

Python之初级RPG小游戏的更多相关文章

  1. 用Python设计一个经典小游戏

    这是关于Python的第9篇文章,介绍如何用Python设计一个经典小游戏:猜大小. 在这个游戏中,将用到前面我介绍过的所有内容:变量的使用.参数传递.函数设计.条件控制和循环等,做个整体的总结和复习 ...

  2. Python开发接水果小游戏

    我研发的Python游戏引擎Pylash已经更新到1.4了.如今我们就来使用它完毕一个极其简单的小游戏:接水果. 下面是游戏截图: 游戏操作说明:点击屏幕左右两边或者使用键盘方向键控制人物移动.使人物 ...

  3. python【控制台】小游戏--贪吃蛇

    传统贪吃蛇相信大家都玩过,也是一款很老很经典的游戏,今天我们用python控制台实现 项目有很多bug没有解决,因为本人一时兴起写的一个小游戏,所以只是实现可玩部分功能,并没有花较多的时间和精力去维护 ...

  4. python成语接龙小游戏

    上一篇讲了小游戏的坑现在把源码放出来 #coding:utf-8 import string import pypinyin import sys import random print(" ...

  5. 【Python】猜数小游戏(文件操作)

    人生苦短,我用Python 关键词 1.多用户 2.字典记录所有成绩 3.每次游戏轮数&总游戏次数&平均每次游戏需要多少轮 字典Dictionary.列表List.元组Tuple差异化 ...

  6. python做一个数独小游戏

    最近看了下python的一些知识,在这里记载一下. 1.首先是安装,在官网下载最新的版本3.6,安装的时候要注意在下面勾选上ADD TO PATH,安装的时候会自动写入到环境变量里面,如果没有勾选,可 ...

  7. 【Python】猜数小游戏

    有点沙雕 temp=input("猜猜我心里想的是哪个数字?") guess=int (temp) if guess==8: print("你是我肚里的蛔虫么?" ...

  8. Python制作塔防小游戏

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块.

  9. python——成语接龙小游戏

    小试牛刀的简易成语接龙. 思路—— 1.网上下载成语字典的txt版本 2.通过python进行处理得到格式化的成语,并整理成字典(python字典查找速度快) 3.python程序,查找 用户输入的最 ...

  10. python学习-6 猜拳小游戏

    import random # 调用随机数模块 pc = random.randint(1,3) # 产生1-3的随机数 print("来玩个猜拳游戏吧!") a = '石头' b ...

随机推荐

  1. k8s~istio的安装与核心组件

    安装istio 在线安装:https://istio.io/latest/docs/setup/getting-started/#download 或者直接在这里下载:https://github.c ...

  2. [转帖]DevOps & CI/CD 常见面试题汇总

    https://www.cnblogs.com/Dev0ps/p/15123168.html 什么是 DevOps答:用最简单的术语来说,DevOps 是产品开发过程中开发(Dev)和运营(Ops) ...

  3. [转帖]IPv6地址解析库,窥探IPv6地址中包含的信息

    https://zhuanlan.zhihu.com/p/479028720 大家好,我是明说网络的小明同学. 今天和大家介绍一个IPv6 地址解析库IPv6 address Parser :http ...

  4. [转帖]队列深度对IO性能的影响

    https://www.modb.pro/db/43710 几年前一个客户的Oracle数据库经常HANG,老白帮他分析了一下,结论是存储老化,性能不足以支撑现有业务了.正好用户手头有个华为S5600 ...

  5. [转帖]linux 调优各项监控指标小记

    https://z.itpub.net/article/detail/8A4E4E96522BD59D45AB5A4CA442EDB3 自开始负责生产环境部署,中间遇到了若干线上环境内存以及CPU的问 ...

  6. ST 表并查集小记🐤

    ST 表维护并查集,在 $O(n \log n)$ 时间内处理 $[l_1,r_1]$ 内每个点依次向 $[l_2,r_2]$ 中的点连边(共连 $r_1-l_1+1$ 条边) 首先变成对于 $l_1 ...

  7. docker上部署启动RabbitMQ

    在docker上部署启动RabbitMQ及使用 一.docker上部署启动RabbitMQ 1.查询rabbitmq镜像 docker search rabbitmq:management 2.拉取r ...

  8. [1] HEVD 学习笔记:HEVD 环境搭建

    1. HEVD 概述 + 环境搭建 ​ HEVD作为一个优秀的内核漏洞靶场受到大家的喜欢,这里选择x86的驱动来学习内核漏洞,作为学习笔记记录下来 实验环境 环境 备注 调试主机操作系统 Window ...

  9. python随机种子seed的作用(强化学习常用到)

    先上代码 import math import gym from gym import spaces, logger from gym.utils import seeding import nump ...

  10. C/C++ 病毒破坏手法总结

    针对注册表恶意修改: #include <stdio.h> #include <Windows.h> // 禁用系统任务管理器 void RegTaskmanagerForbi ...