import javautilScanner;
public class FiveChessGame {
private int temp;
private String[][] String;//注意在这里不能定义为char型不然打印的数字
////////////////////////////
public FiveChessGame(){
Systemoutprintln(please input the line number);
Scanner sc=new Scanner(Systemin);
thistemp=scnextInt();
String=new String[temp][temp];
for(int i=;i<temp;i++){
for(int j=;j<temp;j++){
String[i][j]=*;//注意在这里不能定义为char型不然打印的数字
}
}
Systemoutprint(\t);
for(int i=;i<temp;i++){
Systemoutprint(i);
Systemoutprint(\t);
}
Systemoutprintln();
for(int i=;i<temp;i++){
Systemoutprint(i);//注意在这里的格式不能写成Systemoutprint(i+\t);不然从打印
Systemoutprint(\t);
for(int j=;j<temp;j++){
Systemoutprint(String[i][j]+\t);
}
Systemoutprintln();
}
}
////////////////////
public int getline(){
return thistemp;
}
///////////////////////
public String[][] getString(){
return thisString;
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
import javautil*;
public class FiveChessPlayers {
private String name;
public static FiveChessGame fcg=new FiveChessGame();
//////////////////////
public FiveChessPlayers(){//玩多少行的游戏
Systemoutprintln(please input players name);
Scanner sc=new Scanner(Systemin);
thisname=scnext();
}
///////////////////
public String getName(){
return thisname;
}
////////////////////////////////
public void play(String str){//the player could play the chess
Scanner sc=new Scanner(Systemin);
int xy;
while(true){
Systemoutprintln(please input your chess);
x=scnextInt();
y=scnextInt();
if(x>=fcggetline()||y>=fcggetline()) {
Systemoutprintln(your input is error);
continue;
}
if(fcggetString()[x][y]==*){
fcggetString()[x][y]=str;
break;
}else{
Systemoutprintln(you coudln put your chess here);
continue;
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////
import javautil*;
public class TestChess {
private FiveChessPlayers f;
private FiveChessPlayers f;
public TestChess(){
f=new FiveChessPlayers();
f=new FiveChessPlayers();
}
///////////////////////////////////////////////////////////////////////////
public void display(){
Systemoutprint(\t);
for(int i=;i<FiveChessPlayersfcggetline();i++){
Systemoutprint(i);
Systemoutprint(\t);
}
Systemoutprintln();
for(int i=;i<FiveChessPlayersfcggetline();i++){
Systemoutprint(i);//注意在这里的格式不能写成Systemoutprint(i+\t);不然从打印
Systemoutprint(\t);
for(int j=;j<FiveChessPlayersfcggetline();j++){
Systemoutprint(FiveChessPlayersfcggetString()[i][j]+\t);
}
Systemoutprintln();
}
}
//////////////////////////////////////////////////////////////////////////////
public void putChess(String tem){
if(temequals(@))
{
fplay(@);
}
if(temequals(#))
{
fplay(#);
}
}
/////////////////////////////////////////////////////////
public void victory(){
String str=new String();
String str=@@@@@;
////////////////////////////////////
int X=Y=;//用来记录每次查找到的@字符的数组下标从两个for循环里导出来
int k=;int j=;//注意首次的控制条件的建立j为-可以使第二个for检测首次从下标开始
///////////////////////////////////
while(true)
{
LABEL:for(;k<FiveChessPlayersfcggetline();k++){//添加标签要注意标签的用法
for(j=(j+)%FiveChessPlayersfcggetline();j<FiveChessPlayersfcggetline();j++){
//注意在这里的这个表达式的写法可以在一次寻找不满足时下一次从数组的下一个位置开始
if(FiveChessPlayersfcggetString()[k][j]equals(@)){
X=k;
Y=j;
break LABEL;//每找到一个相同字符则跳出
}else{
Systemoutprintln(k+行);
Systemoutprintln(j+列);
// continue;//多余
}
}
}
// Systemexit();//调试语句退出虚拟机
if(k<FiveChessPlayersfcggetline()&j<FiveChessPlayersfcggetline())
{
for(int i=;i<;i++){
if(X<FiveChessPlayersfcggetline()&Y<(FiveChessPlayersfcggetline())){//遍历列
str+=FiveChessPlayersfcggetString()[X][Y+i];
if(i!=)
continue;
if(i==){
Systemoutprintln(安列取+str);
if(strequals(str)){
Systemoutprintln(fgetName()+ is the winner);
Systemexit();//结束退出虚拟机
}else{
str=;
}
}
}
}
for(int i=;i<;i++){
if((X+)<FiveChessPlayersfcggetline()&(Y+)<FiveChessPlayersfcggetline()){//四十五度遍历
str+=FiveChessPlayersfcggetString()[X+i][Y+i];
if(i!=)
continue;
if(i==){
Systemoutprintln(四十五度向前取+str);
if(strequals(str)){
Systemoutprintln(fgetName()+ is the winner);
Systemexit();//胜利结束游戏
}else{
str=;
}
}
}
}
for(int i=;i<;i++){
if((X+)<FiveChessPlayersfcggetline()&Y<FiveChessPlayersfcggetline()){//行遍历
str+=FiveChessPlayersfcggetString()[X+i][Y];
if(i!=)
continue;
if(i==){
Systemoutprintln(安行取+str);
if(strequals(str)){
Systemoutprintln(fgetName()+ is the winner);
Systemexit();//如上
}else{
str=;
}
}
}
}
for(int i=;i<;i++){
if((X+)<FiveChessPlayersfcggetline()&(Y)>=){
str+=FiveChessPlayersfcggetString()[X+i][Yi];
if(i!=)
continue;
if(i==){
Systemoutprintln(四十五度向后取+str);
if(strequals(str)){
Systemoutprintln(fgetName()+ is the winner);
Systemexit();//如上
}else{
str=;
}
}
// str+=fString[X+i][Y+i];//注意对比写法
// continue;
// str=+fString[X+i][Y+i];//注意错误的写法不然每次覆盖前一次的串累加值
// continue;
}
}
}
//////////////////////////////////////////////////////////////////////////////
if(str==&k<FiveChessPlayersfcggetline()&j<FiveChessPlayersfcggetline()){
j++;
continue ;
}else{
break;
}
}
}
////////////////////////////////////////////////////////////////////
public void victory(){
String str=new String();
String str=#####;
////////////////////////////////////
int X=Y=;
int k=;int j=;
while(true)
{
LABEL:for(;k<FiveChessPlayersfcggetline();k++){//添加标签要注意标签的用法
for(j=(j+)%FiveChessPlayersfcggetline();j<FiveChessPlayersfcggetline();j++){
if(FiveChessPlayersfcggetString()[k][j]equals(#)){
X=k;
Y=j; Systemoutprintln(FiveChessPlayersfcggetString()[k][j]);
break LABEL;
}else{
Systemoutprintln(k+******);
Systemoutprintln(j);
}
}
}
///////////////////////////////////////////////
for(int i=;i<;i++){
if(X<FiveChessPlayersfcggetline()&Y<(FiveChessPlayersfcggetline())){//遍历列
str+=FiveChessPlayersfcggetString()[X][Y+i];
if(i!=)
continue;
if(i==){
Systemoutprintln(str);
Systemoutprintln();
if(strequals(str)){
Systemoutprintln(fgetName()+ is the winner);
Systemexit();//结束
}else{
str=;
}
}
}
}
for(int i=;i<;i++){
if((X+)<FiveChessPlayersfcggetline()&(Y+)<FiveChessPlayersfcggetline()){//四十五度遍历
str+=FiveChessPlayersfcggetString()[X+i][Y+i];
if(i!=)
continue;
if(i==){
Systemoutprintln(str);
Systemoutprintln();
if(strequals(str)){
Systemoutprintln(fgetName()+ is the winner);
Systemexit();//结束
}else{
str=;
}
}
}
}
for(int i=;i<;i++){
if((X+)<FiveChessPlayersfcggetline()&Y<FiveChessPlayersfcggetline()){//行遍历
str+=FiveChessPlayersfcggetString()[X+i][Y];
if(i!=)
continue;
if(i==){
Systemoutprintln(str);
Systemoutprintln();
if(strequals(str)){
Systemoutprintln(fgetName()+ is the winner);
Systemexit();//结束
}else{
str=;
}
}
}
}
for(int i=;i<;i++){
if((X+)<FiveChessPlayersfcggetline()&(Y)>=){
str+=FiveChessPlayersfcggetString()[X+i][Yi];
if(i!=)
continue;
if(i==){
Systemoutprintln(str);
Systemoutprintln();
if(strequals(str)){
Systemoutprintln(fgetName()+ is the winner);
Systemexit();//结束
}else{
str=;
}
}
// str+=fString[X+i][Y+i];
// continue;
// str=+fString[X+i][Y+i];//注意错误的写法不然每次覆盖前一次的串累加值
// continue;
}
}
//////////////////////////////////////////////////////////////////////////////
if(str==&k<FiveChessPlayersfcggetline()&j<FiveChessPlayersfcggetline()){
j++;
continue ;
}else{
break;
}
}
}
////////////////////////////////////////
public static void main(String[] args) {
TestChess tc=new TestChess();
boolean b=true;
while(b){
tcputChess(@);
tcvictory();
tcdisplay();
tcputChess(#);
tcdisplay();
tcvictory();
Scanner sc=new Scanner(Systemin);
Systemoutprintln(if you like to continue input true or exit input false);
b=scnextBoolean();
if(!b){
Systemoutprintln(welcome to use ! );
break;
}
}
}
}