回答編集履歴

2

クラスを使った例を追加

2019/12/09 10:13

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -40,4 +40,98 @@
40
40
 
41
41
  print("モンスターを倒した")
42
42
 
43
+ ```
44
+
45
+
46
+
47
+ クラスを使った例
48
+
49
+
50
+
43
- ```**ボールドテキスト**
51
+ ```python
52
+
53
+ import random
54
+
55
+
56
+
57
+ class Character:
58
+
59
+
60
+
61
+ def __init__(self, name, hp=0):
62
+
63
+ self.name = name
64
+
65
+ self.hp = hp
66
+
67
+
68
+
69
+ def __str__(self):
70
+
71
+ return self.name
72
+
73
+
74
+
75
+ def is_alive(self):
76
+
77
+ return self.hp > 0
78
+
79
+
80
+
81
+ def attack(self, target):
82
+
83
+ damage = random.randint(1, 10)
84
+
85
+ damage = target.damage(damage)
86
+
87
+ print(f"{self}は{target}に{damage}のダメージを与えた")
88
+
89
+ if not target.is_alive():
90
+
91
+ print(f"{self}は{target}を倒した。")
92
+
93
+
94
+
95
+ def damage(self, point):
96
+
97
+ point = min(point, self.hp)
98
+
99
+ self.hp -= point
100
+
101
+ return point
102
+
103
+
104
+
105
+ enemies = (
106
+
107
+ Character("ワイト", 70),
108
+
109
+ Character("ガーゴイル", 120),
110
+
111
+ Character("ナイト", 140),
112
+
113
+ )
114
+
115
+
116
+
117
+ friends = (
118
+
119
+ Character("勇者"),
120
+
121
+ Character("魔法使い"),
122
+
123
+ Character("武闘家"),
124
+
125
+ )
126
+
127
+
128
+
129
+ while any(enemy.is_alive() for enemy in enemies):
130
+
131
+ enemy = random.choice(enemies)
132
+
133
+ friend = random.choice(friends)
134
+
135
+ friend.attack(enemy)
136
+
137
+ ```

1

誤記訂正

2019/12/09 10:13

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,4 +1,6 @@
1
- グローバル変数に代入するならglobal宣言しましclass定義を使えば不要になりますけど
1
+ グローバル変数に代入するならglobal宣言しましょう
2
+
3
+ class定義を使えば不要になりますけど。
2
4
 
3
5
 
4
6