1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
package mahjong.player.human;
import mahjong.aux.Card;
import mahjong.aux.set.Aside;
import mahjong.aux.set.Hand;
import mahjong.player.GenericPlayer;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* Created by joe on 12/2/14.
*/
public class LocalHuman extends GenericPlayer {
public LocalHuman(String name)
{
this.name=name;
}
@Override
public void stateUpdate(GenericPlayer player, Aside aside, Card card) {
if (aside!=null)
System.out.println(player.getName().concat(":\n\t").concat(aside.getType().name()).concat("\tStart with\t").concat(aside.getRep().getNormalName()));
if (card!=null)
System.out.println(player.getName().concat(":\n\t").concat("Putdown:\t").concat(card.getNormalName()));
}
public Card readCardFromInput()
{
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
String cardStr="Yi Wan";
try {
cardStr = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return new Card(cardStr);
}
public boolean genConfirm(String question)
{
System.out.println(question);
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
String inStr="O";
try {
while (inStr.toUpperCase().compareTo("Y")!=0 && inStr.toUpperCase().compareTo("N")!=0)
inStr = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
if (inStr.toUpperCase().compareTo("Y")==0)
return true;
return false;
}
@Override
public Card putCard(){
System.out.println("Your deck now:");
hand.print();
return readCardFromInput();
}
@Override
public void give(Card card) {
System.out.println("You drew:\n\t".concat(card.getNormalName()));
hand.add(card);
}
@Override
public Aside confirmPeng(Card card, int from) {
if (genConfirm("Peng?"))
return new Aside(card, Aside.Type.Peng,from);
return null;
}
@Override
public Aside confirmChi(Card card, int from) {
if (genConfirm("Chi?"))
return new Aside(readCardFromInput(), Aside.Type.jGang, from);
return null;
}
@Override
public Aside confirmJiaAnGang(Card card, int from) {
if (genConfirm("Gang?")) {
if (readCardFromInput().getId() == card.getId())
return new Aside(card, Aside.Type.jGang, from);
else
return new Aside(card, Aside.Type.aGang, from);
}
return null;
}
@Override
public Aside confirmMingGang(Card card, int from) {
if (genConfirm("Gang?"))
return new Aside(card, Aside.Type.mGang, from);
return null;
}
@Override
public boolean confirmHu(Card card, int from) {
System.out.println("Card:\n\t".concat(card.getNormalName()));
if (genConfirm("Hu?"))
return true;
return false;
}
}
|