🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
RPG

RPG (Report Program Generator)とは、IBMの System i(AS/400)サーバ向けのプログラミング言語です。

Q&A

1回答

1325閲覧

なぜTypeError: Weapon() takes no argumentsが表示されるのかがわからない

nbt

総合スコア0

RPG

RPG (Report Program Generator)とは、IBMの System i(AS/400)サーバ向けのプログラミング言語です。

0グッド

0クリップ

投稿2020/12/28 13:18

#コード
class Weapon:
def abs(self, item, power):
self.item = item
self.power = power

class Character:
def init(self, name, hp, power):
self.name = name
self.hp = hp
self.power = power

class Monster(Character):
def init(self, name, hp, power, num):
super().init(name, hp, power)
self.num = num

class Hero(Character):
def init(self, name, hp, power, weapon):
super().init(name, hp, power)
self.equip_power = power + weapon.power
self.weapon = weapon.item

def get(self,weap):
if self.weapon == weap.item:
print('既に{0}を装備しています。攻撃力は{1}です。'
.format(weap.item,self.equip_power))
else:
self.equip_power=self.power + weap.power
self.weapon = weap.item
print('武器を{0}に変更しました。攻撃力は{1}になります。'
.format(weap.item,self.equip_power))

def encounter(self, monster): print('{}と遭遇しました。'.format(monster.name)) while True: battle = input('戦いますか。【1:戦う 2:逃げる】:') if int(battle) == 1: monster.hp = monster.hp - self.equip_power print('{0}に{1}のダメージ'.format(monster.name, self.equip_power)) if monster.hp > 0: for i in range(monster.num): self.hp = self.hp - monster.power if self.hp > 0: print(i + 1, '回目の{0}の攻撃です。{1}のHPは残り{2}です。' .format(monster.name, self.name, self.hp)) else: print('{0}回目の攻撃です。{2}のHPは残り0です。' .format(i + 1, monster.name, self.name)) print('Game Over') break if self.hp <= 0: break else: print('{}を倒しました。'.format(monster.name)) break elif int(battle) == 2: print('{}は逃げ出した。'.format(self.name)) break else: print('そのコマンドはありません。') continue

no = Weapon('素手',0)
sord1 = Weapon('ひのきのぼう',5)
sord2 = Weapon('伝説の剣',40)
yusha = Hero('勇者',100,10,no)
maou = Monster('魔王',1000,10,3)
slime = Monster('スライム',10,1,1)

yusha.get(sord1)
yusha.get(sord1)
yusha.get(sord2)
yusha.encounter(slime)
yusha.encounter(maou)

####これを実行するとTypeError: Weapon() takes no argumentsが表示されます。
####どこを直せばよろしいでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

def abs(self, item, power):def __init__(self, item, power):に修正。

3箇所のdef init(~):def __init__(~):に修正(~はそれぞれ元の内容のまま)。

9. クラス — Python 3.9.1 ドキュメント

投稿2020/12/28 14:52

編集2020/12/28 14:53
Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問