package com.softeem.array2;
import java.util.Scanner;
/**
* 五子棋,棋盘,下棋,坐标(coordinate),判断
* @author Administrator
*
*/
public class Checkerboard {
public static void checkerboard(char[][] array){
//显示棋盘
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
array[i][j]='+';
System.out.print(" "+array[i][j]);
}
System.out.println();
}
}
//判断
public static boolean judge(char[][] array){
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
int num=1;
if(array[i][j]=='●'){
//判断棋子连接:横(-)
for(int m=j+1;m<=j+4;m++){
if(array[i][m]=='●'){
num++;
if(num==5){
System.out.println("黑棋获胜!");
return true;
}
}else{
num=1;
break;
}
}
//判断棋子连接:竖(|)
for(int m=i+1;m<=i+4;m++){
if(array[m][j]=='●'){
num++;
if(num==5){
System.out.println("黑棋获胜!");
return true;
}
}else{
num=1;
break;
}
}
//判断棋子连接:斜杠(\)
for(int m=1;m<=4;m++){
if(array[i+m][j+m]=='●'){
num++;
if(num==5){
System.out.println("黑棋获胜!");
return true;
}
}else{
num=1;
break;
}
}
//判断棋子连接:反斜杠(/)
if(j>=4){
for(int m=1;m<=4;m++){
if(array[i+m][j-m]=='●'){
num++;
if(num==5){
System.out.println("黑棋获胜!");
return true;
}
}else{
num=1;
break;
}
}
}
}
if(array[i][j]=='○'){
//判断棋子连接:横(-)
for(int m=j+1;m<=j+4;m++){
if(array[i][m]=='○'){
num++;
if(num==5){
System.out.println("白棋获胜!");
return true;
}
}else{
num=1;
break;
}
}
//判断棋子连接:竖(|)
for(int m=i+1;m<=i+4;m++){
if(array[m][j]=='○'){
num++;
if(num==5){
System.out.println("白棋获胜!");
return true;
}
}else{
num=1;
break;
}
}
//判断棋子连接:斜杠(\)
for(int m=1;m<=4;m++){
if(array[i+m][j+m]=='○'){
num++;
if(num==5){
System.out.println("白棋获胜!");
return true;
}
}else{
num=1;
break;
}
}
//判断棋子连接:反斜杠(/)
if(j>=4){
for(int m=1;m<=4;m++){
if(array[i+m][j-m]=='○'){
num++;
if(num==5){
System.out.println("白棋获胜!");
return true;
}
}else{
num=1;
break;
}
}
}
}
}
}
return false;
}
//下棋
public static void playChess(){
char[][] array=new char[20][20];
checkerboard(array);
int[] coordinate=new int[2];
boolean sign=true;
int num=array.length*array[0].length;
Scanner sc=new Scanner(System.in);
for(int i=0;true;i++){
if(sign==true){
System.out.print("请黑棋落子,坐标为:");
for(int j=0;j<coordinate.length;j++){
coordinate[j]=sc.nextInt();
}
if(1<=coordinate[0]*coordinate[1] &
coordinate[0]*coordinate[1]<=array.length*array[i].length){
if(array[coordinate[0]-1][coordinate[1]-1]=='+'){
array[coordinate[0]-1][coordinate[1]-1]='●';
sign=false;
num--;
}else{
System.out.println("输入坐标无效,请重新输入:");
continue;
}
}else{
System.out.println("输入坐标无效,请重新输入:");
continue;
}
}else{
System.out.print("请白棋落子,坐标为:");
for(int j=0;j<coordinate.length;j++){
coordinate[j]=sc.nextInt();
}
if(1<=coordinate[0]*coordinate[1] &
coordinate[0]*coordinate[1]<=array.length*array[i].length){
if(array[coordinate[0]-1][coordinate[1]-1]=='+'){
array[coordinate[0]-1][coordinate[1]-1]='○';
sign=true;
num--;
}else{
System.out.println("输入坐标无效,请重新输入:");
continue;
}
}else{
System.out.println("输入坐标无效,请重新输入:");
continue;
}
}
for(int m=0;m<array.length;m++){
for(int n=0;n<array[m].length;n++){
System.out.print(" "+array[m][n]);
}
System.out.println();
}
if(num==0){
System.out.println("游戏结束!");
break;
}
if(judge(array)==true){
System.out.println("游戏结束!");
break;
}
}
}
public static void main(String[] args) {
playChess();
}
}
import java.util.Scanner;
/**
* 五子棋,棋盘,下棋,坐标(coordinate),判断
* @author Administrator
*
*/
public class Checkerboard {
public static void checkerboard(char[][] array){
//显示棋盘
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
array[i][j]='+';
System.out.print(" "+array[i][j]);
}
System.out.println();
}
}
//判断
public static boolean judge(char[][] array){
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
int num=1;
if(array[i][j]=='●'){
//判断棋子连接:横(-)
for(int m=j+1;m<=j+4;m++){
if(array[i][m]=='●'){
num++;
if(num==5){
System.out.println("黑棋获胜!");
return true;
}
}else{
num=1;
break;
}
}
//判断棋子连接:竖(|)
for(int m=i+1;m<=i+4;m++){
if(array[m][j]=='●'){
num++;
if(num==5){
System.out.println("黑棋获胜!");
return true;
}
}else{
num=1;
break;
}
}
//判断棋子连接:斜杠(\)
for(int m=1;m<=4;m++){
if(array[i+m][j+m]=='●'){
num++;
if(num==5){
System.out.println("黑棋获胜!");
return true;
}
}else{
num=1;
break;
}
}
//判断棋子连接:反斜杠(/)
if(j>=4){
for(int m=1;m<=4;m++){
if(array[i+m][j-m]=='●'){
num++;
if(num==5){
System.out.println("黑棋获胜!");
return true;
}
}else{
num=1;
break;
}
}
}
}
if(array[i][j]=='○'){
//判断棋子连接:横(-)
for(int m=j+1;m<=j+4;m++){
if(array[i][m]=='○'){
num++;
if(num==5){
System.out.println("白棋获胜!");
return true;
}
}else{
num=1;
break;
}
}
//判断棋子连接:竖(|)
for(int m=i+1;m<=i+4;m++){
if(array[m][j]=='○'){
num++;
if(num==5){
System.out.println("白棋获胜!");
return true;
}
}else{
num=1;
break;
}
}
//判断棋子连接:斜杠(\)
for(int m=1;m<=4;m++){
if(array[i+m][j+m]=='○'){
num++;
if(num==5){
System.out.println("白棋获胜!");
return true;
}
}else{
num=1;
break;
}
}
//判断棋子连接:反斜杠(/)
if(j>=4){
for(int m=1;m<=4;m++){
if(array[i+m][j-m]=='○'){
num++;
if(num==5){
System.out.println("白棋获胜!");
return true;
}
}else{
num=1;
break;
}
}
}
}
}
}
return false;
}
//下棋
public static void playChess(){
char[][] array=new char[20][20];
checkerboard(array);
int[] coordinate=new int[2];
boolean sign=true;
int num=array.length*array[0].length;
Scanner sc=new Scanner(System.in);
for(int i=0;true;i++){
if(sign==true){
System.out.print("请黑棋落子,坐标为:");
for(int j=0;j<coordinate.length;j++){
coordinate[j]=sc.nextInt();
}
if(1<=coordinate[0]*coordinate[1] &
coordinate[0]*coordinate[1]<=array.length*array[i].length){
if(array[coordinate[0]-1][coordinate[1]-1]=='+'){
array[coordinate[0]-1][coordinate[1]-1]='●';
sign=false;
num--;
}else{
System.out.println("输入坐标无效,请重新输入:");
continue;
}
}else{
System.out.println("输入坐标无效,请重新输入:");
continue;
}
}else{
System.out.print("请白棋落子,坐标为:");
for(int j=0;j<coordinate.length;j++){
coordinate[j]=sc.nextInt();
}
if(1<=coordinate[0]*coordinate[1] &
coordinate[0]*coordinate[1]<=array.length*array[i].length){
if(array[coordinate[0]-1][coordinate[1]-1]=='+'){
array[coordinate[0]-1][coordinate[1]-1]='○';
sign=true;
num--;
}else{
System.out.println("输入坐标无效,请重新输入:");
continue;
}
}else{
System.out.println("输入坐标无效,请重新输入:");
continue;
}
}
for(int m=0;m<array.length;m++){
for(int n=0;n<array[m].length;n++){
System.out.print(" "+array[m][n]);
}
System.out.println();
}
if(num==0){
System.out.println("游戏结束!");
break;
}
if(judge(array)==true){
System.out.println("游戏结束!");
break;
}
}
}
public static void main(String[] args) {
playChess();
}
}