summaryrefslogtreecommitdiff
path: root/player
diff options
context:
space:
mode:
authorJoe Zhao <ztuowen@gmail.com>2014-12-03 00:19:22 +0800
committerJoe Zhao <ztuowen@gmail.com>2014-12-03 00:19:22 +0800
commit20192ee5e02f3b87992764b68063028cb15e9d50 (patch)
treeca463d35990d0df51993678661fc601811063189 /player
parent134770f0cd68eaf0525e03bb6e6cfbd03153fdb7 (diff)
downloadMahjong-20192ee5e02f3b87992764b68063028cb15e9d50.tar.gz
Mahjong-20192ee5e02f3b87992764b68063028cb15e9d50.tar.bz2
Mahjong-20192ee5e02f3b87992764b68063028cb15e9d50.zip
Engine in construction
Before total revision of Aside
Diffstat (limited to 'player')
-rw-r--r--player/GenericPlayer.java10
-rw-r--r--player/human/LocalHuman.java55
2 files changed, 51 insertions, 14 deletions
diff --git a/player/GenericPlayer.java b/player/GenericPlayer.java
index bd53b8c..bae29a1 100644
--- a/player/GenericPlayer.java
+++ b/player/GenericPlayer.java
@@ -23,11 +23,11 @@ public abstract class GenericPlayer {
public abstract Card putCard();
public abstract void give(Card card);
- public abstract Aside confirmPeng(Card card);
- public abstract Aside confirmChi(Card card);
- public abstract Aside confirmJiaAnGang(Card card);
- public abstract Aside confirmMingGang(Card card);
+ public abstract Aside confirmPeng(Card card, int from);
+ public abstract Aside confirmChi(Card card, int from);
+ public abstract Aside confirmJiaAnGang(Card card, int from);
+ public abstract Aside confirmMingGang(Card card, int from);
- public abstract boolean confirmHu();
+ public abstract boolean confirmHu(Card card,int from);
}
diff --git a/player/human/LocalHuman.java b/player/human/LocalHuman.java
index 4ae8bf7..48da715 100644
--- a/player/human/LocalHuman.java
+++ b/player/human/LocalHuman.java
@@ -27,10 +27,8 @@ public class LocalHuman extends GenericPlayer {
System.out.println(player.getName().concat(":\n\t").concat("Putdown:\t").concat(card.getNormalName()));
}
- @Override
- public Card putCard(){
- System.out.println("Your deck now:");
- hand.print();
+ public Card readCardFromInput()
+ {
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
String cardStr="Yi Wan";
@@ -42,6 +40,30 @@ public class LocalHuman extends GenericPlayer {
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()));
@@ -49,27 +71,42 @@ public class LocalHuman extends GenericPlayer {
}
@Override
- public Aside confirmPeng(Card card) {
+ 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) {
+ 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) {
+ 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) {
+ public Aside confirmMingGang(Card card, int from) {
+ if (genConfirm("Gang?"))
+ return new Aside(card, Aside.Type.mGang, from);
return null;
}
@Override
- public boolean confirmHu() {
+ public boolean confirmHu(Card card, int from) {
+ System.out.println("Card:\n\t".concat(card.getNormalName()));
+ if (genConfirm("Hu?"))
+ return true;
return false;
}
}