diff options
Diffstat (limited to 'engine/Engine.java')
-rw-r--r-- | engine/Engine.java | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/engine/Engine.java b/engine/Engine.java index b59035f..efd853c 100644 --- a/engine/Engine.java +++ b/engine/Engine.java @@ -1,12 +1,19 @@ package mahjong.engine; +import mahjong.aux.Card; +import mahjong.aux.set.Aside; +import mahjong.aux.set.Set; import mahjong.player.GenericPlayer; +import mahjong.tools.Deck; + +import java.util.Random; /** * Created by joe on 12/2/14. */ public class Engine { GenericPlayer[] players=new GenericPlayer[4]; + Set deck; public Engine(GenericPlayer player1,GenericPlayer player2,GenericPlayer player3,GenericPlayer player4) { @@ -15,4 +22,70 @@ public class Engine { players[2]=player3; players[3]=player4; } + + public void ShufflePlayer() + { + Random rand=new Random(); + + for (int i=0;i<5;++i) { + int x = rand.nextInt(4); + int y = (x+rand.nextInt(3)+1)%4; + GenericPlayer tmp; + tmp=players[x]; + players[x]=players[y]; + players[y]=tmp; + } + } + + public void start() + { + ShufflePlayer(); + for (int i=0;i<4;++i) + System.out.println(players[i].getName()); + deck = Deck.generateDeck(); + } + + public void mainLoop() + { + start(); + boolean hu=false; + int pos=0; + while (!hu && deck.getSize()>0) + { + Card card=deck.draw(); + GenericPlayer player=players[pos]; + + // Hu + if (player.hand.huAble(card)) { + player.confirmHu(card, 0); + hu=true; + System.out.println(player.getName().concat(" Hule")); + } + // An Gang + if (player.hand.gangAble(card)) + { + Aside aside = player.confirmJiaAnGang(card, 0); + if (aside.getRep().getStdId()==card.getStdId()) + { + for (Aside exAside:player.hand.asides) + if (exAside.getRep().getStdId() == card.getStdId()) { + aside.setFrom(exAside.getFrom()); + player.hand.asides.remove(exAside); + break; + } + player.hand.asides.add(aside); + } + else { + player.hand.asides.add(aside); + for (int i=0;i<3;++i) + player.hand.remove(card); + // @TODO Remove consider card no + } + } + + // + + pos=(pos+1)%4; + } + } } |