ComputerMatch() {
			new Thread(() -> {
				int moveCount = 0;
				while (!stopRequested && !gameOver && moveCount < COMPUTER_MOVE_LIMIT) {
					double t0 = System.nanoTime();

					Intersection move = ((ComputerPlayer) getCurrentPlayer()).makeMove(board);
					if (!stopRequested) {
						if (move == null) {
							passTurn();
						} else {
							makeMove(move.x, move.y);
						}
						++moveCount;
					}

					while (!stopRequested && ((System.nanoTime() - t0) / 1000000) * MAX_COMPUTER_MOVES_PER_SECOND < 1000) {
						try {
							Thread.sleep(1);
						} catch (Exception e) {
						}
					}
				}
			}).start();
		}