用Java寫的一個控制檯五子棋,只需結合Java中的循環與數組即可
運行後控制檯輸入座標
代碼如下
import java.util.Scanner;
public class GameTest {
String a = "●";
String b = "○";
boolean bool = true;//作爲黑白棋交替標記;
String[][] qipan = new String[25][25];
public GameTest() {}
public void startGame(){
//初始化棋盤
this.initDesk();
//開始下棋
this.xiaqi();
};
//棋盤構造25*25,遍歷二維數組賦值“+”每25個換行即可
public void initDesk() {
for (int i = 0; i < 25; i++) {
for (int j = 0; j < 25; j++) {
qipan[i][j] = "+";
System.out.print(qipan[i][j]);
while (j == 24) {
System.out.print("\n");
break;
}
}
}
}
//操作下棋的方法
public void xiaqi() {
System.out.println("請輸入座標:");
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int y = sc.nextInt();
if (x > 24 || y > 24) {
System.out.println("超出座標範圍,請重新輸入!");
xiaqi();
} else {
if(qipan[x][y]==a||qipan[x][y]==b){
System.out.println("座標已被其它旗子佔用,請重新輸入");
xiaqi();
}else{
if (bool) {
qipan[x][y] = a;
bool = false;
} else {
qipan[x][y] = b;
bool = true;
}
}
for (int i = 0; i < 25; i++) {
for (int j = 0; j < 25; j++) {
System.out.print(qipan[i][j]);
while (j == 24) {
System.out.print("\n");
break;
}
}
}
panduan();
}
}
//判斷輸贏的方法
public void panduan() {
for (int i = 0; i < 21; i++) {
for (int j = 0; j < 21; j++) {
if (qipan[i][j] == a && qipan[i][j + 1] == a
&& qipan[i][j + 2] == a && qipan[i][j + 3] == a
&& qipan[i][j + 4] == a) {
System.out.println("黑方贏");
System.out.println("是否進行下一局?\n Y、進行下一局\n N、取消");
Scanner sc = new Scanner(System.in);
String f=sc.next();
if(f.equals("Y")){
initDesk();
}else{
System.out.println("gameover");
}
} else if (qipan[i][j] == a && qipan[i + 1][j] == a
&& qipan[i + 2][j] == a && qipan[i + 3][j] == a
&& qipan[i + 4][j] == a) {
System.out.println("黑方贏");
System.out.println("是否進行下一局?\n Y、進行下一局\n N、取消");
Scanner sc = new Scanner(System.in);
String f=sc.next();
if(f.equals("Y")){
initDesk();
}else{
System.out.println("gameover");
}
} else if (qipan[i][j] == a && qipan[i + 1][j + 1] == a
&& qipan[i + 2][j + 2] == a && qipan[i + 3][j + 3] == a
&& qipan[i + 4][j + 4] == a) {
System.out.println("黑方贏");
System.out.println("是否進行下一局?\n Y、進行下一局\n N、取消");
Scanner sc = new Scanner(System.in);
String f=sc.next();
if(f.equals("Y")){
initDesk();
}else{
System.out.println("gameover");
}
} else if (qipan[i][j + 4] == a && qipan[i + 1][j + 3] == a
&& qipan[i + 2][j + 2] == a && qipan[i + 3][j + 1] == a
&& qipan[i + 4][j + 0] == a) {
System.out.println("黑方贏");
System.out.println("是否進行下一局?\n Y、進行下一局\n N、取消");
Scanner sc = new Scanner(System.in);
String f=sc.next();
if(f.equals("Y")){
initDesk();
}else{
System.out.println("gameover");
}
} else if (qipan[i][j] == b && qipan[i][j + 1] == b
&& qipan[i][j + 2] == b && qipan[i][j + 3] == b
&& qipan[i][j + 4] == b) {
System.out.println("白方贏");
System.out.println("是否進行下一局?\n Y、進行下一局\n N、取消");
Scanner sc = new Scanner(System.in);
String f=sc.next();
if(f.equals("Y")){
initDesk();
}else{
System.out.println("gameover");
}
} else if (qipan[i][j] == b && qipan[i + 1][j] == b
&& qipan[i + 2][j] == b && qipan[i + 3][j] == b
&& qipan[i + 4][j] == b) {
System.out.println("白方贏");
System.out.println("是否進行下一局?\n Y、進行下一局\n N、取消");
Scanner sc = new Scanner(System.in);
String f=sc.next();
if(f.equals("Y")){
initDesk();
}else{
System.out.println("gameover");
}
} else if (qipan[i][j] == b && qipan[i + 1][j + 1] == b
&& qipan[i + 2][j + 2] == b && qipan[i + 3][j + 3] == b
&& qipan[i + 4][j + 4] == b) {
System.out.println("白方贏");
System.out.println("是否進行下一局?\n Y、進行下一局\n N、取消");
Scanner sc = new Scanner(System.in);
String f=sc.next();
if(f.equals("Y")){
initDesk();
}else{
System.out.println("gameover");
}
} else if (qipan[i][j + 4] == b && qipan[i + 1][j + 3] == b
&& qipan[i + 2][j + 2] == b && qipan[i + 3][j + 1] == b
&& qipan[i + 4][j + 0] == b) {
System.out.println("白方贏");
System.out.println("是否進行下一局?\n Y、進行下一局\n N、取消");
Scanner sc = new Scanner(System.in);
String f=sc.next();
if(f.equals("Y")){
initDesk();
}else{
System.out.println("game over!");
}
}else{
xiaqi();
}
}
}
}
public static void main(String[] args) {
GameTest wzq = new GameTest();
wzq.startGame();
}
}