質問するログイン新規登録

回答編集履歴

2

リストのマークダウンを修正。

2017/03/29 00:07

投稿

i50
i50

スコア227

answer CHANGED
@@ -7,57 +7,57 @@
7
7
 
8
8
  ---
9
9
  **まず、ジャンケンをざっくりと考えてみます。**
10
- ジャンケンはゲームです。
10
+ - ジャンケンはゲームです。
11
- そのゲームには参加者が複数います。
11
+ - そのゲームには参加者が複数います。
12
- 参加者はジャンケンの手を1つ同時に出します。
12
+ - 参加者はジャンケンの手を1つ同時に出します。
13
- 出した手の強さを競います。
13
+ - 出した手の強さを競います。
14
- 手の強さはグー>チョキ>パー>グー。
14
+ - 手の強さはグー>チョキ>パー>グー。
15
15
 
16
16
  **これらの情報から抽象的な情報と具体的な情報を切り離しつつ、細かく考えます。
17
17
  似ている事はまとめます。変わりそうな事は切り離します。**
18
18
  【抽象的な情報】
19
- ゲームには参加者が複数必要です。
19
+ - ゲームには参加者が複数必要です。
20
- ゲームにはルールが必要です。
20
+ - ゲームにはルールが必要です。
21
- ゲームは開始されます。
21
+ - ゲームは開始されます。
22
- 参加者は手を出せます。
22
+ - 参加者は手を出せます。
23
- 出せる手はルールによって決められます。
23
+ - 出せる手はルールによって決められます。
24
- 出した手はルールによって結果が判定されます。
24
+ - 出した手はルールによって結果が判定されます。
25
- 結果は参加者に知らされます。
25
+ - 結果は参加者に知らされます。
26
26
 
27
27
  【具体的な情報】
28
- ジャンケンのルール。
28
+ - ジャンケンのルール。
29
- _・出せる手はグーチョキパーです。
29
+ 出せる手はグーチョキパーです。
30
- _・手の強さはグー>チョキ>パー>グーです。
30
+ 手の強さはグー>チョキ>パー>グーです。
31
- _・強い手を出した参加者は勝ちという結果になります。
31
+ 強い手を出した参加者は勝ちという結果になります。
32
- _・勝ちが決められないときは引き分けという結果になります。
32
+ 勝ちが決められないときは引き分けという結果になります。
33
- (ジャンケンという)ゲームの流れ。
33
+ - (ジャンケンという)ゲームの流れ。
34
- _・参加者は同時に手を出します。
34
+ 参加者は同時に手を出します。
35
- _・出された手はルールによって勝敗が決められます。
35
+ 出された手はルールによって勝敗が決められます。
36
- _・参加者は勝敗を知ります。
36
+ 参加者は勝敗を知ります。
37
- _・必要なら勝敗が決まるまで繰り返します。
37
+ 必要なら勝敗が決まるまで繰り返します。
38
- (ジャンケンする)参加者。
38
+ - (ジャンケンする)参加者。
39
- _・参加者は人間だったりコンピュータだったりします。
39
+ 参加者は人間だったりコンピュータだったりします。
40
40
 
41
41
  **ここで、抽象的な情報をインターフェースにします。**
42
- ゲーム→IGame
42
+ - ゲーム→IGame
43
- ルール→IRule
43
+ - ルール→IRule
44
- 参加者→IPlayer
44
+ - 参加者→IPlayer
45
- 手(原因)→ICause
45
+ - 手(原因)→ICause
46
- 結果→IResult
46
+ - 結果→IResult
47
47
 
48
48
  **これらの関係を、インターフェースのメソッドで示します。**
49
- ゲームは参加者が複数必要です。→void IGame.joinPlayers(IPlayer)
49
+ - ゲームは参加者が複数必要です。→void IGame.joinPlayers(IPlayer)
50
- ゲームにはルールが必要です。→void IGame.followRule(IRule)
50
+ - ゲームにはルールが必要です。→void IGame.followRule(IRule)
51
- ゲームは開始されます。→void IGame.start()
51
+ - ゲームは開始されます。→void IGame.start()
52
- 参加者は手を出せます。→ICause IPlayer.serveCause()
52
+ - 参加者は手を出せます。→ICause IPlayer.serveCause()
53
- 出せる手はルールによって決められます。→void IRule.valid(ICause)
53
+ - 出せる手はルールによって決められます。→void IRule.valid(ICause)
54
- 出した手はルールによって結果が判定されます。→IResult IRule.match(ICause, ICause)
54
+ - 出した手はルールによって結果が判定されます。→IResult IRule.match(ICause, ICause)
55
- 結果は参加者に知らされます。→void IPlayer.result(IResult)
55
+ - 結果は参加者に知らされます。→void IPlayer.result(IResult)
56
56
 
57
57
  **具体的な情報は、これらインターフェースを実装したクラスになります。**
58
- ジャンケンのルール。→JankenRule
58
+ - ジャンケンのルール。→JankenRule
59
- (ジャンケンという)ゲームの流れ。→OnceGame、DrawLoopGame
59
+ - (ジャンケンという)ゲームの流れ。→OnceGame、DrawLoopGame
60
- (ジャンケンする)参加者。→CauseStrategiedPlayer
60
+ - (ジャンケンする)参加者。→CauseStrategiedPlayer
61
61
  ここでは参加者から、人間やコンピュータという具体性を、戦略として抽象化し分離しています。
62
62
  →JankenCauseAtRandom、JankenCauseStdin
63
63
 

1

全角スペースでのインデントが反映されていないので、アンダースコアにした。

2017/03/29 00:07

投稿

i50
i50

スコア227

answer CHANGED
@@ -26,17 +26,17 @@
26
26
 
27
27
  【具体的な情報】
28
28
  ・ジャンケンのルール。
29
- ・出せる手はグーチョキパーです。
29
+ _・出せる手はグーチョキパーです。
30
- ・手の強さはグー>チョキ>パー>グーです。
30
+ _・手の強さはグー>チョキ>パー>グーです。
31
- ・強い手を出した参加者は勝ちという結果になります。
31
+ _・強い手を出した参加者は勝ちという結果になります。
32
- ・勝ちが決められないときは引き分けという結果になります。
32
+ _・勝ちが決められないときは引き分けという結果になります。
33
33
  ・(ジャンケンという)ゲームの流れ。
34
- ・参加者は同時に手を出します。
34
+ _・参加者は同時に手を出します。
35
- ・出された手はルールによって勝敗が決められます。
35
+ _・出された手はルールによって勝敗が決められます。
36
- ・参加者は勝敗を知ります。
36
+ _・参加者は勝敗を知ります。
37
- ・必要なら勝敗が決まるまで繰り返します。
37
+ _・必要なら勝敗が決まるまで繰り返します。
38
38
  ・(ジャンケンする)参加者。
39
- ・参加者は人間だったりコンピュータだったりします。
39
+ _・参加者は人間だったりコンピュータだったりします。
40
40
 
41
41
  **ここで、抽象的な情報をインターフェースにします。**
42
42
  ・ゲーム→IGame