这就是:
package com。tarena。day07。gobang;
import java。util。Scanner;
public class GoGang {
/**
* @param args
*/
public static void main(String[] args) {
int space = 0;
int black = 1;
int white = 2;
String[] chessName = {“空”,“黑”,“白”};
int[] board = new int[16*16]; //定义一个棋盘
Scanner console = new Scanner(System。in);
int idx = 0;
while(true){
print(board); //调用打印棋盘的方法
int color = idx++%2+1;//执黑先行(1,2,1,2,1,2)
int i,j;
do{
System。out。print(“请 ”+chessName[color]+“ 方下子(i j):”);
i = console。nextInt(16);
j = console。nextInt(16);
}while(board[i*16+j]!=space);
board[i*16+j]=color;
if(isWin(board, color, i, j)){
print(board);
System。out。println(“恭喜”+ chessName[color]);
break;
}
}
}
public static boolean isWin(int[] board, int color, int i, int j) {
return n2sWin(board, color, i, j) ||
w2eWin(board, color, i, j) ||
wn2esWin(board, color, i, j) ||
en2wsWin(board, color, i, j) ;
}
/** 东北到西南 */
private static boolean en2wsWin(int[] board, int color, int i, int j) {
while( board[i * 16 +j] == color ){
j++;
i--;
if(j==16 || i==-1)
break;
}
//i,j 是第一个空白子
j--;i++;
int c = 0;//计数变量
while(board[i * 16 +j] == color){
c++;
j--;
i++;
if(j==-1 || i==16)
break;
}
return c>=5;
}
/** 西到东 */
private static boolean w2eWin(int[] board, int color, int i, int j) {
while( board[i * 16 +j] == color ){
j--;
if(j==-1)
break;
}
//i,j 是第一个空白子
j++;
int c = 0;//计数变量
while(board[i * 16 +j] == color){
c++;
j++;
if(j==16)
break;
}
return c>=5;
}
/** 西北到东南 */
private static boolean wn2esWin(int[] board, int color, int i, int j) {
while( board[i * 16 +j] == color ){
j--;
i--;
if(j==-1 || i==-1)
break;
}
//i,j 是第一个空白子
j++;i++;
int c = 0;//计数变量
while(board[i * 16 +j] == color){
c++;
j++;
i++;
if(j==16 || i==16)
break;
}
return c>=5;
}
/** 北到南方向 */
private static boolean n2sWin(int[] board, int color, int i, int j) {
while( board[i * 16 +j] == color ){
i--;
if(i==-1)
break;
}
//i,j 是第一个空白子
i++;
int c = 0;//计数变量
while(board[i * 16 +j] == color){
c++;
i++;
if(i==16)
break;
}
return c>=5;
}
public static void print(int[] board){
char[] ico = {‘+’,‘@’,‘O’};
char[] hex = “0123456789abcdef”。toCharArray();
// for(int i=0; i
// if((i+1)%16==0){
// System。out。println();
// }
// }
System。out。print(“ ”);
for(int i=0; i<16; i++){
System。out。print(hex[i]);
}
System。out。println();
for(int i=0; i<16; i++){
System。out。print(hex[i]);
for (int j = 0; j < 16; j++) {
System。out。print(ico[board[i*16+j]]);
}
System。out。println();
}
}
}
五子棋软件最好还是黑石,是俄罗斯人开发的。
如果手机五子棋软件我推荐下面这个————试过很多相关软件。不管从界面,操作,设置还是软件计算能力,目前最好的五子棋软件是-五子棋大师。电脑对弈,它的实力很强。
http:///
累了困了好想早点歇一歇121筘50筘9933首捕
- 上一篇:AbAc式的词语急急急急急急!
- 下一篇:dnf召唤师一次可以召唤多少?