package com.e2u.sort; public class CircleMatch { private int playerCount; public CircleMatch(int count) { this.playerCount = count; } public void arrange() { for(int i = 1; i < playerCount; i++) { System.out.printf("================Round %2d================\n", i); arrange(i); } System.out.println("====================END============="); } public void arrange(int round) { int opponent = -1; int opponentOfLastPlayer = -1; for(int i = 1; i < playerCount; i++) { opponent = getOpponent(i, round); if(opponent == i) { opponentOfLastPlayer = i; opponent = playerCount; } showArrangement(i, opponent); } showArrangement(playerCount, opponentOfLastPlayer); } private int getOpponent(int playerNo, int round) { if(playerNo >= round) { return (playerCount - 1) - (playerNo - round); } else { return round - playerNo; } } private void showArrangement(int p1, int p2) { System.out.printf("%-3d V.S %3d\n", p1, p2); } public static void main(String[] args) { CircleMatch match = new CircleMatch(10); match.arrange(); } }