zyx2012 发表于 前天 19:17

宝可梦小游戏v1.0.1

没怎么进展(寒假作业太多了),只把多属性相克完善一下,完善了一些不太好的(一半是AI帮我修的,自己水平太低{:5_96:} )
import random
pdict = {1: {'name': '妙蛙种子', 'type': ['草', '毒'], 'weakness': ['飞行', '毒', '虫', '火', '冰'], 'HP': 45, 'attack': 49, 'defense': 49, 'speed': 45}, 2: {'name': '妙蛙草', 'type': ['草', '毒'], 'weakness': ['飞行', '毒', '虫', '火', '冰'], 'HP': 60, 'attack': 62, 'defense': 63, 'speed': 60}, 3: {'name': '妙蛙花', 'type': ['草', '毒'], 'weakness': ['飞行', '毒', '虫', '火', '冰'], 'HP': 80, 'attack': 82, 'defense': 83, 'speed': 80}, 4: {'name': '小火龙', 'type': ['火'], 'weakness': ['地面', '岩石', '水'], 'HP': 39, 'attack': 52, 'defense': 43, 'speed': 65}, 5: {'name': '火恐龙', 'type': ['火'], 'weakness': ['地面', '岩石', '水'], 'HP': 58, 'attack': 64, 'defense': 58, 'speed': 80}, 6: {'name': '喷火龙', 'type': ['火', '飞行'], 'weakness': ['地面', '岩石', '水'], 'HP': 78, 'attack': 84, 'defense': 78, 'speed': 100}, 7: {'name': '杰尼龟', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 44, 'attack': 48, 'defense': 65, 'speed': 43}, 8: {'name': '卡咪龟', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 59, 'attack': 63, 'defense': 80, 'speed': 58}, 9: {'name': '水箭龟', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 79, 'attack': 83, 'defense': 100, 'speed': 78}, 10: {'name': '绿毛虫', 'type': ['虫'], 'weakness': ['飞行', '岩石', '火'], 'HP': 45, 'attack': 30, 'defense': 35, 'speed': 45}, 11: {'name': '铁甲蛹', 'type': ['虫'], 'weakness': ['飞行', '岩石', '火'], 'HP': 50, 'attack': 20, 'defense': 55, 'speed': 30}, 12: {'name': '巴大蝶', 'type': ['虫', '飞行'], 'weakness': ['飞行', '岩石', '火'], 'HP': 60, 'attack': 45, 'defense': 50, 'speed': 70}, 13: {'name': '独角虫', 'type': ['虫', '毒'], 'weakness': ['飞行', '岩石', '火'], 'HP': 40, 'attack': 35, 'defense': 30, 'speed': 50}, 14: {'name': '铁壳昆', 'type': ['虫', '毒'], 'weakness': ['飞行', '岩石', '火'], 'HP': 45, 'attack': 25, 'defense': 50, 'speed': 35}, 15: {'name': '大针蜂', 'type': ['虫', '毒'], 'weakness': ['飞行', '岩石', '火'], 'HP': 65, 'attack': 90, 'defense': 40, 'speed': 75}, 16: {'name': '波波', 'type': ['普通', '飞行'], 'weakness': ['格斗'], 'HP': 40, 'attack': 45, 'defense': 40, 'speed': 56}, 17: {'name': '比比鸟', 'type': ['普通', '飞行'], 'weakness': ['格斗'], 'HP': 63, 'attack': 60, 'defense': 55, 'speed': 71}, 18: {'name': '比雕', 'type': ['普通', '飞行'], 'weakness': ['格斗'], 'HP': 83, 'attack': 80, 'defense': 75, 'speed': 101}, 19: {'name': '小拉达', 'type': ['普通'], 'weakness': ['格斗'], 'HP': 30, 'attack': 56, 'defense': 35, 'speed': 72}, 20: {'name': '拉达', 'type': ['普通'], 'weakness': ['格斗'], 'HP': 55, 'attack': 81, 'defense': 60, 'speed': 97}, 21: {'name': '烈雀', 'type': ['普通', '飞行'], 'weakness': ['格斗'], 'HP': 40, 'attack': 60, 'defense': 30, 'speed': 70}, 22: {'name': '大嘴雀', 'type': ['普通', '飞行'], 'weakness': ['格斗'], 'HP': 65, 'attack': 90, 'defense': 65, 'speed': 100}, 23: {'name': '阿柏蛇', 'type': ['毒'], 'weakness': ['地面', '超能'], 'HP': 35, 'attack': 60, 'defense': 44, 'speed': 55}, 24: {'name': '阿柏怪', 'type': ['毒'], 'weakness': ['地面', '超能'], 'HP': 60, 'attack': 95, 'defense': 69, 'speed': 80}, 25: {'name': '皮卡丘', 'type': ['电'], 'weakness': ['地面'], 'HP': 35, 'attack': 55, 'defense': 40, 'speed': 90}, 26: {'name': '雷丘', 'type': ['电'], 'weakness': ['地面'], 'HP': 60, 'attack': 90, 'defense': 55, 'speed': 110}, 27: {'name': '穿山鼠', 'type': ['地面'], 'weakness': ['水', '草', '冰'], 'HP': 50, 'attack': 75, 'defense': 85, 'speed': 40}, 28: {'name': '穿山王', 'type': ['地面'], 'weakness': ['水', '草', '冰'], 'HP': 75, 'attack': 100, 'defense': 110, 'speed': 65}, 29: {'name': '尼多兰', 'type': ['毒'], 'weakness': ['地面', '超能'], 'HP': 55, 'attack': 47, 'defense': 52, 'speed': 41}, 30: {'name': '尼多娜', 'type': ['毒'], 'weakness': ['地面', '超能'], 'HP': 70, 'attack': 62, 'defense': 67, 'speed': 56}, 31: {'name': '尼多后', 'type': ['毒', '地面'], 'weakness': ['地面', '超能'], 'HP': 90, 'attack': 92, 'defense': 87, 'speed': 76}, 32: {'name': '尼多朗', 'type': ['毒'], 'weakness': ['地面', '超能'], 'HP': 46, 'attack': 57, 'defense': 40, 'speed': 50}, 33: {'name': '尼多力诺', 'type': ['毒'], 'weakness': ['地面', '超能'], 'HP': 61, 'attack': 72, 'defense': 57, 'speed': 65}, 34: {'name': '尼多王', 'type': ['毒', '地面'], 'weakness': ['地面', '超能'], 'HP': 81, 'attack': 102, 'defense': 77, 'speed': 85}, 35: {'name': '皮皮', 'type': ['妖精'], 'weakness': ['毒', 'steel'], 'HP': 70, 'attack': 45, 'defense': 48, 'speed': 35}, 36: {'name': '皮可西', 'type': ['妖精'], 'weakness': ['毒', 'steel'], 'HP': 95, 'attack': 70, 'defense': 73, 'speed': 60}, 37: {'name': '六尾', 'type': ['火'], 'weakness': ['地面', '岩石', '水'], 'HP': 38, 'attack': 41, 'defense': 40, 'speed': 65}, 38: {'name': '九尾', 'type': ['火'], 'weakness': ['地面', '岩石', '水'], 'HP': 73, 'attack': 76, 'defense': 75, 'speed': 100}, 39: {'name': '胖丁', 'type': ['普通', '妖精'], 'weakness': ['格斗'], 'HP': 115, 'attack': 45, 'defense': 20, 'speed': 20}, 40: {'name': '胖可丁', 'type': ['普通', '妖精'], 'weakness': ['格斗'], 'HP': 140, 'attack': 70, 'defense': 45, 'speed': 45}, 41: {'name': '超音蝠', 'type': ['毒', '飞行'], 'weakness': ['地面', '超能'], 'HP': 40, 'attack': 45, 'defense': 35, 'speed': 55}, 42: {'name': '大嘴蝠', 'type': ['毒', '飞行'], 'weakness': ['地面', '超能'], 'HP': 75, 'attack': 80, 'defense': 70, 'speed': 90}, 43: {'name': '走路草', 'type': ['草', '毒'], 'weakness': ['飞行', '毒', '虫', '火', '冰'], 'HP': 45, 'attack': 50, 'defense': 55, 'speed': 30}, 44: {'name': '臭臭花', 'type': ['草', '毒'], 'weakness': ['飞行', '毒', '虫', '火', '冰'], 'HP': 60, 'attack': 65, 'defense': 70, 'speed': 40}, 45: {'name': '霸王花', 'type': ['草', '毒'], 'weakness': ['飞行', '毒', '虫', '火', '冰'], 'HP': 75, 'attack': 80, 'defense': 85, 'speed': 50}, 46: {'name': '派拉斯', 'type': ['虫', '草'], 'weakness': ['飞行', '岩石', '火'], 'HP': 35, 'attack': 70, 'defense': 55, 'speed': 25}, 47: {'name': '派拉斯特', 'type': ['虫', '草'], 'weakness': ['飞行', '岩石', '火'], 'HP': 60, 'attack': 95, 'defense': 80, 'speed': 30}, 48: {'name': '毛球', 'type': ['虫', '毒'], 'weakness': ['飞行', '岩石', '火'], 'HP': 60, 'attack': 55, 'defense': 50, 'speed': 45}, 49: {'name': '末入蛾', 'type': ['虫', '毒'], 'weakness': ['飞行', '岩石', '火'], 'HP': 70, 'attack': 65, 'defense': 60, 'speed': 90}, 50: {'name': '地鼠', 'type': ['地面'], 'weakness': ['水', '草', '冰'], 'HP': 10, 'attack': 55, 'defense': 25, 'speed': 95}, 51: {'name': '三地鼠', 'type': ['地面'], 'weakness': ['水', '草', '冰'], 'HP': 35, 'attack': 100, 'defense': 50, 'speed': 120}, 52: {'name': '喵喵', 'type': ['普通'], 'weakness': ['格斗'], 'HP': 40, 'attack': 45, 'defense': 35, 'speed': 90}, 53: {'name': '猫老大', 'type': ['普通'], 'weakness': ['格斗'], 'HP': 65, 'attack': 70, 'defense': 60, 'speed': 115}, 54: {'name': '可达鸭', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 50, 'attack': 52, 'defense': 48, 'speed': 55}, 55: {'name': '哥达鸭', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 80, 'attack': 82, 'defense': 78, 'speed': 85}, 56: {'name': '猴怪', 'type': ['格斗'], 'weakness': ['飞行', '超能', '妖精'], 'HP': 40, 'attack': 80, 'defense': 35, 'speed': 70}, 57: {'name': '火爆猴', 'type': ['格斗'], 'weakness': ['飞行', '超能', '妖精'], 'HP': 65, 'attack': 105, 'defense': 60, 'speed': 95}, 58: {'name': '卡蒂狗', 'type': ['火'], 'weakness': ['地面', '岩石', '水'], 'HP': 55, 'attack': 70, 'defense': 45, 'speed': 60}, 59: {'name': '风速狗', 'type': ['火'], 'weakness': ['地面', '岩石', '水'], 'HP': 90, 'attack': 110, 'defense': 80, 'speed': 95}, 60: {'name': '蚊香蝌蚪', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 40, 'attack': 50, 'defense': 40, 'speed': 90}, 61: {'name': '蚊香蛙', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 65, 'attack': 65, 'defense': 65, 'speed': 90}, 62: {'name': '快泳蛙', 'type': ['水', '格斗'], 'weakness': ['草', '电'], 'HP': 90, 'attack': 95, 'defense': 95, 'speed': 70}, 63: {'name': '凯西', 'type': ['超能'], 'weakness': ['虫', '幽灵', '恶'], 'HP': 25, 'attack': 20, 'defense': 15, 'speed': 90}, 64: {'name': '勇吉拉', 'type': ['超能'], 'weakness': ['虫', '幽灵', '恶'], 'HP': 40, 'attack': 35, 'defense': 30, 'speed': 105}, 65: {'name': '胡地', 'type': ['超能'], 'weakness': ['虫', '幽灵', '恶'], 'HP': 55, 'attack': 50, 'defense': 45, 'speed': 120}, 66: {'name': '腕力', 'type': ['格斗'], 'weakness': ['飞行', '超能', '妖精'], 'HP': 70, 'attack': 80, 'defense': 50, 'speed': 35}, 67: {'name': '豪力', 'type': ['格斗'], 'weakness': ['飞行', '超能', '妖精'], 'HP': 80, 'attack': 100, 'defense': 70, 'speed': 45}, 68: {'name': '怪力', 'type': ['格斗'], 'weakness': ['飞行', '超能', '妖精'], 'HP': 90, 'attack': 130, 'defense': 80, 'speed': 55}, 69: {'name': '喇叭芽', 'type': ['草', '毒'], 'weakness': ['飞行', '毒', '虫', '火', '冰'], 'HP': 50, 'attack': 75, 'defense': 35, 'speed': 40}, 70: {'name': '口呆花', 'type': ['草', '毒'], 'weakness': ['飞行', '毒', '虫', '火', '冰'], 'HP': 65, 'attack': 90, 'defense': 50, 'speed': 55}, 71: {'name': '大食花', 'type': ['草', '毒'], 'weakness': ['飞行', '毒', '虫', '火', '冰'], 'HP': 80, 'attack': 105, 'defense': 65, 'speed': 70}, 72: {'name': '玛瑙水母', 'type': ['水', '毒'], 'weakness': ['草', '电'], 'HP': 40, 'attack': 40, 'defense': 35, 'speed': 70}, 73: {'name': '毒刺水母', 'type': ['水', '毒'], 'weakness': ['草', '电'], 'HP': 80, 'attack': 70, 'defense': 65, 'speed': 100}, 74: {'name': '小拳石', 'type': ['岩石', '地面'], 'weakness': ['格斗', '地面', 'steel', '水', '草'], 'HP': 40, 'attack': 80, 'defense': 100, 'speed': 20}, 75: {'name': '隆隆石', 'type': ['岩石', '地面'], 'weakness': ['格斗', '地面', 'steel', '水', '草'], 'HP': 55, 'attack': 95, 'defense': 115, 'speed': 35}, 76: {'name': '隆隆岩', 'type': ['岩石', '地面'], 'weakness': ['格斗', '地面', 'steel', '水', '草'], 'HP': 80, 'attack': 120, 'defense': 130, 'speed': 45}, 77: {'name': '小火马', 'type': ['火'], 'weakness': ['地面', '岩石', '水'], 'HP': 50, 'attack': 85, 'defense': 55, 'speed': 90}, 78: {'name': '烈焰马', 'type': ['火'], 'weakness': ['地面', '岩石', '水'], 'HP': 65, 'attack': 100, 'defense': 70, 'speed': 105}, 79: {'name': '呆呆兽', 'type': ['水', '超能'], 'weakness': ['草', '电'], 'HP': 90, 'attack': 65, 'defense': 65, 'speed': 15}, 80: {'name': '呆河马', 'type': ['水', '超能'], 'weakness': ['草', '电'], 'HP': 95, 'attack': 75, 'defense': 110, 'speed': 30}, 81: {'name': '小磁怪', 'type': ['电', 'steel'], 'weakness': ['地面'], 'HP': 25, 'attack': 35, 'defense': 70, 'speed': 45}, 82: {'name': '三合一磁怪', 'type': ['电', 'steel'], 'weakness': ['地面'], 'HP': 50, 'attack': 60, 'defense': 95, 'speed': 70}, 83: {'name': '大葱鸭', 'type': ['普通', '飞行'], 'weakness': ['格斗'], 'HP': 52, 'attack': 90, 'defense': 55, 'speed': 60}, 84: {'name': '嘟嘟', 'type': ['普通', '飞行'], 'weakness': ['格斗'], 'HP': 35, 'attack': 85, 'defense': 45, 'speed': 75}, 85: {'name': '嘟嘟利', 'type': ['普通', '飞行'], 'weakness': ['格斗'], 'HP': 60, 'attack': 110, 'defense': 70, 'speed': 110}, 86: {'name': '小海狮', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 65, 'attack': 45, 'defense': 55, 'speed': 45}, 87: {'name': '白海狮', 'type': ['水', '冰'], 'weakness': ['草', '电'], 'HP': 90, 'attack': 70, 'defense': 80, 'speed': 70}, 88: {'name': '臭泥', 'type': ['毒'], 'weakness': ['地面', '超能'], 'HP': 80, 'attack': 80, 'defense': 50, 'speed': 25}, 89: {'name': '臭臭泥', 'type': ['毒'], 'weakness': ['地面', '超能'], 'HP': 105, 'attack': 105, 'defense': 75, 'speed': 50}, 90: {'name': '大舌贝', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 30, 'attack': 65, 'defense': 100, 'speed': 40}, 91: {'name': '铁甲贝', 'type': ['水', '冰'], 'weakness': ['草', '电'], 'HP': 50, 'attack': 95, 'defense': 180, 'speed': 70}, 92: {'name': '鬼斯', 'type': ['幽灵', '毒'], 'weakness': ['幽灵', '恶'], 'HP': 30, 'attack': 35, 'defense': 30, 'speed': 80}, 93: {'name': '鬼斯通', 'type': ['幽灵', '毒'], 'weakness': ['幽灵', '恶'], 'HP': 45, 'attack': 50, 'defense': 45, 'speed': 95}, 94: {'name': '耿鬼', 'type': ['幽灵', '毒'], 'weakness': ['幽灵', '恶'], 'HP': 60, 'attack': 65, 'defense': 60, 'speed': 110}, 95: {'name': '大岩蛇', 'type': ['岩石', '地面'], 'weakness': ['格斗', '地面', 'steel', '水', '草'], 'HP': 35, 'attack': 45, 'defense': 160, 'speed': 70}, 96: {'name': '素利普', 'type': ['超能'], 'weakness': ['虫', '幽灵', '恶'], 'HP': 60, 'attack': 48, 'defense': 45, 'speed': 42}, 97: {'name': '素利柏', 'type': ['超能'], 'weakness': ['虫', '幽灵', '恶'], 'HP': 85, 'attack': 73, 'defense': 70, 'speed': 67}, 98: {'name': '螃蟹怪', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 30, 'attack': 105, 'defense': 90, 'speed': 50}, 99: {'name': '巨钳蟹', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 55, 'attack': 130, 'defense': 115, 'speed': 75}, 100: {'name': '雷电球', 'type': ['电'], 'weakness': ['地面'], 'HP': 40, 'attack': 30, 'defense': 50, 'speed': 100}, 101: {'name': '顽皮弹', 'type': ['电'], 'weakness': ['地面'], 'HP': 60, 'attack': 50, 'defense': 70, 'speed': 150}, 102: {'name': '蛋蛋', 'type': ['草', '超能'], 'weakness': ['飞行', '毒', '虫', '火', '冰'], 'HP': 60, 'attack': 40, 'defense': 80, 'speed': 40}, 103: {'name': '椰蛋树', 'type': ['草', '超能'], 'weakness': ['飞行', '毒', '虫', '火', '冰'], 'HP': 95, 'attack': 95, 'defense': 85, 'speed': 55}, 104: {'name': '可拉可拉', 'type': ['地面'], 'weakness': ['水', '草', '冰'], 'HP': 50, 'attack': 50, 'defense': 95, 'speed': 35}, 105: {'name': '嘎啦嘎啦', 'type': ['地面'], 'weakness': ['水', '草', '冰'], 'HP': 60, 'attack': 80, 'defense': 110, 'speed': 45}, 106: {'name': '沙瓦郎', 'type': ['格斗'], 'weakness': ['飞行', '超能', '妖精'], 'HP': 50, 'attack': 120, 'defense': 53, 'speed': 87}, 107: {'name': '艾比郎', 'type': ['格斗'], 'weakness': ['飞行', '超能', '妖精'], 'HP': 50, 'attack': 105, 'defense': 79, 'speed': 76}, 108: {'name': '大舌头', 'type': ['普通'], 'weakness': ['格斗'], 'HP': 90, 'attack': 55, 'defense': 75, 'speed': 30}, 109: {'name': '瓦斯弹', 'type': ['毒'], 'weakness': ['地面', '超能'], 'HP': 40, 'attack': 65, 'defense': 95, 'speed': 35}, 110: {'name': '双弹瓦斯', 'type': ['毒'], 'weakness': ['地面', '超能'], 'HP': 65, 'attack': 90, 'defense': 120, 'speed': 60}, 111: {'name': '铁甲犀牛', 'type': ['地面', '岩石'], 'weakness': ['水', '草', '冰'], 'HP': 80, 'attack': 85, 'defense': 95, 'speed': 25}, 112: {'name': '铁甲暴龙', 'type': ['地面', '岩石'], 'weakness': ['水', '草', '冰'], 'HP': 105, 'attack': 130, 'defense': 120, 'speed': 40}, 113: {'name': '吉利蛋', 'type': ['普通'], 'weakness': ['格斗'], 'HP': 250, 'attack': 5, 'defense': 5, 'speed': 50}, 114: {'name': '蔓藤怪', 'type': ['草'], 'weakness': ['飞行', '毒', '虫', '火', '冰'], 'HP': 65, 'attack': 55, 'defense': 115, 'speed': 60}, 115: {'name': '袋龙', 'type': ['普通'], 'weakness': ['格斗'], 'HP': 105, 'attack': 95, 'defense': 80, 'speed': 90}, 116: {'name': '墨海马', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 30, 'attack': 40, 'defense': 70, 'speed': 60}, 117: {'name': '海刺龙', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 55, 'attack': 65, 'defense': 95, 'speed': 85}, 118: {'name': '角金鱼', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 45, 'attack': 67, 'defense': 60, 'speed': 63}, 119: {'name': '金鱼王', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 80, 'attack': 92, 'defense': 65, 'speed': 68}, 120: {'name': '海星星', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 30, 'attack': 45, 'defense': 55, 'speed': 85}, 121: {'name': '宝石海星', 'type': ['水', '超能'], 'weakness': ['草', '电'], 'HP': 60, 'attack': 75, 'defense': 85, 'speed': 115}, 122: {'name': '魔墙人偶', 'type': ['超能', '妖精'], 'weakness': ['虫', '幽灵', '恶'], 'HP': 40, 'attack': 45, 'defense': 65, 'speed': 90}, 123: {'name': '飞天螳螂', 'type': ['虫', '飞行'], 'weakness': ['飞行', '岩石', '火'], 'HP': 70, 'attack': 110, 'defense': 80, 'speed': 105}, 124: {'name': '肯泰罗', 'type': ['冰', '超能'], 'weakness': ['格斗', '岩石', 'steel', '火'], 'HP': 65, 'attack': 50, 'defense': 35, 'speed': 95}, 125: {'name': '熊宝宝', 'type': ['电'], 'weakness': ['地面'], 'HP': 65, 'attack': 83, 'defense': 57, 'speed': 105}, 126: {'name': '圈圈熊', 'type': ['火'], 'weakness': ['地面', '岩石', '水'], 'HP': 65, 'attack': 95, 'defense': 57, 'speed': 93}, 127: {'name': '熔岩虫', 'type': ['虫'], 'weakness': ['飞行', '岩石', '火'], 'HP': 65, 'attack': 125, 'defense': 100, 'speed': 85}, 128: {'name': '熔岩蜗牛', 'type': ['普通'], 'weakness': ['格斗'], 'HP': 75, 'attack': 100, 'defense': 95, 'speed': 110}, 129: {'name': '小鸭嘴龙', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 20, 'attack': 10, 'defense': 55, 'speed': 80}, 130: {'name': '鸭嘴火龙', 'type': ['水', '飞行'], 'weakness': ['草', '电'], 'HP': 95, 'attack': 125, 'defense': 79, 'speed': 81}, 131: {'name': '鸭嘴暴龙', 'type': ['水', '冰'], 'weakness': ['草', '电'], 'HP': 130, 'attack': 85, 'defense': 80, 'speed': 60}, 132: {'name': '百变怪', 'type': ['普通'], 'weakness': ['格斗'], 'HP': 48, 'attack': 48, 'defense': 48, 'speed': 48}, 133: {'name': '伊布', 'type': ['普通'], 'weakness': ['格斗'], 'HP': 55, 'attack': 55, 'defense': 50, 'speed': 55}, 134: {'name': '水伊布', 'type': ['水'], 'weakness': ['草', '电'], 'HP': 130, 'attack': 65, 'defense': 60, 'speed': 65}, 135: {'name': '雷伊布', 'type': ['电'], 'weakness': ['地面'], 'HP': 65, 'attack': 65, 'defense': 60, 'speed': 130}, 136: {'name': '火伊布', 'type': ['火'], 'weakness': ['地面', '岩石', '水'], 'HP': 65, 'attack': 130, 'defense': 60, 'speed': 65}, 137: {'name': '3D龙', 'type': ['普通'], 'weakness': ['格斗'], 'HP': 65, 'attack': 60, 'defense': 70, 'speed': 40}, 138: {'name': '菊石兽', 'type': ['岩石', '水'], 'weakness': ['格斗', '地面', 'steel', '水', '草'], 'HP': 35, 'attack': 40, 'defense': 100, 'speed': 35}, 139: {'name': '多刺菊石兽', 'type': ['岩石', '水'], 'weakness': ['格斗', '地面', 'steel', '水', '草'], 'HP': 70, 'attack': 60, 'defense': 125, 'speed': 55}, 140: {'name': '化石盔', 'type': ['岩石', '水'], 'weakness': ['格斗', '地面', 'steel', '水', '草'], 'HP': 30, 'attack': 80, 'defense': 90, 'speed': 55}, 141: {'name': '镰刀盔', 'type': ['岩石', '水'], 'weakness': ['格斗', '地面', 'steel', '水', '草'], 'HP': 60, 'attack': 115, 'defense': 105, 'speed': 80}, 142: {'name': '化石翼龙', 'type': ['岩石', '飞行'], 'weakness': ['格斗', '地面', 'steel', '水', '草'], 'HP': 80, 'attack': 105, 'defense': 65, 'speed': 130}, 143: {'name': '卡比兽', 'type': ['普通'], 'weakness': ['格斗'], 'HP': 160, 'attack': 110, 'defense': 65, 'speed': 30}, 144: {'name': '急冻鸟', 'type': ['冰', '飞行'], 'weakness': ['格斗', '岩石', 'steel', '火'], 'HP': 90, 'attack': 85, 'defense': 100, 'speed': 85}, 145: {'name': '闪电鸟', 'type': ['电', '飞行'], 'weakness': ['地面'], 'HP': 90, 'attack': 90, 'defense': 85, 'speed': 100}, 146: {'name': '火焰鸟', 'type': ['火', '飞行'], 'weakness': ['地面', '岩石', '水'], 'HP': 90, 'attack': 100, 'defense': 90, 'speed': 90}, 147: {'name': '迷你龙', 'type': ['龙'], 'weakness': ['冰', '龙', '妖精'], 'HP': 41, 'attack': 64, 'defense': 45, 'speed': 50}, 148: {'name': '哈克龙', 'type': ['龙'], 'weakness': ['冰', '龙', '妖精'], 'HP': 61, 'attack': 84, 'defense': 65, 'speed': 70}, 149: {'name': '快龙', 'type': ['龙', '飞行'], 'weakness': ['冰', '龙', '妖精'], 'HP': 91, 'attack': 134, 'defense': 95, 'speed': 80}, 150: {'name': '超梦', 'type': ['超能'], 'weakness': ['虫', '幽灵', '恶'], 'HP': 106, 'attack': 110, 'defense': 90, 'speed': 130}, 151: {'name': '梦幻', 'type': ['超能'], 'weakness': ['虫', '幽灵', '恶'], 'HP': 100, 'attack': 100, 'defense': 100, 'speed': 100}}
type_chart = {
    '普通': {'幽灵': 0, '岩石': 0.5, '钢铁': 0.5},
    '格斗': {'飞行': 0.5, '毒': 0.5, '虫': 0.5, '幽灵': 0, '超能': 0.5, '妖精': 0.5},
    '飞行': {'岩石': 0.5, '电': 0.5, '草': 2, '格斗': 2},
    '毒': {'毒': 0.5, '地面': 0.5, '岩石': 0.5, '虫': 2, '草': 2, '妖精': 2},
    '地面': {'飞行': 0, '虫': 0.5, '火': 2, '电': 2, '草': 0.5, '岩石': 2},
    '岩石': {'格斗': 0.5, '地面': 0.5, '飞行': 2, '火': 2, '虫': 2},
    '虫': {'飞行': 0.5, '岩石': 0.5, '火': 0.5, '格斗': 0.5, '草': 2, '超能': 2},
    '幽灵': {'普通': 0, '超能': 2, '幽灵': 2},
    '火': {'水': 0.5, '地面': 0.5, '岩石': 0.5, '火': 0.5, '草': 2, '冰': 2, '虫': 2, '钢': 2},
    '水': {'水': 0.5, '草': 0.5, '地面': 2, '火': 2, '岩石': 2},
    '草': {'飞行': 0.5, '毒': 0.5, '虫': 0.5, '火': 0.5, '水': 2, '地面': 2, '岩石': 2},
    '电': {'地面': 0, '飞行': 2, '水': 2},
    '超能': {'毒': 2, '格斗': 2, '超能': 0.5, '恶': 0.5, '妖精': 0.5},
    '冰': {'水': 0.5, '火': 0.5, '冰': 0.5, '草': 2, '地面': 2, '飞行': 2, '龙': 2},
    '龙': {'冰': 0.5, '龙': 0.5, '妖精': 0},
    '妖精': {'格斗': 2, '毒': 0.5, '钢': 0.5, '火': 0.5, '龙': 2, '恶': 2},
    '恶': {'格斗': 0.5, '幽灵': 2, '超能': 2, '妖精': 0.5}
}

# 使用示例:
# 计算正常属性技能对幽灵属性宝可梦的效果

# 示例属性相克表

def calculate_type_effectiveness(attacker_types, defender_types):
    effectiveness = 1.0
    for attacker_type in attacker_types:
      for defender_type in defender_types:
            effectiveness *= type_chart.get(attacker_type, {}).get(defender_type, 1)
    return effectiveness


def battle(pokemon1, pokemon2):
    if pokemon1["speed"] > pokemon2["speed"]:
      first, second = pokemon1, pokemon2
    else:
      first, second = pokemon2, pokemon1

    # 打印战斗开始信息
    print(f"啊!野生的{pokemon2['name']}跳了出来!")
    print(f"{pokemon1['name']}!就决定是你了!")
    print(f"{first['name']}先发动攻击!")

    while pokemon1["HP"] > 0 and pokemon2["HP"] > 0:
      # 计算属性相克倍数
      effectiveness1 = calculate_type_effectiveness(first['type'], second['type'])
      effectiveness2 = calculate_type_effectiveness(second['type'], first['type'])

      # 计算伤害
      damage1 = round(first['attack'] * effectiveness1 / 5) + random.randint(-5, 5)
      damage2 = round(second['attack'] * effectiveness2 / 5) + random.randint(-5, 5)

      # 检查是否命中要害
      critical_hit1 = random.randint(1, 100) < 10
      critical_hit2 = random.randint(1, 100) < 10

      # 计算闪避
      eva1 = random.randint(1, 100) < (second['speed'] / 10)# 假设速度影响闪避率,这里进行了简化
      eva2 = random.randint(1, 100) < (first['speed'] / 10)

      # 第一只宝可梦攻击
      if not eva2:
            second["HP"] -= (damage1 * 2 if critical_hit1 else damage1)
            print_attack_result(first, second, damage1, critical_hit1)
      else:
            print(f"{first['name']}对{second['name']}发动了攻击!")
            print(f"{second['name']}躲过了攻击!")
      print(f"{second['name']}还有{second['HP']}血量")

      # 检查第二只宝可梦是否还活着
      if second['HP'] <= 0:
            print(f"{second['name']} 倒下了!{first['name']} 获胜!")
            break

      # 第二只宝可梦攻击
      if not eva1:
            first["HP"] -= (damage2 * 2 if critical_hit2 else damage2)
            print_attack_result(second, first, damage2, critical_hit2)
      else:
            print(f"{second['name']}对{first['name']}发动了攻击!")
            print(f"{first['name']}躲过了攻击!")
      print(f"{first['name']}还有{first['HP']}血量")

      # 检查第一只宝可梦是否还活着
      if first['HP'] <= 0:
            print(f"{first['name']} 倒下了!{second['name']} 获胜!")
            break


def print_attack_result(attacker, defender, damage, critical_hit):
    flag = "\n效果绝佳!" if damage > attacker['attack'] / 5 else "\n收效甚微..."
    if critical_hit:
      print(f"{attacker['name']}对{defender['name']}发动了攻击!命中要害!", end=flag)
    else:
      print(f"{attacker['name']}对{defender['name']}发动了攻击!", end=flag)
    print(f"造成了{damage}点伤害")


# 示例宝可梦数据
poke1 = random.randint(1, 151)
poke2 = random.randint(1, 151)
battle(pdict, pdict)
# 开始战斗





            

继续加油!{:5_108:} {:5_108:} {:5_108:}

FishC 发表于 前天 19:17

以下是您代码的完善建议以及修正内容。我会使用 **Discuz!** 的 BBCode 格式展示结果。

建议与完善修正


[*]代码中有许多占位内容,比如 `'type':` 和 `'weakness':` 的值为空,需补充,这样才能使功能正常运作。
[*]一些函数和逻辑,比如 `battle` 函数里的 `pokemon1` 和 `pokemon2` 对象,以及使用的攻击、防御、速度等属性,逻辑未完整。另外 `print` 信息应根据战斗逻辑动态调整。
[*]建议修改 `battle` 函数,更系统化处理比如属性相克、伤害计算等细节。
[*]最后一部分代码显示不完整,我完善后附带了一段简化的战斗逻辑代码。


修改后的核心代码示例:


import random

type_chart = {
    '普通': {'幽灵': 0, '岩石': 0.5, '钢铁': 0.5},
    '火': {'水': 0.5, '草': 2, '冰': 2},
    # 补充完整类型表...
}

pdict = {
    1: {'name': '妙蛙种子', 'type': ['草'], 'weakness': ['火'], 'HP': 45, 'attack': 49, 'defense': 49, 'speed': 45},
    4: {'name': '小火龙', 'type': ['火'], 'weakness': ['水'], 'HP': 39, 'attack': 52, 'defense': 43, 'speed': 65},
    # 补充完整宝可梦属性...
}

def calculate_type_effectiveness(attacker_types, defender_types):
    effectiveness = 1.0
    for attacker_type in attacker_types:
      for defender_type in defender_types:
            effectiveness *= type_chart.get(attacker_type, {}).get(defender_type, 1)
    return effectiveness

def battle(pokemon_id1, pokemon_id2):
    # 选取两只宝可梦
    pokemon1 = pdict
    pokemon2 = pdict
   
    print(f"野生的 {pokemon2['name']} 出现了!")
    print(f"Go! {pokemon1['name']}!")

    while pokemon1['HP'] > 0 and pokemon2['HP'] > 0:
      # 属性相克计算
      effectiveness1 = calculate_type_effectiveness(pokemon1['type'], pokemon2['type'])
      effectiveness2 = calculate_type_effectiveness(pokemon2['type'], pokemon1['type'])
      
      # 伤害公式
      damage1 = max(1, int((pokemon1['attack'] / pokemon2['defense']) * effectiveness1 * 10))
      damage2 = max(1, int((pokemon2['attack'] / pokemon1['defense']) * effectiveness2 * 10))
      
      # 应用伤害
      pokemon2['HP'] -= damage1
      print(f"{pokemon1['name']} 对 {pokemon2['name']} 造成了 {damage1} 点伤害!剩余 HP: {max(0, pokemon2['HP'])}")
      if pokemon2['HP'] <= 0:
            print(f"{pokemon2['name']} 倒下了!")
            break
      
      pokemon1['HP'] -= damage2
      print(f"{pokemon2['name']} 对 {pokemon1['name']} 造成了 {damage2} 点伤害!剩余 HP: {max(0, pokemon1['HP'])}")
      if pokemon1['HP'] <= 0:
            print(f"{pokemon1['name']} 倒下了!")
            break
   
    # 判断胜负
    if pokemon1['HP'] > 0:
      print(f"{pokemon1['name']} 获胜了!")
    else:
      print(f"{pokemon2['name']} 获胜了!")

# 示例
battle(1, 4)


注意事项:

[*]在 `pdict` 补全所有宝可梦的 `type` 和 `weakness` 信息。
[*]属性相克表需完整,否则计算相克倍率时会因为缺少键值对导致出错。
[*]战斗流程逻辑可以根据实际需求调整,比如增加技能、闪避、暴击等机制。


希望这些调整能帮助您更进一步完善代码!如果需要详细说明某部分逻辑,请继续提问哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

某一个“天” 发表于 前天 20:54

{:10_266:}{:10_266:}

~风介~ 发表于 昨天 09:23

你这管理团队图片属实吓了我一跳

zyx2012 发表于 昨天 09:44

~风介~ 发表于 2025-1-21 15:23
你这管理团队图片属实吓了我一跳

不好意思哈,随便捣鼓捣鼓的,这就换回来

~风介~ 发表于 昨天 10:37

zyx2012 发表于 2025-1-22 09:44
不好意思哈,随便捣鼓捣鼓的,这就换回来

哈哈哈没什么的

~风介~ 发表于 昨天 10:38

zyx2012 发表于 2025-1-22 09:44
不好意思哈,随便捣鼓捣鼓的,这就换回来

我记得之前也有人用过{:10_254:}这种看着有趣哈哈
页: [1]
查看完整版本: 宝可梦小游戏v1.0.1