How this game is playe can be found at here.
1 1 public class Connect4 { 2 2 char[][] board = new char[6][7]; 3 3 4 4 public Connect4(char[][] board) { 5 5 this.board = board; 6 6 } 7 7 8 8 public static void main(String[] args) { 9 9 Connect4 game = new Connect4(new char[6][7]); 10 10 game.fillBoard(' '); 11 11 Scanner input = new Scanner(System.in); 12 12 char player = 'X'; 13 13 while (true) { 14 14 game.showGameBoard(); 15 15 System.out.print("Player " + player + ", please enter the column where you'd like to drop your piece: "); 16 16 int col = input.nextInt(); 17 17 if (game.tryDropPiece(col, player)) { 18 18 if (game.checkForWin()) { 19 19 System.out.println("Player " + player + " wins!"); 20 20 game.showGameBoard(); 21 21 return; 22 22 } 23 23 player = game.switchPlayer(player); // Switch players 24 24 } 25 25 } 26 26 } 27 27 28 28 public char[][] fillBoard(char myChar) { 29 29 for (int row = 0; row < board.length; row++) { 30 30 Arrays.fill(board[row], 0, board[row].length, myChar); 31 31 } 32 32 return board; 33 33 } 34 34 35 35 public void showGameBoard() { 36 36 System.out.println(); 37 37 for (int row = 0; row < board.length; row++) { 38 38 System.out.print("|"); 39 39 for (int col = 0; col < board[row].length; col++) { 40 40 System.out.print(" " + board[row][col] + " |"); 41 41 } 42 42 System.out.println(); 43 43 } 44 44 } 45 45 46 46 public boolean tryDropPiece(int col, char player) { 47 47 if (board[0][col] != ' ') { 48 48 System.out.println("That column is already full."); 49 49 return false; 50 50 } 51 51 for (int row = board.length - 1; row >= 0; row--) { 52 52 if (board[row][col] == ' ') { 53 53 board[row][col] = player; 54 54 return true; 55 55 } 56 56 } 57 57 return false; 58 58 } 59 59 60 60 public boolean checkForWin() { 61 61 boolean result = false; 62 62 // Check for win horizontally 63 63 for (int row = 0; row < board.length; row++) { 64 64 for (int col = 0; col < board[row].length - 3; col++) { 65 65 if (board[row][col] != ' ' && board[row][col] == board[row][col + 1] 66 66 && board[row][col] == board[row][col + 2] && board[row][col] == board[row][col + 3]) { 67 67 return true; 68 68 } 69 69 } 70 70 } 71 71 // Check for win vertically 72 72 for (int col = 0; col < board[0].length; col++) { 73 73 for (int row = 0; row < board.length - 3; row++) { 74 74 if (board[row][col] != ' ' && board[row][col] == board[row + 1][col] 75 75 && board[row][col] == board[row + 2][col] && board[row][col] == board[row + 3][col]) { 76 76 return true; 77 77 } 78 78 } 79 79 } 80 80 81 81 // Check for win diagonally, from top left 82 82 for (int row = 0; row < board.length - 3; row++) { 83 83 for (int col = 0; col < board[row].length - 3; col++) { 84 84 if (board[row][col] != ' ' && board[row][col] == board[row + 1][col + 1] 85 85 && board[row][col] == board[row + 2][col + 2] && board[row][col] == board[row + 3][col + 3]) { 86 86 return true; 87 87 } 88 88 } 89 89 } 90 90 91 91 // Check for win diagonally, from top right 92 92 for (int row = 0; row < board.length - 3; row++) { 93 93 for (int col = 3; col < board[row].length; col++) { 94 94 if (board[row][col] != ' ' && board[row][col] == board[row + 1][col - 1] 95 95 && board[row][col] == board[row + 2][col - 2] && board[row][col] == board[row + 3][col - 3]) { 96 96 return true; 97 97 } 98 98 } 99 99 } 100100 return false; 101101 102102 } 103103 104104 public char switchPlayer(char currentPlayer) { 105105 if (currentPlayer == 'X') { 106106 return 'O'; 107107 } else { 108108 return 'X'; 109109 } 110110 } 111111 }