質問編集履歴

5

文言の修正

2018/12/26 12:13

投稿

taitai05
taitai05

スコア13

test CHANGED
File without changes
test CHANGED
@@ -2,9 +2,17 @@
2
2
 
3
3
  テキストでRPGの戦闘を題材にクラスの継承を勉強中です。
4
4
 
5
- 出題された問題はクリアしたのですが、でばもう少しリアルにしたいので、
5
+ 出題された問題は、勇者・戦士と魔法使いは表示さる文言を変えて出すため継承を利用ていまし
6
6
 
7
+ print(self.name+"は"+enemy+"を攻撃した") #戦士、勇者の時
8
+
9
+ print(self.name+"は"+enemy+"に魔法を唱えた") #魔法使いの時
10
+
11
+
12
+
13
+ 問題はクリアしたのですが、できればついでにもう少しリアルにしたいので、
14
+
7
- のwizardクラスのattackメソッドにある「魔法」に種類を追加したいです。
15
+ 魔法使い攻撃については、wizardクラスのattackメソッドにある「魔法」に種類を追加したいです。
8
16
 
9
17
  「炎」
10
18
 

4

文言修正

2018/12/26 12:13

投稿

taitai05
taitai05

スコア13

test CHANGED
@@ -1 +1 @@
1
- RPG戦闘でクラスの継承を使っ、魔法攻撃の種類も追加したい
1
+ RPG戦闘でクラスの継承を使ったまま、魔法攻撃の種類も追加したい
test CHANGED
@@ -1,4 +1,6 @@
1
+ 初心者です。初歩的な質問ですいません。
2
+
1
- RPGの戦闘を題材にクラスの継承を勉強中です。
3
+ テキストでRPGの戦闘を題材にクラスの継承を勉強中です。
2
4
 
3
5
  出題された問題はクリアしたのですが、できればもう少しリアルにしたいので、
4
6
 

3

文言の修正

2018/12/26 12:08

投稿

taitai05
taitai05

スコア13

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  出題された問題はクリアしたのですが、できればもう少しリアルにしたいので、
4
4
 
5
- 下のwizardクラスのattackメソッドにある「魔法」に種類追加したいです。
5
+ 下のwizardクラスのattackメソッドにある「魔法」に種類追加したいです。
6
6
 
7
7
  「炎」
8
8
 
@@ -10,7 +10,7 @@
10
10
 
11
11
  「水」
12
12
 
13
- などで、「炎を唱えた」などに変えたいです。
13
+ などで、「魔法使いはスライムに炎を唱えた」などと表示されるようたいです。
14
14
 
15
15
 
16
16
 

2

文字の修正

2018/12/26 12:06

投稿

taitai05
taitai05

スコア13

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
- クラスの継承をRPG戦闘で勉強中です。
1
+ RPGの戦闘を題材にクラスの継承を勉強中です。
2
2
 
3
- 問題はクリアしたのですが、できればもっとリアルにしたいので、
3
+ 出題された問題はクリアしたのですが、できればもう少しリアルにしたいので、
4
4
 
5
5
  下のwizardクラスのattackメソッドにある「魔法」に種類追加したいです。
6
6
 

1

内容の修正

2018/12/26 12:04

投稿

taitai05
taitai05

スコア13

test CHANGED
File without changes
test CHANGED
@@ -1,50 +1,8 @@
1
- class Player():
1
+ クラスの継承をRPG戦闘で勉強中です。
2
2
 
3
- def __init__(self,name):
3
+ 問題はクリアしたのですが、できればもっとリアルにしたいので、
4
4
 
5
- self.name=name
6
-
7
- def attack(self,enemy):
8
-
9
- print(self.name+"は"+enemy+"を攻撃した")
10
-
11
-
12
-
13
- class Wizard(Player):
14
-
15
- def attack(self,enemy):
16
-
17
- print(self.name+"は"+enemy+"に魔法を唱えた")
18
-
19
-
20
-
21
- party=[]
22
-
23
- party.append(Player("勇者"))
24
-
25
- party.append(Player("戦士"))
26
-
27
- party.append(Wizard("魔法使い"))
28
-
29
- for player in party:
30
-
31
- player.attack("スライム")
32
-
33
-
34
-
35
- 結果は
36
-
37
- 勇者はスライムを攻撃した
38
-
39
- 戦士はスライムを攻撃した
40
-
41
- 魔法使いはスライムに魔法を唱えた
42
-
43
- となります。
44
-
45
-
46
-
47
- これのwizardクラスのattackメソッドにある「魔法」に種類追加したいです。
5
+ のwizardクラスのattackメソッドにある「魔法」に種類追加したいです。
48
6
 
49
7
  「炎」
50
8
 
@@ -56,11 +14,17 @@
56
14
 
57
15
 
58
16
 
17
+ ```python
18
+
59
19
  class Player():
60
20
 
61
- def __init__(self,name):
21
+ def __init__(self,name,spell):
62
22
 
63
23
  self.name=name
24
+
25
+ self.spell=spell
26
+
27
+
64
28
 
65
29
  def attack(self,enemy):
66
30
 
@@ -70,46 +34,62 @@
70
34
 
71
35
  class Wizard(Player):
72
36
 
73
- def attack(self,enemy):
37
+
74
38
 
39
+ def attack(self,enemy,spell):
40
+
75
- print(self.name+"は"+enemy+"に魔法を唱えた")
41
+ print(self.name+"は"+enemy+"に"+self.spell+"を唱えた")
76
42
 
77
43
 
78
44
 
79
- party=[]
80
45
 
81
- party.append(Player("勇者"))
82
46
 
83
- party.append(Player("戦士"))
47
+ hero=Player("勇者")
84
48
 
49
+ warrior=Player("戦士")
50
+
85
- party.append(Wizard("魔法使い"))
51
+ wizard=Wizard("魔法使い")
52
+
53
+ party=[hero,warrior,wizard]
54
+
55
+
86
56
 
87
57
  for player in party:
88
58
 
59
+ if player==wizard:
60
+
61
+ maho=["fire","water","riot"]
62
+
63
+ fire=(Wizard("炎"))
64
+
65
+ water=(Wizard("水"))
66
+
67
+ riot=(Wizard("雷"))
68
+
69
+ for spell in maho:
70
+
71
+ spell.attack()
72
+
73
+ else:
74
+
89
- player.attack("スライム")
75
+ player.attack("スライム")
76
+
77
+ ```
90
78
 
91
79
 
92
80
 
93
- fire=Wizard("炎")
81
+ spellの使い方でエラーが出てしまいます。
94
82
 
95
- wind=Wizard("風")
83
+ Traceback (most recent call last):
96
84
 
97
- water=Wizard("水")
85
+ File "Main.py", line 15, in <module>
98
86
 
99
- maho=[fire,wind,water]
87
+ hero=Player("勇者")
100
88
 
101
- for choice in maho:
89
+ TypeError: __init__() missing 1 required positional argument: 'spell'
102
-
103
- choice.attack()
104
-
105
- までは用意できるのですが、
106
-
107
- おそらくループの順番などの問題でうまく動きません。
108
-
109
- 引数もいまいち入れ方が分かりません。
110
-
111
- どのようにやればよいのでしょうか。
112
90
 
113
91
 
114
92
 
93
+ どのようにspellを使えばいいのでしょうか?
94
+
115
- こういうことをやるにはクラスの継承を使うこ自体間違っているのでしょうか
95
+ 文章だ、spellオブジェクトになってしまっているのだと思います