diff options
author | Joe Zhao <ztuowen@gmail.com> | 2014-12-02 21:40:36 +0800 |
---|---|---|
committer | Joe Zhao <ztuowen@gmail.com> | 2014-12-02 21:40:36 +0800 |
commit | 134770f0cd68eaf0525e03bb6e6cfbd03153fdb7 (patch) | |
tree | eb07c5399b1b9fef21ee82efe12415b86c9237b0 /player | |
parent | 83122b34976d012fc5524152b170adcfef7eef60 (diff) | |
download | Mahjong-134770f0cd68eaf0525e03bb6e6cfbd03153fdb7.tar.gz Mahjong-134770f0cd68eaf0525e03bb6e6cfbd03153fdb7.tar.bz2 Mahjong-134770f0cd68eaf0525e03bb6e6cfbd03153fdb7.zip |
Various UI
Tested Read Card
Diffstat (limited to 'player')
-rw-r--r-- | player/GenericPlayer.java | 33 | ||||
-rw-r--r-- | player/ai/Values.java | 25 | ||||
-rw-r--r-- | player/human/LocalHuman.java | 75 |
3 files changed, 133 insertions, 0 deletions
diff --git a/player/GenericPlayer.java b/player/GenericPlayer.java new file mode 100644 index 0000000..bd53b8c --- /dev/null +++ b/player/GenericPlayer.java @@ -0,0 +1,33 @@ +package mahjong.player; + +import mahjong.aux.Card; +import mahjong.aux.set.Aside; +import mahjong.aux.set.Hand; +import mahjong.aux.set.Set; + +import java.io.IOException; + +/** + * Created by joe on 12/2/14. + */ +public abstract class GenericPlayer { + public Hand hand=new Hand(); + + protected String name; + + public String getName() { + return name; + } + + public abstract void stateUpdate(GenericPlayer player,Aside aside,Card card); + 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 boolean confirmHu(); + +} diff --git a/player/ai/Values.java b/player/ai/Values.java new file mode 100644 index 0000000..ac3db75 --- /dev/null +++ b/player/ai/Values.java @@ -0,0 +1,25 @@ +package mahjong.player.ai; + +/** + * Created by joe on 12/2/14. + */ +public class Values { + public static final double[] valuesI = new double[]{}; + public static final double[] deckValue = new double[] + { + 5, 8, 8, 8, 8, 8, 8, 8, 5, + 5, 8, 8, 8, 8, 8, 8, 8, 5, + 5, 8, 8, 8, 8, 8, 8, 8, 5, + 6,6,6,6, + 6,6,6,0 + }; + public static final double[] spitRate = new double[] + { + 0,6,4,3,4 + }; + + public static double calCardSpitProb(int rems, int id) + { + return spitRate[rems]/deckValue[id]; + } +} diff --git a/player/human/LocalHuman.java b/player/human/LocalHuman.java new file mode 100644 index 0000000..4ae8bf7 --- /dev/null +++ b/player/human/LocalHuman.java @@ -0,0 +1,75 @@ +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())); + } + + @Override + public Card putCard(){ + System.out.println("Your deck now:"); + hand.print(); + 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); + } + + @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) { + return null; + } + + @Override + public Aside confirmChi(Card card) { + return null; + } + + @Override + public Aside confirmJiaAnGang(Card card) { + return null; + } + + @Override + public Aside confirmMingGang(Card card) { + return null; + } + + @Override + public boolean confirmHu() { + return false; + } +} |