JavaJava综合问题2

编写命令行程序模拟游戏组队:
① 每隔1秒有一个玩家进入,并随机加入A或B队。
② 当A、B队人数均达到4人时,倒计时5秒,然后开始游戏。


import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.CountDownLatch;

public class Game {
    private static int teamASize = 0;
    private static int teamBSize = 0;
    private static final int TEAM_SIZE = 4;
    private static final int COUNTDOWN_SECONDS = 5;

    public static void main(String[] args) {
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                Random random = new Random();
                int team = random.nextInt(2);
                if (team == 0) {
                    teamASize++;
                    System.out.println("Player joined team A, current team A size: " + teamASize);
                } else {
                    teamBSize++;
                    System.out.println("Player joined team B, current team B size: " + teamBSize);
                }

                if (teamASize == TEAM_SIZE && teamBSize == TEAM_SIZE) {
                    timer.cancel();
                    CountDownLatch latch = new CountDownLatch(COUNTDOWN_SECONDS);
                    System.out.println("Starting countdown...");
                    for (int i = COUNTDOWN_SECONDS; i > 0; i--) {
                        latch.countDown();
                        System.out.println(i + " seconds left");
                        try {
                            latch.await();
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                    System.out.println("Starting game!");
                }
            }
      }
}