summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Zhao <ztuowen@gmail.com>2014-12-04 14:03:32 +0800
committerJoe Zhao <ztuowen@gmail.com>2014-12-04 14:03:32 +0800
commit0d3a0f0ca6c038ba931edbde87bd21db9397327b (patch)
tree6295fe710d78fefe72a89b713173c1715f4cefa7
parent794adefd667d4ac4c0cb2e83bb7eb27ed483bbd9 (diff)
downloadMahjong-0d3a0f0ca6c038ba931edbde87bd21db9397327b.tar.gz
Mahjong-0d3a0f0ca6c038ba931edbde87bd21db9397327b.tar.bz2
Mahjong-0d3a0f0ca6c038ba931edbde87bd21db9397327b.zip
Restructuring
-rw-r--r--aux/Environ.java13
-rw-r--r--engine/Engine.java11
-rw-r--r--player/PlayerActionHandler.java29
-rw-r--r--player/PlayerActionServer.java29
-rw-r--r--tools/Deck.java7
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;
}
}