summaryrefslogtreecommitdiff
path: root/engine/Engine.java
diff options
context:
space:
mode:
authorJoe Zhao <ztuowen@gmail.com>2014-12-03 13:05:53 +0800
committerJoe Zhao <ztuowen@gmail.com>2014-12-03 13:05:53 +0800
commit635589583b9af8994dd3f947dd3eb31157ecde1f (patch)
treed4f1fc0c7d8483bf6b21e6c5139dea0adb9db4c4 /engine/Engine.java
parent20192ee5e02f3b87992764b68063028cb15e9d50 (diff)
downloadMahjong-635589583b9af8994dd3f947dd3eb31157ecde1f.tar.gz
Mahjong-635589583b9af8994dd3f947dd3eb31157ecde1f.tar.bz2
Mahjong-635589583b9af8994dd3f947dd3eb31157ecde1f.zip
Revised Aside
Need better input method
Diffstat (limited to 'engine/Engine.java')
-rw-r--r--engine/Engine.java22
1 files changed, 16 insertions, 6 deletions
diff --git a/engine/Engine.java b/engine/Engine.java
index efd853c..eec7b73 100644
--- a/engine/Engine.java
+++ b/engine/Engine.java
@@ -45,6 +45,16 @@ public class Engine {
deck = Deck.generateDeck();
}
+ public static void playerPutAsideCards(GenericPlayer player, Card card, Aside aside)
+ {
+ boolean mark=true;
+ for (Card asCard:aside.getRep())
+ if (card.getId() == asCard.getId() && mark)
+ mark = true;
+ else
+ player.hand.remove(asCard);
+ }
+
public void mainLoop()
{
start();
@@ -61,14 +71,15 @@ public class Engine {
hu=true;
System.out.println(player.getName().concat(" Hule"));
}
- // An Gang
+ // Gang
if (player.hand.gangAble(card))
{
Aside aside = player.confirmJiaAnGang(card, 0);
- if (aside.getRep().getStdId()==card.getStdId())
+ if (aside.getRep()[0].getStdId()==card.getStdId())
{
+ // An
for (Aside exAside:player.hand.asides)
- if (exAside.getRep().getStdId() == card.getStdId()) {
+ if (exAside.getRep()[0].getStdId() == card.getStdId()) {
aside.setFrom(exAside.getFrom());
player.hand.asides.remove(exAside);
break;
@@ -76,9 +87,8 @@ public class Engine {
player.hand.asides.add(aside);
}
else {
- player.hand.asides.add(aside);
- for (int i=0;i<3;++i)
- player.hand.remove(card);
+ // Jia
+ playerPutAsideCards(player,card,aside);
// @TODO Remove consider card no
}
}