package shuzu;
import java.util.Scanner;
public class main {
public static void main(String[] args) {
wuziqi.start();
}
}
主代码
package shuzu;
import java.util.Scanner;
/*
1.
初始化棋盘 抽取到一个方法中
打印棋盘 抽取到一个方法中
2.
黑白双方交替下棋
打印棋盘
3.
判断是否越界
判断是否重复
判断输赢
*/
public class wuziqi {
static String white = "☆";
static String black = "★";
static String[][] qp = new String[15][15];//棋盘
static String[] num = {"⒈", "⒉", "⒊", "⒋", "⒌", "⒍", "⒎", "⒏", "⒐", "⒑", "⒒", "⒓", "⒔", "⒕", "⒖"};
static String line = "十";
//启动五子棋游戏
public static void start() {
init();
print();
startGame();
}
public static void init() {
int i, j;
for (i = 0; i < qp.length; i++) {
for (j = 0; j < qp.length; j++) {
qp[i][j] = line;
}
}
}
public static void print() {
int i, j;
for (i = 0; i < qp.length; i++) {
for (j = 0; j < qp.length; j++) {
System.out.print(qp[i][j]);
}
System.out.println();
}
}
public static void startGame() {
Scanner sca = new Scanner(System.in);
while (true) {
System.out.print("请选择你的棋子:");
String qizi = sca.next();
String[] qi = {"黑棋", "白棋"};
if (qizi.equals(qi[0])) {//黑棋先下
Scanner scan = new Scanner(System.in);
System.out.print("行数:");
int x = scan.nextInt();
System.out.print("列数:");
int y = scan.nextInt();
boolean X=check(x,y);
if(X){
qp[x-1][y-1] = black;
print();
boolean A=shuying();
if(A){
System.out.println("黑棋胜利");
break;
}
}else{
System.out.println("请重新输入,有重复或越界的坐标");
break;
}
} else {//白棋先下
Scanner scan = new Scanner(System.in);
System.out.print("行数:");
int x = scan.nextInt();
System.out.print("列数:");
int y = scan.nextInt();
boolean X=check(x,y);
if(X){
qp[x-1][y-1] = white;
print();
boolean A=shuying();
if(A){
System.out.println("黑棋胜利");
break;
}else{
break;
}
}else{
System.out.println("请重新输入,有重复或越界的坐标");
break;
}
}
}
}
public static boolean check(int x,int y) {//判断重复,越界
if (qp[x][y].equals(black) && qp[x][y].equals(white)) {//判断是否重复
return false;
}
if (x > 15 && x < 0 && y > 15 && y < 0) {//判断是否越界
return false;
}
return true;
}
public static boolean shuying() {//判断输赢
int count = 0;
// Check horizontally
for (int i = 0; i < qp.length; i++) {
for (int j = 0; j < qp.length - 4; j++) {
if (qp[i][j].equals(black) && qp[i][j + 1].equals(black) && qp[i][j + 2].equals(black) && qp[i][j + 3].equals(black) && qp[i][j + 4].equals(black)) {
return true;
} else if (qp[i][j].equals(white) && qp[i][j + 1].equals(white) && qp[i][j + 2].equals(white) && qp[i][j + 3].equals(white) && qp[i][j + 4].equals(white)) {
return true;
}
}
}
// Check vertically
for (int i = 0; i < qp.length - 4; i++) {
for (int j = 0; j < qp.length; j++) {
if (qp[i][j].equals(black) && qp[i + 1][j].equals(black) && qp[i + 2][j].equals(black) && qp[i + 3][j].equals(black) && qp[i + 4][j].equals(black)) {
return true;
} else if (qp[i][j].equals(white) && qp[i + 1][j].equals(white) && qp[i + 2][j].equals(white) && qp[i + 3][j].equals(white) && qp[i + 4][j].equals(white)) {
return true;
}
}
}
// Check diagonally (top-left to bottom-right)
for (int i = 0; i < qp.length - 4; i++) {
for (int j = 0; j < qp.length - 4; j++) {
if (qp[i][j].equals(black) && qp[i + 1][j + 1].equals(black) && qp[i + 2][j + 2].equals(black) && qp[i + 3][j + 3].equals(black) && qp[i + 4][j + 4].equals(black)) {
return true;
} else if (qp[i][j].equals(white) && qp[i + 1][j + 1].equals(white) && qp[i + 2][j + 2].equals(white) && qp[i + 3][j + 3].equals(white) && qp[i + 4][j + 4].equals(white)) {
return true;
}
}
}
// Check diagonally (bottom-left to top-right)
for (int i = qp.length - 1; i >= 4; i--) {
for (int j = 0; j < qp.length - 4; j++) {
if (qp[i][j].equals(black) && qp[i - 1][j + 1].equals(black) && qp[i - 2][j + 2].equals(black) && qp[i - 3][j + 3].equals(black) && qp[i - 4][j + 4].equals(black)) {
return true;
} else if (qp[i][j].equals(white) && qp[i - 1][j + 1].equals(white) && qp[i - 2][j + 2].equals(white) && qp[i - 3][j + 3].equals(white) && qp[i - 4][j + 4].equals(white)) {
return true;
}
}
}
return false;
}
}
副功能代码