今儿个心血来潮,想搞个模拟士兵打仗的游戏,就那种文字版的,你来我往,想想就带劲!
我啥也不懂,就瞎琢磨。先得有士兵?得能给士兵起个名字,还得有攻击力,血量啥的。琢磨半天,用啥来表示这些玩意?
后来一拍脑袋,可以用个...咋说,就类似表格的东西,在 Python 里叫“字典”!
创建士兵:
我试着写第一段代码,用来创建士兵:
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
def create_soldier(name, health, attack):
soldier = {
'name': name,
'health': health,
'attack': attack
return soldier
你看,这个 create_soldier
,我给它起个名字,叫“函数”,它可以创建士兵。你给它一个名字,血量,攻击力,它就给你一个士兵。我试试:
soldier1 = create_soldier('张三', 100, 10)
print(soldier1)

结果出来: {'name': '张三', 'health': 100, 'attack': 10}
。 还真像那么回事!
光有士兵不行,得让他们打起来!我又琢磨半天,咋打?
我想个简单的法子,就互相砍呗,你砍我一下,我砍你一下,谁血先没谁就挂。
攻击函数:
我又写个“函数”,叫 attack
,用来模拟攻击:
def attack(attacker, defender):
damage = attacker['attack']

defender['health'] -= damage
print(f"{attacker['name']} 攻击 {defender['name']},造成 {damage} 点伤害!")
print(f"{defender['name']} 剩余血量:{defender['health']}")
这个 attack
函数,接收两个士兵,一个是攻击者,一个是防守者。攻击者的攻击力就是造成的伤害,防守者的血量就减去这个伤害。我还加点文字,把打的过程显示出来,看着更热闹。
战斗循环:
光攻击一下不行,得一直打到一方没血才算完。我又加个循环:
soldier1 = create_soldier('张三', 100, 15)
soldier2 = create_soldier('李四', 80, 20)

while soldier1['health'] > 0 and soldier2['health'] > 0:
attack(soldier1, soldier2)
if soldier2['health'] <= 0:
print(f"{soldier2['name']} 阵亡!")
break
attack(soldier2, soldier1)

if soldier1['health'] <= 0:
print(f"{soldier1['name']} 阵亡!")
break
这段代码,先创建两个士兵,张三和李四。然后就是一个 while
循环,只要两个士兵都还有血,就一直打。张三砍李四一下,李四要是没死,就反过来砍张三一下。谁先没血,谁就挂,循环就结束。
我运行一下,还真打起来!屏幕上噼里啪的,显示着谁攻击谁,谁还剩多少血,谁挂。看着还挺过瘾!
这只是个最简单的版本,还有很多可以改进的地方。比如可以加点技能,闪避,暴击啥的,让战斗更丰富。不过今天就先到这,以后有空再慢慢琢磨!