package classwork;
import javax.sound.midi.Soundbank;
import java.util.Arrays;
import java.util.Scanner;
public class Dome2 {
static String[][] Qp=new String[15][15]; static String[] num = {"⒈","⒉","⒊","⒋","⒌","⒍","⒎","⒏","⒐","⒑","⒒","⒓","⒔","⒕","⒖"};
static String line = "十";
static String white = "☆";
static String black = "★";
public static void main(String[] args) {
in();
get();
start();
}
public static void in(){
for (int i = 0; i < Qp.length; i++) {
for (int j = 0; j < Qp[i].length; j++) {
if (j == Qp[i].length - 1) {
Qp[i][j] = num[i];
}
else {
Qp[i][j] = line;
}
if (i == Qp.length - 1) {
Qp[i][j]=num[j];
} } } }
public static void get(){
for (int i = 0; i < Qp.length; i++) {
for (int j = 0; j < Qp[i].length; j++) { System.out.print(Qp[i][j]);
} System.out.println();
} }
public static void start(){
Scanner sc = new Scanner(System.in); boolean flag = true;
OUT:while(true){
if (flag==true) {
System.out.println("请输入黑棋子坐标:"); int m = sc.nextInt()-1;
int n = sc.nextInt()-1;
boolean c= check(m,n);
if (c==true) {
Qp[m][n]=black;
get();
boolean v=win(m,n,black);
if(v==true){
System.out.println("黑子胜");
break OUT;
} else{
flag = false;
} }else {
System.out.println("输入有误重新输入"); } }else {
System.out.println("请输入白棋子坐标:"); int m = sc.nextInt()-1;
int n = sc.nextInt()-1;
boolean c= check(m,n);
if (c==true) {
Qp[m][n]=white; get();
boolean v=win(m,n,white);
if(v==true){
System.out.println("白子胜");
break OUT;
} else{
flag = true;
} }else {
System.out.println("输入有误重新输入");
} } } }
public static boolean check(int m,int n){
if ((m> Qp.length-1||m<0)||(n> Qp.length-1||n<0)) {
System.out.println("棋子越界");
// System.out.println("错误");
return false;
} if(Qp[m][n].equals(black)||Qp[m][n].equals(white)) {
System.out.println("位置重复");
// System.out.println("错误");
return false;
}
//System.out.println("正确");
return true;
}
public static int lrWin(int m,int n,String qz) { int count = 0;
for (int i = n-1; i>=0; i--) {
if (Qp[m][i].equals(qz)) {
count++;
//System.out.println(count+"右");
}else {
break;
} }
for (int j=n+1;j< Qp.length-1;j++){
if (Qp[m][j].equals(qz)) {
count++;
// System.out.println(count+"左");
}else {
break;
} }
count++;
//System.out.println("合计有"+count+"个左右连在一起");
return count; }
public static int udWin(int m,int n,String qz){
int count = 0;
//向上 for(int i = m-1; i>=0;i--){
if (Qp[i][n].equals(qz)) {
count++;
//System.out.println(count+"上");
}else{
break; } }
//向下 for (int j=m+1;j< Qp.length-1;j++){
if (Qp[j][n].equals(qz)) {
count++;
//System.out.println(count+"下");
}else {
break;
} }
count++;
//System.out.println("合计有"+count+"个上下连着");
return count;
}
public static int lurdWin(int m,int n,String qz){
int count = 0;
for(int i = m-1,j=n-1; i>=0&&j>=0;i--,j--){
if (Qp[i][j].equals(qz)) {
count++;
//System.out.println(count+"左上");
}else{
break;
} }
for (int i=m+1,j=n+1;i<Qp.length-1&&j< Qp[i].length-1;i++,j++){
if (Qp[i][j].equals(qz)) {
count++;
// System.out.println(count+"右下");
}else {
break;
} } count++;
//System.out.println("合计有"+count+"个上左下右连着");
return count;
}
public static int ldruWin(int m,int n,String qz){
int count = 0;
for(int i = m+1,j=n-1; i< Qp.length-1&&j>=0;i++,j--){
if (Qp[i][j].equals(qz)) {
count++;
//System.out.println(count+"左下");
}else{
break;
} }
for (int i=m-1,j=n+1;i>=0&&j< Qp[i].length-1;i--,j++){
if (Qp[i][j].equals(qz)) {
count++;
//System.out.println(count+"右上");
}else {
break;
} }
count++;
//System.out.println("合计有"+count+"个下左上右连着");
return count;
}
public static boolean win(int m,int n,String qz){
if(lrWin(m,n,qz)>=5||udWin(m,n,qz)>=5||lurdWin(m,n,qz)>=5||ldruWin(m,n,qz)>=5) {
return true;
}
return false;
}
}
https://share.weiyun.com/LnXMtfOx