diff options
author | Joe Zhao <ztuowen@gmail.com> | 2014-12-04 14:03:32 +0800 |
---|---|---|
committer | Joe Zhao <ztuowen@gmail.com> | 2014-12-04 14:03:32 +0800 |
commit | 0d3a0f0ca6c038ba931edbde87bd21db9397327b (patch) | |
tree | 6295fe710d78fefe72a89b713173c1715f4cefa7 | |
parent | 794adefd667d4ac4c0cb2e83bb7eb27ed483bbd9 (diff) | |
download | Mahjong-0d3a0f0ca6c038ba931edbde87bd21db9397327b.tar.gz Mahjong-0d3a0f0ca6c038ba931edbde87bd21db9397327b.tar.bz2 Mahjong-0d3a0f0ca6c038ba931edbde87bd21db9397327b.zip |
Restructuring
-rw-r--r-- | aux/Environ.java | 13 | ||||
-rw-r--r-- | engine/Engine.java | 11 | ||||
-rw-r--r-- | player/PlayerActionHandler.java | 29 | ||||
-rw-r--r-- | player/PlayerActionServer.java | 29 | ||||
-rw-r--r-- | tools/Deck.java | 7 |
5 files changed, 83 insertions, 6 deletions
diff --git a/aux/Environ.java b/aux/Environ.java index 701f220..b031bf6 100644 --- a/aux/Environ.java +++ b/aux/Environ.java @@ -1,7 +1,20 @@ package mahjong.aux; +import mahjong.aux.set.CardSet; +import mahjong.tools.Deck; + /** * Created by joe on 12/1/14. */ public class Environ { + CardSet remCards; + { + remCards = new CardSet(0); + remCards.add(Deck.generateDeck(true),1); + } + + public Environ() + { + + } } diff --git a/engine/Engine.java b/engine/Engine.java index eec7b73..6a8773d 100644 --- a/engine/Engine.java +++ b/engine/Engine.java @@ -4,6 +4,7 @@ import mahjong.aux.Card; import mahjong.aux.set.Aside; import mahjong.aux.set.Set; import mahjong.player.GenericPlayer; +import mahjong.player.PlayerActionServer; import mahjong.tools.Deck; import java.util.Random; @@ -12,10 +13,10 @@ import java.util.Random; * Created by joe on 12/2/14. */ public class Engine { - GenericPlayer[] players=new GenericPlayer[4]; + PlayerActionServer[] players=new PlayerActionServer[4]; Set deck; - public Engine(GenericPlayer player1,GenericPlayer player2,GenericPlayer player3,GenericPlayer player4) + public Engine(PlayerActionServer player1,PlayerActionServer player2,PlayerActionServer player3,PlayerActionServer player4) { players[0]=player1; players[1]=player2; @@ -30,7 +31,7 @@ public class Engine { for (int i=0;i<5;++i) { int x = rand.nextInt(4); int y = (x+rand.nextInt(3)+1)%4; - GenericPlayer tmp; + PlayerActionServer tmp; tmp=players[x]; players[x]=players[y]; players[y]=tmp; @@ -42,7 +43,7 @@ public class Engine { ShufflePlayer(); for (int i=0;i<4;++i) System.out.println(players[i].getName()); - deck = Deck.generateDeck(); + deck = Deck.generateDeck(true); } public static void playerPutAsideCards(GenericPlayer player, Card card, Aside aside) @@ -63,7 +64,7 @@ public class Engine { while (!hu && deck.getSize()>0) { Card card=deck.draw(); - GenericPlayer player=players[pos]; + PlayerActionServer player=players[pos]; // Hu if (player.hand.huAble(card)) { diff --git a/player/PlayerActionHandler.java b/player/PlayerActionHandler.java new file mode 100644 index 0000000..05a042c --- /dev/null +++ b/player/PlayerActionHandler.java @@ -0,0 +1,29 @@ +package mahjong.player; + +import mahjong.aux.set.Hand; +import mahjong.engine.Action; + +/** + * Created by joe on 12/4/14. + */ +public abstract class PlayerActionHandler { + public Hand hand=new Hand(); + int score; + + protected String name; + + public String getName() { + return name; + } + + public abstract Action stateAlert(Action action); + public abstract void stateUpdate(Action action); + + public void setScore(int score) { + this.score = score; + } + + public int getScore() { + return score; + } +} diff --git a/player/PlayerActionServer.java b/player/PlayerActionServer.java new file mode 100644 index 0000000..49fcef4 --- /dev/null +++ b/player/PlayerActionServer.java @@ -0,0 +1,29 @@ +package mahjong.player; + +import mahjong.aux.set.Hand; +import mahjong.engine.Action; + +/** + * Created by joe on 12/4/14. + */ +public abstract class PlayerActionServer { + public Hand hand=new Hand(); + int score; + + protected String name; + + public String getName() { + return name; + } + + public abstract Action stateAlert(Action action); + public abstract void stateUpdate(Action action); + + public void setScore(int score) { + this.score = score; + } + + public int getScore() { + return score; + } +} diff --git a/tools/Deck.java b/tools/Deck.java index d2e4d0c..6ff2cc9 100644 --- a/tools/Deck.java +++ b/tools/Deck.java @@ -8,12 +8,17 @@ import mahjong.aux.set.Set; * Created by joe on 12/1/14. */ public class Deck { - static public Set generateDeck() + static public Set generateDeck(boolean ex) { Set deck = new Set(); for (int i=0; i<CardSet.cardTypeTotal;++i) for (int cnt=0; cnt<4; ++cnt) deck.add(new Card(CardSet.deckIds[i])); + if (ex) + { + deck.remove(new Card(":5s"));deck.remove(new Card(":5p"));deck.remove(new Card(":5m")); + deck.remove(new Card(":0s"));deck.remove(new Card(":0p"));deck.remove(new Card(":0m")); + } return deck; } } |