回答編集履歴
3
修正
test
CHANGED
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
|
40
40
|
|
41
|
-
|
41
|
+
案
|
42
42
|
|
43
43
|
---
|
44
44
|
|
@@ -70,7 +70,7 @@
|
|
70
70
|
|
71
71
|
|
72
72
|
|
73
|
-
def
|
73
|
+
def pick_from(self, frm, n):
|
74
74
|
|
75
75
|
...
|
76
76
|
|
@@ -86,7 +86,7 @@
|
|
86
86
|
|
87
87
|
def draw(self, deck, n):
|
88
88
|
|
89
|
-
self._hand.
|
89
|
+
self._hand.pick_from(deck, n)
|
90
90
|
|
91
91
|
```
|
92
92
|
|
@@ -98,4 +98,6 @@
|
|
98
98
|
|
99
99
|
|
100
100
|
|
101
|
+
これは一つの案に過ぎません。
|
102
|
+
|
101
|
-
|
103
|
+
正解などありませんから、いろいろと設計を考え、しっくり来るものを選んでみて下さい。
|
2
追記
test
CHANGED
@@ -35,3 +35,67 @@
|
|
35
35
|
player2.draw(2, deck)
|
36
36
|
|
37
37
|
```
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
こんなクラスの組み方をしても良いかも
|
42
|
+
|
43
|
+
---
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
```Python
|
48
|
+
|
49
|
+
class Cards:
|
50
|
+
|
51
|
+
...
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
def shuffle(...):
|
56
|
+
|
57
|
+
...
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
class Deck(Cards):
|
62
|
+
|
63
|
+
...
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
class Hands(Cards):
|
68
|
+
|
69
|
+
...
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
def draw(self, frm, n):
|
74
|
+
|
75
|
+
...
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
class Player:
|
80
|
+
|
81
|
+
def __init__(self)
|
82
|
+
|
83
|
+
self._hand = Hand()
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
def draw(self, deck, n):
|
88
|
+
|
89
|
+
self._hand.draw(deck, n)
|
90
|
+
|
91
|
+
```
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
このようにDeckとHandsに共通の親を持たせてやると、
|
96
|
+
|
97
|
+
『Playerの手札をシャッフルする』とか『ソートする』といった処理が簡単に書けます。
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
これはあくまで一例ですので、いろいろと設計を考えてみると良いでしょう。
|
1
成形
test
CHANGED
@@ -4,7 +4,13 @@
|
|
4
4
|
|
5
5
|
そもそも論になってしまいますが、継承関係が変です。
|
6
6
|
|
7
|
-
継承しているということは
|
7
|
+
継承しているということは、**『PlayerはDeckの一種である』**と言っているようなものだからです。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
Deckがshuffleメソッドを提供していたなら、
|
12
|
+
|
13
|
+
Playerも同じようにshuffleメソッドを持つことになります。なんか変ですよね。
|
8
14
|
|
9
15
|
|
10
16
|
|