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;
}
}