回答編集履歴

3

修正

2020/02/17 15:11

投稿

LouiS0616
LouiS0616

スコア35668

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 draw(self, frm, n):
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.draw(deck, n)
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

追記

2020/02/17 15:11

投稿

LouiS0616
LouiS0616

スコア35668

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

成形

2020/02/17 15:00

投稿

LouiS0616
LouiS0616

スコア35668

test CHANGED
@@ -4,7 +4,13 @@
4
4
 
5
5
  そもそも論になってしまいますが、継承関係が変です。
6
6
 
7
- 継承しているということはつまり、**『PlayerはDeckの一種である』**と言っているようなものだからです。
7
+ 継承しているということは、**『PlayerはDeckの一種である』**と言っているようなものだからです。
8
+
9
+
10
+
11
+ Deckがshuffleメソッドを提供していたなら、
12
+
13
+ Playerも同じようにshuffleメソッドを持つことになります。なんか変ですよね。
8
14
 
9
15
 
10
16