项目三打怪兽游戏

目录

认识结构化程序设计

使用选择结构

if语句基本格式

if...else语句基本格式

if...elif...else语句基本格式

选择结构语句的嵌套

使用循环结构

while语句基本格式

for语句基本格式

循环结构语句的嵌套

循环控制语句

continue语句

pass语句

项目演练


认识结构化程序设计

使用选择结构

if语句基本格式
if 条件表达式:
      代码块

案例如下:

x = 10
if x > 5:
    print("x > 5")
 
if...else语句基本格式
if 条件表达式:
       代码块1
else:
       代码块2

判断一个数num是否为偶数,如下:

num = 6

if num % 2 == 0:
    print('这是一个偶数')
else:
    print('这是一个奇数')
 
if...elif...else语句基本格式
if 条件表达式1:
     代码块1
elif 条件表达式2:
      代码块2
elif 条件表达式N:
      代码块n
else:
     代码块n+1

判断用户输入的成绩等级如下

# 判断用户输入的成绩等级
score = int(input("请输入您的成绩:"))

if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 70:
    print("中等")
elif score >= 60:
    print("及格")
else:
    print("不及格")
 
选择结构语句的嵌套

if语句的嵌套是指if语句内部包含if语句,其格式如下:

if 条件表达式:
     代码块1
        if 条件表达式:
               代码块2
# 判断用户输入的成绩等级
score = int(input("请输入您的成绩:"))

if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 70:
    print("中等")
elif score >= 60:
    print("及格")
else:
    print("不及格")
 

上述代码是一个典型的嵌套案例

使用循环结构

while语句基本格式
while 条件:
    # 循环体
 

以下是计算 1 到 10 的和的例子

i = 1
sum = 0
while i <= 10:
    sum += i
    i += 1
print("1 到 10 的和为:", sum)
 
for语句基本格式
  1. 基本格式
for 变量 in 序列:
    # 循环体
 

以下是一个计算 1 到 10 的和的例子

sum = 0
for i in range(1, 11):
    sum += i
print("1 到 10 的和为:", sum)
 
  1. 通过序列索引迭代是指通过索引的方式,遍历一个序列中的每个元素

在 Python 中,可以使用 for 循环和 range() 函数来实现这种迭代方式

以下是一个遍历列表中每个元素的例子:

list = [1, 2, 3, 4, 5]
for i in range(len(list)):
    print(list[i])
 

相关知识用法

  • range() 是 Python 的一个内置函数,用于生成一个指定范围内的整数序列。它的基本语法格式如下:
range([start], stop[, step])

其中,参数 start 表示序列的起始值(默认为 0),stop 表示序列的结束值(不包含该值),step 表示序列中相邻两个数之间的差值(默认为 1)。

range() 函数返回一个可迭代的对象,其实际上是一个序列生成器。可以使用 list() 函数将其转换为列表,也可以直接在 for 循环中使用它。

以下是一些 range() 函数的使用示例:

# 生成一个从 0 到 9 的整数序列
for i in range(10):
    print(i)

# 生成一个从 1 到 10 的整数序列
for i in range(1, 11):
    print(i)

# 生成一个从 0 到 9,步长为 2 的整数序列
for i in range(0, 10, 2):
    print(i)

# 生成一个从 10 到 1,步长为 -1 的整数序列
for i in range(10, 0, -1):
    print(i)

需要注意的是,range() 函数生成的序列不包含结束值。例如,在 range(1, 11) 中,序列中不包含值 11。

  • len() 是 Python 的一个内置函数,用于返回一个对象的长度或元素个数。它的语法格式如下:
len(s)

其中,参数 s 可以是任意类型的序列或集合,例如字符串、列表、元组、字典等。

len() 函数返回的是一个整数值,表示对象 s 中元素的个数或字符的个数。需要注意的是,对于字典,len() 函数返回的是字典中键值对的个数,而不是键的个数或值的个数。

以下是一些 len() 函数的使用示例:

# 计算字符串的长度
s = "Hello, World!"
print(len(s))  # 输出 13

# 计算列表的长度
lst = [1, 2, 3, 4, 5]
print(len(lst))  # 输出 5

# 计算元组的长度
tpl = (1, 2, 3, 4, 5)
print(len(tpl))  # 输出 5

# 计算集合的长度
st = {1, 2, 3, 4, 5}
print(len(st))  # 输出 5

# 计算字典的长度
dct = {"name": "Alice", "age": 20, "gender": "Female"}
print(len(dct))  # 输出 3

可以看到,len() 函数的使用非常简单,只需要传入一个参数,即可返回该对象的长度或元素个数。在编写程序时,我们经常需要使用 len() 函数来获取序列或集合的长度,然后进行相应的处理。

  1. for循环中使用else语句

在 Python 的 for 循环中,除了可以使用 break 和 continue 关键字,还可以使用 else 子句。else 子句中的代码将在循环正常结束时执行,即 for 循环中所有的元素都被遍历完毕时执行。

如果在循环中使用了 break 关键字中断了循环,则 else 子句中的代码不会被执行。以下是一个使用 for 循环和 else 子句的示例:

# 判断列表中是否有偶数
lst = [1, 3, 5, 7, 8, 9, 11]
for num in lst:
    if num % 2 == 0:
        print("列表中有偶数")
        break
else:
    print("列表中没有偶数")
循环结构语句的嵌套

循环结构语句的嵌套是指在一个循环结构语句内部再嵌套另一个循环结构语句,例如在 for 循环内部再嵌套一个 for 循环、while 循环或者其他循环结构语句。

使用嵌套循环可以处理一些比较复杂的问题,例如处理多维数组、打印九九乘法表等等。

循环控制语句

  • break语句

在循环中遇到 break 语句时,会立即跳出循环,不再执行循环体中剩余的语句。break 语句通常用于在满足某些条件时提前结束循环。

for i in range(10):
    if i == 5:
        break
    print(i)
# Output: 0 1 2 3 4
 
  • continue语句

在循环中遇到 continue 语句时,会跳过本次循环剩余的语句,直接进入下一次循环。continue 语句通常用于在满足某些条件时跳过本次循环。

for i in range(10):
    if i % 2 == 0:
        continue
    print(i)
# Output: 1 3 5 7 9
 
  • pass语句

pass 语句是一个空语句,不做任何操作,只是为了保证语法的正确性。pass 语句通常用于占位,表示该处需要填写具体的操作。

for i in range(10):
    if i == 5:
        pass
    print(i)
# Output: 0 1 2 3 4 5 6 7 8 9
 
项目演练

根据上述所学基础知识,模拟游戏中角色文字打怪游戏的模拟

import random

print("欢迎来到打怪兽游戏!")
player_hp = 100
monster_hp = random.randint(50, 100)

print("你的初始生命值为:", player_hp)
print("怪兽的初始生命值为:", monster_hp)

while True:
    print("请选择你要进行的操作:")
    print("1. 攻击\t2. 防御\t3. 逃跑")
    choice = input()

    if choice == "1":  # 攻击
        damage = random.randint(10, 20)
        print("你对怪兽造成了", damage, "点伤害!")
        monster_hp -= damage
        if monster_hp <= 0:
            print("恭喜你,你击败了怪兽!")
            break
        else:
            print("怪兽还剩", monster_hp, "点生命值。")
    elif choice == "2":  # 防御
        print("你选择了防御。")
        player_hp += 3
        print("你的生命值恢复了3点,当前生命值为:", player_hp)
    elif choice == "3":  # 逃跑
        print("你选择了逃跑。")
        escape_chance = random.randint(1, 10)
        if escape_chance <= 7:
            print("你成功逃跑了!")
            break
        else:
            print("你未能成功逃跑,继续进行战斗。")
    else:
        print("输入错误,请重新选择。")
        continue

    # 怪兽攻击
    monster_damage = random.randint(8, 15)
    print("怪兽对你造成了", monster_damage, "点伤害!")
    player_hp -= monster_damage
    if player_hp <= 0:
        print("很遗憾,你被怪兽击败了。游戏结束。")
        break
    else:
        print("你还剩", player_hp, "点生命值。")
 

游戏规则:玩家和怪兽轮流进行攻击和防御。玩家可以选择攻击、防御或逃跑,而怪兽只会进行攻击。玩家和怪兽的攻击伤害和生命值都是随机的。如果玩家的生命值降到了0或以下,游戏结束,玩家失败;如果玩家成功击败了怪兽,游戏结束,玩家胜利。

你可能感兴趣的:(python项目化演练,游戏,python,pygame)