def attack(self, target, ability='力量', n=0, arms=None): if arms is None and arms != "空手": return arms.use() else: num = self.get(ability=ability) + n # 最多8个骰子 if num >= 8: num = 8 res1 = {'ability': ability, 'result': self.dice(n=num)} print("[进攻]", res1) if target.counter(ability=ability) is None: print(self.name, "的攻击对目标没有任何效果。") return res2 = target.counter(ability=ability) print("[防守]", res2) diff = sum(res1.get('result')) - sum(res2.get('result')) if ability == '力量' or ability == '速度': type = '肉体' else: type = '精神' if diff >= 0: print(self.name, "攻击成功,造成", diff, "点伤害。") if diff >= 2: print(self.name, "的攻击让", target.name, "失去平衡。") print("你可以选择放弃伤害值,转为偷窃目标一件道具") print("(注意:若目标无可被偷窃的道具,则无效。)") if user_input() == "y": l = target.get_items_list(type="偷窃") if l: print(l) index = int(user_input()) item = l[index] target.lost_obj(item) self.gain_obj(item) return target.hurt(type=type, value=diff) elif diff < 0: print(target.name, "反击成功,造成", abs(diff), "点伤害。") if diff <= -2: print(target.name, "的反击让", self.name, "失去平衡。") print("你可以选择放弃伤害值,转为偷窃目标一件道具") print("(注意:若目标无可被偷窃的道具,则无效。)") if user_input() == "y": l = self.get_items_list(type="偷窃") if l: print(l) index = int(user_input()) item = l[index] self.lost_obj(item) target.gain_obj(item) return self.hurt(type=type, value=abs(diff)) return
def hurt(self, type, n=1, value=None): if value is None: res = self.dice(n=n) else: res = [value] if type == '精神' and '颅骨' in self.buff: print("你手上的颅骨闪烁着诡异的光芒,那些精神上的冲击似乎化作了实体伤害打在你的身上。") if bool(user_input()): type = '肉体' # 铠甲判断 if type == '肉体' and '铠甲' in self.buff: res.append(-1) print('受到', res, '=', sum(res), '点的', type, '伤害') while True: if sum(res) <= 0: break print("(身体伤害分配到【力量】与【速度】上|精神伤害分配到【意志】与【知识】上)") num1 = int(input("扣除第一属性: ")) if abs(num1) == sum(res): self.injured(type=type, num1=sum(res), num2=0) break elif abs(num1) == 0: self.injured(type=type, num1=0, num2=sum(res)) break num2 = int(input("扣除第二属性: ")) if abs(num1) + abs(num2) == sum(res): self.injured(type=type, num1=num1, num2=num2) break else: print('输入值错误')
def dice(self, min=0, max=2, n=1): res = [random.randint(min, max) for i in range(n)] # 幸运石判断 if "幸运石" in self.buff: choose = bool(user_input()) if choose: self.buff.remove("幸运石") index = json.load(user_input()) for i in index: res[i] = random.randint(0, 2) # 幸运兔脚判断 if "幸运兔脚" in self.buff: choose = bool(user_input()) if choose: index = int(user_input()) res[index] = random.randint(0, 2) print("[骰点结果为]", res) return res
def before_move(self): super(Mummy, self).before_move() enemy = [ role for role in self.room.get_creatures() if role.camp != self.camp ] if len(enemy) > 0: print("敌人列表:", enemy) index = user_input() self.attack(target=enemy[index])
def attack(self, target): super(Mummy, self).attack(target=target) res1 = {'ability': '力量', 'result': self.dice(n=self.get(ability="力量"))} res2 = target.counter(ability="力量") print("[防守]", res2) diff = sum(res1.get('result')) - sum(res2.get('result')) type = '肉体' if diff >= 0: print(self.name, "攻击成功,造成", diff, "点伤害。") if diff >= 2: print(self.name, "的攻击让", target.name, "失去平衡。") print("你可以选择放弃伤害值,转为偷窃目标一件道具") print("(注意:若目标无可被偷窃的道具,则无效。)") if user_input() == "y": l = target.get_items_list(type="偷窃") if l: print(l) index = int(user_input()) item = l[index] target.lost_obj(item) self.gain_obj(item) return target.hurt(type=type, value=diff) elif diff < 0: print(target.name, "反击成功,造成", abs(diff), "点伤害。") if diff <= -2: print(target.name, "的反击让", self.name, "失去平衡。") print("你可以选择放弃伤害值,转为偷窃目标一件道具") print("(注意:若目标无可被偷窃的道具,则无效。)") if user_input() == "y": l = self.get_items_list(type="偷窃") if l: print(l) index = int(user_input()) item = l[index] self.lost_obj(item) target.gain_obj(item) return self.hurt(type=type) return
def login(self): if self.authenticated: with open( r'C:\Users\zleirdahl\Documents\GitHub\StockModeler\robinhood_auth.json', 'r') as f: return json.loads(f.read()) return self.post( oauth(), payload=self.payload, extra_headers={ 'X-ROBINHOOD-CHALLENGE-RESPONSE-ID': self.post( challenge( self.post(oauth(), payload=self.payload)['challenge']['id']), {'response': user_input()})['id'] })
def ability_challenge(self, ability, n=0, type='房间'): if type == '事件' and '蜡烛' in self.buff: n += 1 if "水滴" in self.room.get_sign(self): print("停不下来的滴答声让你无法集中精神,骰子-1") n -= 1 if "祝福" in self.room.get_sign(self): print("神圣的气息让你大有增益,骰子+1") n += 1 if '天使的羽毛(生效中)' in self.buff: self.buff.remove('天使的羽毛(生效中)') res = [int(user_input())] return res num = self.get(ability=ability) + n # 最多8个骰子 if num >= 8: num = 8 res = self.dice(n=num) if '肾上腺素(生效中)' in self.buff: self.buff.remove('肾上腺素(生效中)') res.append(4) print(self.name, "[", ability, "]挑战结果为:", res) return res
time.sleep(off_delay) def exit_action(): if len(time_arr) > 0: save_data() save_plot(fig_now) # Controller Constants DELAY = 1 # Arduino Serial Port Information SERIAL_ADR = search_ard_serial_port() SERIAL_PORT = 9600 SERIAL_DELAY = 1 distance_d = util.user_input("distance in cm", (1,400)) distance_d = distance_d / 100 * 2 # List storing values tt_arr = [] time_arr = [] temp_arr = [] pres_arr = [] derived_kb_arr = [] kb_err_abs_arr = [] kb_avg_arr = [] t0 = time.perf_counter()
print(e) else: pass pass def std_error(err_arr): n = len(err_arr) ste = np.sqrt(np.sum([e**2 for e in err_arr]) / (n - 1)) return ste # Boltzmann constant (10^-23) K_B = 1.38064852 data_id = util.user_input("data number", val_float=False) DATA_NAME = DATA_NAME = "data/{}".format(data_id) csv_loc = DATA_NAME + ".csv" # List storing values tt_arr = [] time_arr = [] temp_arr = [] derived_kb_arr = [] kb_err_abs_arr = [] pres_arr = [] kb_avg_arr = [] distance_d = 0
K_B = 1.38064852 def save_plot(fig): eps_loc = "data/plt3_" + str(int(time.time())) + '.eps' fig_now.savefig(eps_loc, format='eps') print("\nPlot saved to {}.\n".format(eps_loc)) def std_error(err_arr): n = len(err_arr) ste = np.sqrt(np.sum([e**2 for e in err_arr]) / (n - 1)) return ste data_id = util.user_input("data numbers (separated by comma)", val_float=False) data_id = data_id.split(",") data_ids = [d.strip() for d in data_id] # Desired Offset (ms) OFFSET = util.user_input("offset in ms", [-1, 1]) # List storing values d_arr = [] kb_arr = [] kb_offset_arr = [] kb_err_arr = [] for di in data_ids:
import time # Boltzmann constant (10^-23) K_B = 1.38064852 def save_plot(fig): eps_loc = "data/plt5_" + str(int(time.time())) + '.eps' fig_now.savefig(eps_loc, format='eps') print("\nPlot saved to {}.\n".format(eps_loc)) def std_error(err_arr): n = len(err_arr) ste = np.sqrt(np.sum([e ** 2 for e in err_arr])/(n-1)) return ste data_id = util.user_input("data numbers (separated by comma)", val_float=False) data_id = data_id.split(",") data_ids = [d.strip() for d in data_id] # List storing values d_arr = [] kb_arr = [] kb_vdw_arr = [] kb_rk_arr = [] kb_offset_arr = [] kb_err_arr = [] for di in data_ids: