前言
大家好,我是辣条哥
在当今数字化时代,编程已经成为一项不可或缺的技能。而Python作为一门简洁易学的编程语言,正受到越来越多学生的青睐。为了激发学生对编程的兴趣,我写了一篇小博文,介绍了5个精彩的Python小游戏。记得辣条之前也有写过一期30个摸鱼小游戏,有兴趣的可以直接围观一下 * 《30个摸鱼小游戏,附源码!》 |
|
这些游戏不仅能够帮助学生巩固编程知识,还能够让他们在游戏中体验到编程的乐趣。无论你是编程新手还是有一定经验的学生,这些游戏都能够帮助你提升编程技能,同时也能够让你感受到编程的魅力。让我们一起来探索这些游戏吧!
1.格斗技能类小游戏
import random
class Fighter:
def \_\_init\_\_(self, name, health, attack_power, defense_power):
self.name = name
self.health = health
self.attack_power = attack_power
self.defense_power = defense_power
def attack(self, opponent):
damage = self.attack_power - opponent.defense_power
if damage > 0:
opponent.health -= damage
else:
damage = 0
print(f"{self.name}对{opponent.name}造成了{damage}点伤害")
def is\_alive(self):
return self.health > 0
def \_\_str\_\_(self):
return f"{self.name} (生命值: {self.health})"
def main():
player = Fighter("玩家", 100, 20, 10)
enemy = Fighter("敌人", 100, 15, 5)
while player.is_alive() and enemy.is_alive():
print(player)
print(enemy)
print("请选择技能:")
print("1. 普通攻击")
print("2. 火球术")
print("3. 治疗术")
choice = input("请输入选项:")
if choice == "1":
player.attack(enemy)
elif choice == "2":
damage = random.randint(10, 30)
enemy.health -= damage
print(f"{player.name}使用了火球术,对{enemy.name}造成了{damage}点伤害")
elif choice == "3":
heal = random.randint(10, 20)
player.health += heal
print(f"{player.name}使用了治疗术,恢复了{heal}点生命值")
else:
print("无效的选项,请重新选择")
enemy.attack(player)
if player.is_alive():
print("你赢了!")
else:
print("你输了!")
if __name__ == "\_\_main\_\_":
main()
这个小游戏中,玩家和敌人都有生命值、攻击力和防御力属性。玩家可以选择不同的技能进行攻击,包括普通攻击、火球术和治疗术。敌人会随机选择技能进行攻击。当玩家或敌人的生命值降为0时,游戏结束。
2.益智塔防类小游戏
import random
class Tower:
def \_\_init\_\_(self, name, damage, range):
self.name = name
self.damage = damage
self.range = range
def attack(self, enemy):
if enemy.in_range(self.range):
enemy.take_damage(self.damage)
print(f"{self.name}攻击了{enemy.name},造成了{self.damage}点伤害!")
else:
print(f"{self.name}攻击失败,{enemy.name}超出了攻击范围!")
class Enemy:
def \_\_init\_\_(self, name, health, speed):
self.name = name
self.health = health
self.speed = speed
def in\_range(self, range):
return range >= self.speed
def take\_damage(self, damage):
self.health -= damage
if self.health <= 0:
print(f"{self.name}被击败了!")
else:
print(f"{self.name}受到了{damage}点伤害,剩余生命值:{self.health}")
def main():
tower = Tower("箭塔", 10, 5)
enemy = Enemy("敌人", 50, random.randint(1, 10))
while enemy.health > 0:
tower.attack(enemy)
enemy.speed = random.randint(1, 10)
if __name__ == "\_\_main\_\_":
main()
在这个示例中,我们定义了一个Tower类和一个Enemy类。Tower类表示塔的属性和行为,包括名称、伤害和攻击范围。Enemy类表示敌人的属性和行为,包括名称、生命值和速度。
在main函数中,我们创建了一个箭塔和一个敌人,并通过循环让箭塔攻击敌人,直到敌人的生命值降为0。每次攻击时,箭塔会判断敌人是否在攻击范围内,如果是则造成伤害,否则攻击失败。
这只是一个简单的示例,你可以根据自己的需求和想法来扩展和改进这个游戏。
3.MMO类型游戏
import random
class Player:
def \_\_init\_\_(self, name):
self.name = name
self.level = 1
self.exp = 0
self.hp = 100
self.max_hp = 100
self.attack = 10
self.defense = 5
def gain\_exp(self, exp):
self.exp += exp
if self.exp >= 100:
self.level_up()
def level\_up(self):
self.level += 1
self.max_hp += 10
self.hp = self.max_hp
self.attack += 5
self.defense += 2
self.exp = 0
def take\_damage(self, damage):
actual_damage = max(0, damage - self.defense)
self.hp -= actual_damage
def is\_alive(self):
return self.hp > 0
def \_\_str\_\_(self):
return f"{self.name} (Level {self.level})"
class Monster:
def \_\_init\_\_(self, name, level):
self.name = name
self.level = level
self.hp = 50 \* level
self.attack = 5 \* level
self.defense = 2 \* level
self.exp_reward = 20 \* level
def take\_damage(self, damage):
actual_damage = max(0, damage - self.defense)
self.hp -= actual_damage
def is\_alive(self):
return self.hp > 0
def \_\_str\_\_(self):
return f"{self.name} (Level {self.level})"
def main():
player_name = input("请输入你的角色名字:")
player = Player(player_name)
monsters = [
Monster("小怪兽", 1),
Monster("中怪兽", 2),
Monster("大怪兽", 3)
]
while True:
monster = random.choice(monsters)
print(f"\n你遇到了一个{monster}!")
print("你的状态:")
print(player.__str__())
print("怪物的状态:")
print(monster.__str__())
while player.is_alive() and monster.is_alive():
action = input("\n请选择你的行动(1-攻击,2-逃跑):")
if action == "1":
monster.take_damage(player.attack)
print(f"你对{monster.name}造成了{player.attack}点伤害!")
if monster.is_alive():
player.take_damage(monster.attack)
print(f"{monster.name}对你造成了{monster.attack}点伤害!")
elif action == "2":
print("你逃跑了...")
break
else:
print("无效的行动!")
if player.is_alive():
player.gain_exp(monster.exp_reward)
print(f"\n你击败了{monster.name},获得了{monster.exp\_reward}点经验值!")
else:
print("\n你被击败了...")
break
if player.level == 4:
print("\n恭喜你通关了!")
break
if __name__ == "\_\_main\_\_":
main()
现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。
分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!