如何将计时器添加到连接四?爪哇岛



这是一个有点非常规的问题,但我想知道是否有人对将计时器实现到连接四个游戏(2 名玩家(中的方法有任何想法。我目前有常规游戏的功能代码,但想添加一种方式,让用户有 5 秒的时间进行移动,否则计算机将为他们进行随机移动。有没有人对如何做到这一点有任何想法?这是我处理每个回合决策的主要功能。

public void handleAction (int x, int y)
{
if (gameOver)
{
JOptionPane.showMessageDialog (this, "Please Select Game...New to start a new game",
"Game Over", JOptionPane.WARNING_MESSAGE);
return;
}
int column = (x - BORDER_SIZE) / SQUARE_SIZE + 1;
int row = findNextRow (board, column);
if (row <= 0)
{
JOptionPane.showMessageDialog (this, "Please Select another Column",
"Column is Full", JOptionPane.WARNING_MESSAGE);
return;
}
animatePiece (currentPlayer, column, row);
board [row] [column] = currentPlayer;
int winner = checkForWinner (board, row, column);

if (winner == BANANA)
{
gameOver = true;
repaint ();
backgroundMusic.stop();
winBanana.play();
JOptionPane.showMessageDialog (this, "Banana Wins!!!",
"GAME OVER", JOptionPane.INFORMATION_MESSAGE);
}
else if (winner == STRAWBERRY)
{
gameOver = true;
repaint ();
backgroundMusic.stop();
winStrawberry.play();
JOptionPane.showMessageDialog (this, "Strawberry Wins!!!",
"GAME OVER", JOptionPane.INFORMATION_MESSAGE);
}
else {
currentPlayer *= -1;
if (currentPlayer == 1)
addStrawberry.play();
else
addBanana.play();
}   
currentColumn = 3;
repaint ();
}

java.lang.System.currentTimeMillis((方法将帮助您实现此目的。

要开始在您的程序中实现这一点,您需要记录每次进行新移动的当前时间。

然后,您必须实现一个重复循环来记录从切换到另一个播放器的每一秒时间,我建议在记录当前时间之前使用延迟 1 秒的 while 循环。

然后,您需要一个 if 语句,用于计时器何时达到您想要的时间,然后再进行随机移动。以下是一些基本代码,可帮助您入门:

long start, end, timeElapsed;
start = System.currentTimeMillis();
while(.....){
Thread.sleep(1000L);
end = System.currentTimeMillis();
timeElapsed = (endstart)/1000;
}
if(timeElapsed == ....){
//enter code here
}

最新更新