📄 tablecanvas.java
字号:
case 8: // '\b'
selfKong();
break;
}
}
public void selfKong()
{
m_btStatus = 5;
m_aPlayers[currentPlayer()].doMelded(m_aPlayers[currentPlayer()].currentChance());
boolean flag = m_aPlayers[currentPlayer()].pick(m_Wall.getKongTile());
repaint();
afterPicked(flag);
}
private void keyPressedProcessInHumanGotSelfKongChance(int i)
{
switch(getGameAction(i))
{
case 8: // '\b'
m_Timer.cancel();
discard();
break;
case 2: // '\002'
m_Timer.cancel();
m_aPlayers[currentPlayer()].leftDiscardPos();
repaint();
m_btStatus = 5;
break;
case 5: // '\005'
m_Timer.cancel();
m_aPlayers[currentPlayer()].rightDiscardPos();
repaint();
m_btStatus = 5;
break;
case 6: // '\006'
m_Timer.cancel();
m_btStatus = 5;
break;
case 1: // '\001'
m_Timer.cancel();
humanSelfKongChoice();
break;
}
}
private void humanSelfKongChoice()
{
m_btStatus = 15;
repaint();
}
private void keyPressedProcessInShowPoint(int i)//在显示分数的时候按键处理
{
m_hImgPool =null;
m_hImgPool= new Hashtable();
if(getGameAction(i) == 8)
if(m_aPlayers[0].getPoint() > 0 && m_aPlayers[1].getPoint() > 0)
restart();
else
{
m_MJ13MIDlet.isgamerun = false;
m_MJ13MIDlet.splashEnded();
}
}
private void keyPressedProcessInShowFanTile(int i)
{
if(getGameAction(i) == 8)
showPoint();
}
private void showPoint()
{
m_btStatus = 13;
m_aPlayers[m_btHou].calFanTileCount(m_Wall.getFanTiles(m_aPlayers[m_btHou].isTen()));
if(m_btHou == currentPlayer())
m_btFanCount++;
if(m_aPlayers[m_btHou].gotWindFan(m_Wall.getWind()))
m_btFanCount++;
if(m_aPlayers[m_btHou].gotChungFan())
m_btFanCount++;
if(m_aPlayers[m_btHou].gotFaFan())
m_btFanCount++;
if(m_aPlayers[m_btHou].gotBaiFan())
m_btFanCount++;
if(m_aPlayers[m_btHou].isPinHou())
m_btFanCount++;
if(m_aPlayers[m_btHou].isNo19())
m_btFanCount++;
if(m_aPlayers[m_btHou].gotSameSequence())
m_btFanCount++;
if(m_aPlayers[m_btHou].isConcealed())
m_btFanCount++;
if(m_aPlayers[m_btHou].isTen())
m_btFanCount++;
if(m_aPlayers[m_btHou].gotDragon())
m_btFanCount++;
if(m_aPlayers[m_btHou].isNonPure19WithWord())
m_btFanCount++;
if(m_aPlayers[m_btHou].got3ConcealedTriple())
m_btFanCount += 2;
if(m_aPlayers[m_btHou].isPongPongHou())
m_btFanCount += 3;
if(m_aPlayers[m_btHou].isSmall3Yuan())
m_btFanCount += 3;
if(m_aPlayers[m_btHou].is7Pairs())
m_btFanCount += 2;
if(m_aPlayers[m_btHou].isUnpureSameSuit())
m_btFanCount += 3;
if(m_aPlayers[m_btHou].isPure19())
m_btFanCount += 3;
if(m_aPlayers[m_btHou].isSameSuit())
m_btFanCount += 6;
if(m_aPlayers[m_btHou].isBig3Yuan())
m_btFanCount += 6;
repaint();
}
private void keyPressedProcessInHumanGotSelfHouChance(int i)
{
switch(getGameAction(i))
{
case 8: // '\b'
m_Timer.cancel();
selfHou();
break;
}
}
public void selfHou()
{
try
{
m_btStatus = 11;
m_btHou = currentPlayer();
repaint();
m_Timer = new Timer();
Thread.sleep(450L);
(new TableTask(this,(byte)12)).start();
//m_Timer.schedule(new TableTask(this, (byte)12), 450L);
}
catch(Exception e)
{
}
}
private void keyPressedProcessInDraw(int i)
{
if(getGameAction(i) == 8)
restart();
}
private void restart()
{
try
{
if(m_btStatus != 10 && !m_aPlayers[m_btHou].isBanker())
{
m_aPlayers = (new myPlayer[] {
m_aPlayers[m_btHou], m_aPlayers[(m_btHou + 1) % 2]
});
m_aPlayers[0].setBanker(true);
m_aPlayers[1].setBanker(false);
m_RichRMS.put("BANKER", m_aPlayers[0].isHuman() ? "HUMAN" : "HANDHELD");
m_RichRMS.save();
if(m_aPlayers[0].isHuman())
{
m_Wall.nextWind();
m_RichRMS.put("WIND", "" + m_Wall.getWind());
m_RichRMS.save();
}
}
m_btStatus = 1;
for(byte byte0 = 0; byte0 < m_aPlayers.length; byte0++)
m_aPlayers[byte0].reset();
m_Wall.shuffle();
m_btTurn = -1;
m_btFanCount = 0;
m_Timer = new Timer();
Thread.sleep(450L);
(new TableTask(this,(byte)1)).start();
//m_Timer.schedule(new TableTask(this, (byte)1), 450L);
}
catch(Exception e)
{
}
}
private void keyPressedProcessInPick(int i)
{
switch(getGameAction(i))
{
case 3: // '\003'
case 4: // '\004'
case 7: // '\007'
default:
break;
case 5: // '\005'
m_aPlayers[currentPlayer()].rightDiscardPos();
repaint();
break;
case 2: // '\002'
m_aPlayers[currentPlayer()].leftDiscardPos();
repaint();
break;
case 1: // '\001'
if(m_aPlayers[currentPlayer()].isConcealed())
issueTen();
break;
case 6: // '\006'
if(m_aPlayers[currentPlayer()].isTenIssued())
{
m_btStatus = 5;
m_aPlayers[currentPlayer()].cancelIssuedTen();
repaint();
}
break;
case 8: // '\b'
discard();
break;
}
}
public void issueTen()
{
m_btStatus = 9;
m_aPlayers[currentPlayer()].issueTen();
repaint();
}
public void flashHint()
{
m_btHint = (byte)(++m_btHint % 2);
}
public void pick()
{
m_btStatus = 5;
boolean flag = m_aPlayers[++m_btTurn % 2].pick(m_Wall.nextTile());
repaint();
afterPicked(flag);
}
private void afterPicked(boolean flag)
{
try
{
if(flag)//能和牌
{
gotSelfHouChance();
}
else
if(m_aPlayers[currentPlayer()].isTen())
{
m_Timer = new Timer();
Thread.sleep(450L);
(new TableTask(this,(byte)7)).start();
//m_Timer.schedule(new TableTask(this, (byte)7), 450L);
} else
{
checkSelfKongChance();
}
}
catch(Exception e)
{
}
}
private void checkSelfKongChance()//检测有没有可碰吃的
{
if(m_aPlayers[currentPlayer()].gotSelfKongChance() && m_Wall.getKongCount() != 4)
gotSelfKongChance();
else
if(!m_aPlayers[currentPlayer()].isHuman())
handheldDiscard();
}
private void handheldDiscard()
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -