summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Zhao <ztuowen@gmail.com>2014-12-03 20:12:13 +0800
committerJoe Zhao <ztuowen@gmail.com>2014-12-03 20:12:13 +0800
commit2bd91f30c298f6fbdd1d0f84f26e1f228ec37152 (patch)
tree588d3fe4fa97e990601afc31aafb54f6caa9c3d4
parent4b018af45ad8a133ae7abe2b164c18e3e345291b (diff)
downloadMahjong-2bd91f30c298f6fbdd1d0f84f26e1f228ec37152.tar.gz
Mahjong-2bd91f30c298f6fbdd1d0f84f26e1f228ec37152.tar.bz2
Mahjong-2bd91f30c298f6fbdd1d0f84f26e1f228ec37152.zip
New framework
-rw-r--r--engine/Logger.java7
-rw-r--r--player/GenericPlayer.java13
-rw-r--r--player/ai/AIPlayer.java19
-rw-r--r--player/human/LocalHuman.java73
4 files changed, 32 insertions, 80 deletions
diff --git a/engine/Logger.java b/engine/Logger.java
new file mode 100644
index 0000000..2fa1219
--- /dev/null
+++ b/engine/Logger.java
@@ -0,0 +1,7 @@
+package mahjong.engine;
+
+/**
+ * Created by joe on 12/3/14.
+ */
+public class Logger {
+}
diff --git a/player/GenericPlayer.java b/player/GenericPlayer.java
index b965310..23cea93 100644
--- a/player/GenericPlayer.java
+++ b/player/GenericPlayer.java
@@ -4,6 +4,7 @@ import mahjong.aux.Card;
import mahjong.aux.set.Aside;
import mahjong.aux.set.Hand;
import mahjong.aux.set.Set;
+import mahjong.engine.Action;
import java.io.IOException;
@@ -20,16 +21,8 @@ public abstract class GenericPlayer {
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, 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(Card card,int from);
+ public abstract Action stateAlert(Action action);
+ public abstract void stateUpdate(Action action);
public void setScore(int score) {
this.score = score;
diff --git a/player/ai/AIPlayer.java b/player/ai/AIPlayer.java
new file mode 100644
index 0000000..8619fe0
--- /dev/null
+++ b/player/ai/AIPlayer.java
@@ -0,0 +1,19 @@
+package mahjong.player.ai;
+
+import mahjong.engine.Action;
+import mahjong.player.GenericPlayer;
+
+/**
+ * Created by joe on 12/3/14.
+ */
+public class AIPlayer extends GenericPlayer {
+ @Override
+ public Action stateAlert(Action action) {
+ return null;
+ }
+
+ @Override
+ public void stateUpdate(Action action) {
+
+ }
+}
diff --git a/player/human/LocalHuman.java b/player/human/LocalHuman.java
index dd47666..e04b89a 100644
--- a/player/human/LocalHuman.java
+++ b/player/human/LocalHuman.java
@@ -3,6 +3,7 @@ package mahjong.player.human;
import mahjong.aux.Card;
import mahjong.aux.set.Aside;
import mahjong.aux.set.Hand;
+import mahjong.engine.Action;
import mahjong.player.GenericPlayer;
import java.io.BufferedReader;
@@ -20,80 +21,12 @@ public class LocalHuman extends GenericPlayer {
}
@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()[0].getNormalName()));
- if (card!=null)
- System.out.println(player.getName().concat(":\n\t").concat("Putdown:\t").concat(card.getNormalName()));
- }
-
- 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 Card.readCardFromInput();
- }
-
- @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, int from) {
- if (genConfirm("Peng?"))
- return new Aside(Card.readMultipleCardFromInput(3), Aside.Type.Peng,from);
+ public Action stateAlert(Action action) {
return null;
}
@Override
- public Aside confirmChi(Card card, int from) {
- if (genConfirm("Chi?"))
- return new Aside(Card.readMultipleCardFromInput(3), Aside.Type.jGang, from);
- return null;
- }
-
- @Override
- public Aside confirmJiaAnGang(Card card, int from) {
- if (genConfirm("Gang?")) {
- if (Card.readCardFromInput().getId() == card.getId())
- return new Aside(Card.readMultipleCardFromInput(4), Aside.Type.jGang, from);
- else
- return new Aside(Card.readMultipleCardFromInput(4), Aside.Type.aGang, from);
- }
- return null;
- }
+ public void stateUpdate(Action action) {
- @Override
- public Aside confirmMingGang(Card card, int from) {
- if (genConfirm("Gang?"))
- return new Aside(Card.readMultipleCardFromInput(4), Aside.Type.mGang, from);
- return null;
- }
-
- @Override
- public boolean confirmHu(Card card, int from) {
- System.out.println("Card:\n\t".concat(card.getNormalName()));
- if (genConfirm("Hu?"))
- return true;
- return false;
}
}