KiKi和BoBo玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。
KiKi和BoBo玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。
三行三列的字符元素,代表棋盘状态,字符元素用空格分开,代表当前棋盘,其中元素为K代表KiKi玩家的棋子,为O表示没有棋子,为B代表BoBo玩家的棋子。
如果KiKi获胜,输出“KiKi wins!”;
如果BoBo获胜,输出“BoBo wins!”;
如果没有获胜,输出“No winner!”。
K O B O K B B O K
KiKi wins!
import java.util.Scanner; import java.util.Objects; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String[][] arr = new String[3][3]; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[0].length; j++) { arr[i][j] = in.next(); } } //最后结算 if (check_win(arr, "K")) { System.out.println("KiKi wins!"); } else if (check_win(arr, "B")) { System.out.println("BoBo wins!"); } else { System.out.println("No winner!"); } } //写一个方法判断是否满足胜利条件,返回一个布尔值 public static boolean check_win(String[][] arr, String player) { for (int i = 0; i < arr.length; i++) { //行和列 if ((Objects.equals(arr[i][0], player) && Objects.equals(arr[i][1], player) && Objects.equals(arr[i][2], player)) || (Objects.equals(arr[0][i], player) && Objects.equals(arr[1][i], player) && Objects.equals(arr[2][i], player))) { return true; } if ((Objects.equals(arr[0][0], player) && Objects.equals(arr[1][1], player) && Objects.equals(arr[2][2], player)) || (Objects.equals(arr[0][2], player) && Objects.equals(arr[1][1], player) && Objects.equals(arr[2][0], player))) { return true; } } return false; } }
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); String[][] arr=new String[3][3]; for(int i=0;i<3;i++) for(int j=0;j<3;j++) arr[i][j]=sc.next(); String type=""; Boolean case1=arr[0][0].equals(arr[0][1])&&arr[0][1].equals(arr[0][2]); Boolean case2=arr[0][0].equals(arr[1][0])&&arr[1][0].equals(arr[2][0]); Boolean case3=arr[0][0].equals(arr[1][1])&&arr[1][1].equals(arr[2][2]); Boolean case4=arr[0][1].equals(arr[1][1])&&arr[1][1].equals(arr[2][1]); Boolean case5=arr[1][0].equals(arr[1][1])&&arr[1][1].equals(arr[1][2]); Boolean case8=arr[0][2].equals(arr[1][1])&&arr[1][1].equals(arr[2][0]); Boolean case6=arr[2][0].equals(arr[2][1])&&arr[2][1].equals(arr[2][2]); Boolean case7=arr[0][2].equals(arr[1][2])&&arr[1][2].equals(arr[2][2]); if(case1||case2||case3){ if(!arr[0][0].equals("O")) type=arr[0][0]; }else if(case4||case5||case8){ if(!arr[1][1].equals("O")) type=arr[1][1]; } else if(case6||case7){ if(!arr[2][2].equals("O")) type=arr[2][2]; } if(type.equals("K")) type="KiKi"; else if(type.equals("B")) type="BoBo"; if(type.equals("")) System.out.printf("No winner!\n"); else System.out.printf("%s wins!\n",type); } }
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //井字棋 char[][] Martix = new char[3][3]; for(int i = 0;i < Martix.length;i++){ for(int j = 0;j < Martix[i].length;j++){ Martix[i][j] = scanner.next().charAt(0); } } //三个字母都在一竖下 for(int i = 0;i < Martix.length;i++){ if(Martix[0][i] == Martix[1][i] && Martix[1][i] == Martix[2][i]){ if(Martix[0][i] == 'K'){ System.out.println("KiKi wins!"); return; }else if(Martix[0][i] == 'B'){ System.out.println("BoBo wins!"); return; } } } //三个字母都在一横下 for(int j = 0;j < Martix.length;j++){ if(Martix[j][0] == Martix[j][1] && Martix[j][1] == Martix[j][2]){ if(Martix[j][1] == 'K'){ System.out.println("KiKi wins!"); return; }else if(Martix[j][1] == 'B'){ System.out.println("BoBo wins!"); return; } } } //三个字母都在对角线上 if(Martix[0][0] == Martix[1][1] && Martix[1][1] == Martix[2][2]){ if(Martix[1][1] == 'K'){ System.out.println("KiKi wins!"); return; }else if(Martix[1][1] == 'B'){ System.out.println("BoBo wins!"); return; } } if(Martix[0][2] == Martix[1][1] && Martix[0][2] == Martix[2][0]){ if(Martix[1][1] == 'K'){ System.out.println("KiKi wins!"); return; }else if(Martix[1][1] == 'B'){ System.out.println("BoBo wins!"); return; } } System.out.println("No winner!"); } }
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sin = new Scanner(System.in); String[] c = new String[9]; int ic = 0; while(sin.hasNext()){ c[ic++] = sin.next(); } // 把一维数组变成二维数组 String[][] cc = new String[3][3]; int con = 0; for(int n = 0;n<3;n++){ for(int m=0;m<3;m++){ cc[n][m] = c[con++]; } } // 玩 “井”字棋 String s = print1(cc); String s2 = print2(cc); String s3 = print3(cc); if(s.equals("K") || s2.equals("K") || s3.equals("K")){ System.out.println("KiKi wins!"); }else if(s.equals("B") || s2.equals("B") || s3.equals("B")){ System.out.println("BoBo wins!"); }else { System.out.println("No winner!"); } } public static String print1(String[][] list){ String s = ""; for(int n = 0;n<3;n++){ for(int m=0;m<3;m++){ s += list[n][m]; } if(s.equals("KKK")){ return "K"; }else if(s.equals("BBB")){ return "B"; } //清空字符串 s = ""; } return "O"; } public static String print2(String[][] list){ String s = ""; int i = 0; for(int n = 0;n<3;n++){ for(int m=0;m<3;m++){ s += list[m][i]; } i++; if(s.equals("KKK")){ return "K"; }else if(s.equals("BBB")){ return "B"; } //清空字符串 s = ""; } return "O"; } public static String print3(String[][] list){ String s = ""; for(int n = 0;n<1;n++){ for(int m=0;m<3;m++){ s += list[m][m]; } if(s.equals("KKK")){ return "K"; }else if(s.equals("BBB")){ return "B"; } //清空字符串 s = ""; } int t = 2; for(int n = 0;n<1;n++){ for(int m=0;m < 3;m++){ s += list[m][t--]; } if(s.equals("KKK")){ return "K"; }else if(s.equals("BBB")){ return "B"; } //清空字符串 s = ""; } return "O"; } }
//我的代码最简洁 //先扫描行,再扫描列,如果都没有,那么就直接取最中间的就行 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); Character[][] tic = new Character[3][3]; char ch = 'f'; for (int i = 0; i < 3; i++) { int j; for (j = 0; j < 3; j++) { tic[i][j] = in.next().charAt(0); } if (tic[i][0] == tic[i][1] && tic[i][1] == tic[i][2]){ ch = tic[i][0]; break; } } for (int j = 0; j < 3; j++) { if (tic[0][j] == tic[1][j] && tic[1][j] == tic[2][j]){ ch = tic[0][j]; break; } } if (ch == 'f'){ ch = tic[1][1]; } if (ch == 'K'){ System.out.println("KiKi wins!"); }else if (ch == 'O'){ System.out.println("No winner!"); }else if (ch == 'B'){ System.out.println("BoBo wins!"); } } }
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String[][] chessBoard = new String[3][3]; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { chessBoard[i][j] = scanner.next(); } } String result = checkMessage(chessBoard); System.out.println(result); } public static String checkMessage(String[][] chessBoard) { String message ; for (int i = 0; i < 3; i++) { if (chessBoard[i][0].equals(chessBoard[i][1]) && chessBoard[i][1].equals(chessBoard[i][2])) { message = checkMan(chessBoard[i][0]); return message; } else if (chessBoard[0][i].equals(chessBoard[1][i]) && chessBoard[1][i].equals(chessBoard[2][i])) { message = checkMan(chessBoard[0][i]); return message; } } message = checkMan(chessBoard[1][1]); if (chessBoard[0][0].equals(chessBoard[1][1]) && chessBoard[1][1].equals(chessBoard[2][2])) { return message; } else if (chessBoard[0][2].equals(chessBoard[1][1]) && chessBoard[1][1].equals(chessBoard[2][0])) { return message; } return message; } public static String checkMan(String str) { switch (str) { case "K": return "KiKi wins!"; case "B": return "BoBo wins!"; case "O": return "No winner!"; } return null; } }