📄 tablecanvas.java
字号:
try
{
m_aPlayers[currentPlayer()].chooseDiscard();
m_Timer = new Timer();
Thread.sleep(450L);
(new TableTask(this,(byte)8)).start();
//m_Timer.schedule(new TableTask(this, (byte)8), 450L);
}
catch(Exception e)
{
}
}
public boolean handheldChooseDiscard()
{
if(m_aPlayers[currentPlayer()].getGoalPos() == m_aPlayers[currentPlayer()].getDiscardPos())
return false;
if(m_aPlayers[currentPlayer()].isHuman() && m_aPlayers[currentPlayer()].getGoalPos() < m_aPlayers[currentPlayer()].getInHandCount() / 2 + 1 || !m_aPlayers[currentPlayer()].isHuman() && m_aPlayers[currentPlayer()].getGoalPos() > m_aPlayers[currentPlayer()].getInHandCount() / 2)
m_aPlayers[currentPlayer()].leftDiscardPos();
else
m_aPlayers[currentPlayer()].rightDiscardPos();
repaint();
return true;
}
private void gotSelfKongChance()
{
try
{
if(m_aPlayers[currentPlayer()].isHuman())
{
humanGotSelfKongChance();
} else
{
m_Timer = new Timer();
Thread.sleep(450L);
(new TableTask(this,(byte)16)).start();
//m_Timer.schedule(new TableTask(this, (byte)16), 450L);
}
}
catch(Exception e)
{
}
}
private void humanGotSelfKongChance()
{
m_btStatus = 14;
m_Timer = new Timer();
m_btHint = 0;
m_Timer.schedule(new HintTask(this), 450L, 450L);
}
private void gotSelfHouChance()
{
try
{
if(m_aPlayers[currentPlayer()].isHuman())//如果当前是玩家
{
humanGotSelfHouChance();
} else
{
m_Timer = new Timer();
Thread.sleep(450L);
(new TableTask(this,(byte)11)).start();
//m_Timer.schedule(new TableTask(this, (byte)11), 450L);
}
}
catch(Exception e)
{
}
}
private void humanGotSelfHouChance()
{
m_btStatus = 6;
m_Timer = new Timer();
m_btHint = 0;
m_Timer.schedule(new HintTask(this), 450L, 450L);
}
public void sortInHand()
{
m_btStatus = 4;
for(byte byte0 = 0; byte0 < m_aPlayers.length; byte0++)
m_aPlayers[byte0].sortInHand();
repaint();
}
public byte lastDealing()
{
m_btStatus = 3;
m_aPlayers[++m_btTurn % 2].setLastDealtTile(m_Wall.nextTile());
repaint();
if(currentPlayer() != 1) return 3;
return 4;
}
public byte dealing()
{
m_btStatus = 2;
m_aPlayers[++m_btTurn % 2].setDealtTiles(m_Wall.deal());
repaint();
int result;
if(currentPlayer() != 1 || m_aPlayers[currentPlayer()].getInHandCount() != 12)
return 2;
return 3;
}
public void initLayout()
{
m_btStatus = 1;
repaint();
}
public void paint(Graphics g)
{
////System.out.println(Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory());
////System.gc();
//System.out.println("status"+m_btStatus);
Graphics g1 = m_iBuffer.getGraphics();
System.out.println(m_btStatus);
g1.setColor(94, 169, 95);
g1.fillRect(0, 0, getWidth(), getHeight());
g1.drawImage(m_table,45,40,0);
switch(m_btStatus)
{
case 8: // '\b'
case 16: // '\020'
case 18: // '\022'
default:
break;
case 1: // '\001'
drawBasicLayout(g1);
break;
case 2: // '\002'
case 3: // '\003'
case 4: // '\004'
drawBasicLayout(g1);
drawInHand(g1);
break;
case 5: // '\005'
drawBasicLayout(g1);
drawInHand(g1);
drawMelded(g1);
drawDiscarded(g1);
drawPicked(g1);
drawTen(g1);
break;
case 6: // '\006'和牌
drawBasicLayout(g1);
drawInHand(g1);
drawMelded(g1);
drawDiscarded(g1);
drawTen(g1);
if(m_btHint == 0)
drawPicked(g1);
else
drawCup(g1);
break;
case 7: // '\007'
drawBasicLayout(g1);
drawInHand(g1);
drawMelded(g1);
drawDiscarded(g1);
drawTen(g1);
break;
case 9: // '\t'
drawBasicLayout(g1);
drawInHand(g1);
drawMelded(g1);
drawDiscarded(g1);
drawPicked(g1);
drawTen(g1);
break;
case 10: // '\n'
drawBasicLayout(g1);
drawDrew(g1);
drawMelded(g1);
drawDiscarded(g1);
drawTen(g1);
drawDraw(g1);
break;
case 11: // '\013'
drawBasicLayout(g1);
drawInHandForHou(g1);
drawMelded(g1);
drawDiscarded(g1);
drawTen(g1);
drawHouTile(g1);
break;
case 12: // '\f'
refresh=true;
drawFanTilesForHou(g1);
drawInHandForHou(g1);
drawMelded(g1);
drawTen(g1);
drawHouTile(g1);
g1.setClip(0,0,176,208);
g1.drawString("暂停",0,getHeight()-20,0);
break;
case 13: // '\r'
drawInHandForPoint(g1);
drawMelded(g1);
drawTenForPoint(g1);
drawHouTile(g1);
drawFanTilesForPoint(g1);
drawHead(g1);
g1.setClip(0,0,176,208);
g1.drawString("暂停",0,getHeight()-20,0);
break;
case 14: // '\016'
drawBasicLayout(g1);
drawInHand(g1);
drawMelded(g1);
drawDiscarded(g1);
drawTen(g1);
if(m_btHint == 0)
drawPicked(g1);
else
drawArrow(g1);
break;
case 15: // '\017'
drawBasicLayout(g1);
drawInHandForSelfKongChoice(g1);
drawMeldedForSelfKongChoice(g1);
drawDiscarded(g1);
drawPickedForSelfKongChoice(g1);
break;
case 17: // '\021'
drawBasicLayout(g1);
drawInHand(g1);
drawMelded(g1);
drawDiscarded(g1);
drawTen(g1);
drawMeldedArrow(g1);
break;
case 19: // '\023'
drawBasicLayout(g1);
drawInHandForMeldChoice(g1);
drawMelded(g1);
drawTen(g1);
drawDiscarded(g1);
break;
case 20: // '\024'和牌
drawBasicLayout(g1);
drawInHand(g1);
drawMelded(g1);
drawTen(g1);
drawDiscarded(g1);
drawCup(g1);
break;
case 21: // '\025'
drawBasicLayout(g1);
drawInHandForHou(g1);
drawMelded(g1);
drawTen(g1);
drawDiscarded(g1);
drawHouTile(g1);
break;
}
g1=null;
ImgUtil.drawImage(g, m_iBuffer, 0, 0);
// g.setColor(0xffffff);
// g.drawString(String.valueOf(Runtime.getRuntime().freeMemory()),0,0,0);
switch(m_btStatus)
{
case 10:
case 6:
case 20:
g.setColor(0xffffff);
g.drawString("按OK键或5键继续",getWidth()/2,getHeight()-30,17);
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -