diff options
| author | Joe Zhao <ztuowen@gmail.com> | 2014-12-03 00:19:22 +0800 | 
|---|---|---|
| committer | Joe Zhao <ztuowen@gmail.com> | 2014-12-03 00:19:22 +0800 | 
| commit | 20192ee5e02f3b87992764b68063028cb15e9d50 (patch) | |
| tree | ca463d35990d0df51993678661fc601811063189 /player | |
| parent | 134770f0cd68eaf0525e03bb6e6cfbd03153fdb7 (diff) | |
| download | Mahjong-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.java | 10 | ||||
| -rw-r--r-- | player/human/LocalHuman.java | 55 | 
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;      }  }  | 
