前言
放下 Python 已经半年了,在期中考试之后,很快就要涉及算法初步了,我觉得通过 Python 的思维,对算法的学习有十分显著的帮助,便花费几小时写了这个 KillAliens 小游戏。
其中最重要的两个部分,分别是 分数的持续读写并运算 和 随机事件的生成 这两个部分,接下来我将详细讲述如何实现整个 KillAliens 小游戏以及这两个部分的实现过程。
基于
此 KillAilens 小游戏,灵感来源于我很久之前写的简单的 击杀外星人.py 这个只有不到 30 行的 简单文字表达 游戏,在 KillAilens 里,记分系统是 击杀外星人.py 没有的,同时使用了字典,使用键值对实现每个种类的 Ailen 对应一个属于自己的分数。
击杀外星人.py 可以在我的Python学习仓库内找到。
输出预览
欢迎来到 KillAliens 小游戏,字典已经初始化完成
接下来请输入内容
你的名字:Magneto
你好 Magneto ,接下来让我为你介绍游戏中有的 Alien 以及其对应的分数!
击杀 Big Alien 可以获得 10 分
击杀 Middle Alien 可以获得 5 分
击杀 A Alien 可以获得 2 分
击杀 Small Alien 可以获得 1 分
如果你想退出游戏,请输入 'q' 键,退出游戏,或输入其它任意值开始(继续)游戏。
当前你的分数是 0 分
请输入对应的 分数 以选择你要击杀的 Alien 击杀成功后,可获得指定分数
名称:Big Alien
对应分数:10
名称:Middle Alien
对应分数:5
名称:A Alien
对应分数:2
名称:Small Alien
对应分数:1
请注意,你有概率无法击杀 Alien 并且会因此结束游戏,并且对应分数越高,击杀几率越小。
请输入对应分数:1
你选择了 Small Alien
恭喜你 Magneto ,击杀成功,获得 1 分
当前总分:1.0 分
如果你想退出游戏,请输入 'q' 键,退出游戏,或输入其它任意值开始(继续)游戏。
当前你的分数是 1.0 分
请输入对应的 分数 以选择你要击杀的 Alien 击杀成功后,可获得指定分数
名称:Big Alien
对应分数:10
名称:Middle Alien
对应分数:5
名称:A Alien
对应分数:2
名称:Small Alien
对应分数:1
请注意,你有概率无法击杀 Alien 并且会因此结束游戏,并且对应分数越高,击杀几率越小。
请输入对应分数:10
你选择了 Big Alien
恭喜你 Magneto ,击杀成功,获得 10 分
当前总分:11.0 分
如果你想退出游戏,请输入 'q' 键,退出游戏,或输入其它任意值开始(继续)游戏。
当前你的分数是 11.0 分
请输入对应的 分数 以选择你要击杀的 Alien 击杀成功后,可获得指定分数
名称:Big Alien
对应分数:10
名称:Middle Alien
对应分数:5
名称:A Alien
对应分数:2
名称:Small Alien
对应分数:1
请注意,你有概率无法击杀 Alien 并且会因此结束游戏,并且对应分数越高,击杀几率越小。
请输入对应分数:10
你选择了 Big Alien
很遗憾 Magneto ,你尝试击杀 Big Alien 失败了,分数清零,退出游戏。
进程已结束,退出代码0
代码预览
############################
### Date 2022 May 14 ###
### Author Magneto ###
### Name KillAliens <——>
### Facility Windows 11 ###
### Language Python ###
############################
import random
aliens_name_and_mark = {
'Big Alien': '10',
'Middle Alien': '5',
'A Alien': '2',
'Small Alien': '1',
}
state_one = ['1', '2', '3', '4', '5']
The_mark = ['0']
print("欢迎来到 KillAliens 小游戏,字典已经初始化完成\n接下来请输入内容\n")
Your_name = input("你的名字:")
print(f"你好 {Your_name} ,接下来让我为你介绍游戏中有的 Alien 以及其对应的分数!")
for name, marks in aliens_name_and_mark.items():
print(f"\t击杀 {name} 可以获得 {marks} 分")
while True:
exit_the_game = input("如果你想退出游戏,请输入 'q' 键,退出游戏,或输入其它任意值开始(继续)游戏。")
if exit_the_game == 'q':
break
print(f"当前你的分数是 {The_mark[-1]} 分")
print("请输入对应的 分数 以选择你要击杀的 Alien 击杀成功后,可获得指定分数")
for name_2, makrs_2 in aliens_name_and_mark.items():
print(f"\t名称:{name_2}\n\t\t对应分数:{makrs_2}")
print("请注意,你有概率无法击杀 Alien 并且会因此结束游戏,并且对应分数越高,击杀几率越小。")
ChoiseAliens = input("请输入对应分数:")
if ChoiseAliens == '1':
state_two = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
The_Random = random.choice(state_two)
print("你选择了 Small Alien")
if The_Random in state_one:
print(f"恭喜你 {Your_name} ,击杀成功,获得 1 分")
value = The_mark[-1]
float_value = float(value)
end_value = float_value + 1
The_mark.append(end_value)
print(f"当前总分:{The_mark[-1]} 分\n\n\n")
del The_mark[-2]
else:
print(f"很遗憾 {Your_name} ,你尝试击杀 Small Alien 失败了,分数清零,退出游戏。")
break
if ChoiseAliens == '2':
state_two = ['1', '2', '3', '6', '7', '8']
The_Random = random.choice(state_two)
print("你选择了 A Alien")
if The_Random in state_one:
print(f"恭喜你 {Your_name} ,击杀成功,获得 2 分")
value = The_mark[-1]
float_value = float(value)
end_value = float_value + 2
The_mark.append(end_value)
print(f"当前总分:{The_mark[-1]} 分\n\n\n")
del The_mark[-2]
else:
print(f"很遗憾 {Your_name} ,你尝试击杀 A Alien 失败了,分数清零,退出游戏。")
break
if ChoiseAliens == '5':
state_two = ['1', '2', '6', '7', '8']
The_Random = random.choice(state_two)
print("你选择了 Middle Alien")
if The_Random in state_one:
print(f"恭喜你 {Your_name} ,击杀成功,获得 5 分")
value = The_mark[-1]
float_value = float(value)
end_value = float_value + 5
The_mark.append(end_value)
print(f"当前总分:{The_mark[-1]} 分\n\n\n")
del The_mark[-2]
else:
print(f"很遗憾 {Your_name} ,你尝试击杀 Middle Alien 失败了,分数清零,退出游戏。")
break
if ChoiseAliens == '10':
state_two = ['1', '6', '7', '8']
The_Random = random.choice(state_two)
print("你选择了 Big Alien")
if The_Random in state_one:
print(f"恭喜你 {Your_name} ,击杀成功,获得 10 分")
value = The_mark[-1]
float_value = float(value)
end_value = float_value + 10
The_mark.append(end_value)
print(f"当前总分:{The_mark[-1]} 分\n\n\n")
del The_mark[-2]
else:
print(f"很遗憾 {Your_name} ,你尝试击杀 Big Alien 失败了,分数清零,退出游戏。")
break
代码分析
未完待续
本文转自: https://fmcf.cc/technology/763/
本站仅做收录,版权归原作者所有。