使用Python模拟武侠小说中两派人的一场遭遇战!

本文使用Python编程模拟了一场武侠小说中的战斗,两派人为少林寺和逍遥派,各自拥有不同的角色和技能。战斗过程采用回合制,随机选择攻击者和被攻击者,根据技能输出值和正态分布随机数计算伤害。战斗直至一方全员阵亡为止。此外,还展示了正态分布随机数的生成和验证。
摘要由CSDN通过智能技术生成

使用Python模拟武侠小说中两派人的一场遭遇战。
每个人都有名字、血量(HP) 、一系列技能及技能对应的攻击输出。每个人的攻击方式均一致,即随机从自己的技能包中抽取一个技能进行攻击。两派人(自己命名)均继承
自武林人士这个父类,但有各个门派都有各自的技能包及对应的输出值。门派下每个人拥有的技能包都是在实例化对象的时候随机赋子的。
遭遇战的时候,每个帮派的人数不确定。战斗采用回合制的方式进行,即整派A中的一个人随机选择帮派B中的一个人进行攻击, B受到的伤害值为A随机选择的技能的输出值加
上20%的标准正态分布生成的随机数向下取整,即伤害值=输出值(1+0.2*N( 0,1)),技能被选择的概率和其对应的输出值成反比,如某人拥有两个技能,输出值分别为10、30
则技能1的被选择概率为 (1/10)/(1/10 + 1/30).其中某一门派参与战斗的所有人都则阵亡(既HP降为0)则战斗结束。
几个随机数生成函数:首先引入random包, import random; random.random()生成一个0-1的均匀分布随机数; random.randint(a,b)生成取信范围为[a.b])的数随机

import random # 导入库

import numpy as np

import math

from matplotlib import pyplot as plt

 

shaolin = {"玄难": 135, "玄寂": 132, "玄奘": 136, "玄苦": 137, "玄渡": 131} # 人 及其 HP

carefree = {"康广陵": 91, "范百龄": 93, "薛慕华": 108} # 人 及其 HP

s_skill = {"大金刚掌": 20, "如来千手": 30, "擒龙功": 25, "金刚指": 30, "少林长拳": 35} # 技能及其输出值

c_skill = {"小无相功": 20, "天山折梅手": 30, "八荒六合唯我独尊功": 25, "天上六阳掌": 30} # 技能及其输出值

d_sname = {}

d_cname = {}

s_suiji = {}

c_suiji = {}

 

class Wulinpeople():

def __init__(self):

self.s_name = random.sample(list(s_skill),random.randrange(1,len(s_skill)+1))

self.c_name = random.sample(list(c_skill),

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值