java—五子棋(纯代码,无解说)-创新互联

java—五子棋
  • 前言
  • 代码部分

创新互联是一家专业提供三水企业网站建设,专注与做网站、网站设计H5建站、小程序制作等业务。10年已为三水众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。前言

小白正在学c,但专业教材直接学java,并且要求java写一篇五子棋,但c与java相近,并且之前写过井字棋,所以中间也没什么问题,很快就能写出来,之后也有可能出一篇详解代码的部分

代码部分
public static char is_win(char board[][])
	{		//棋盘判断
		int qi_pan=0;
	    	for(int rows=0;rows<10;rows++)
	    	{		for(int cols=0;cols<10;cols++)
	    		{			if(qi_pan==1)
	    				break;
	    			if(board[rows][cols]=='-')
	    			qi_pan=1;
	    		}	
	    	}
	    	//横列判断
	    	char qi_zi='n';
	    	int p1_iswin=0;
	    	int p2_iswin=0;
	    	for(int rows=0;rows<10;rows++)
	    	{		p1_iswin=0;
	    		p2_iswin=0;
	    		for(int cols=0;cols<10;cols++)
	    		{			if(board[rows][cols]=='-')
	    			{				p1_iswin=0;
	    				p2_iswin=0;
	    			}
	    			if(board[rows][cols]=='*')
	    				{				p1_iswin++;
	    				p2_iswin=0;
	    				}
	    			if(p1_iswin==5)
	    			{				qi_zi='*';
	    				break;
	    			}
	    			if(board[rows][cols]=='0')
	    			{				p1_iswin=0;
	    				p2_iswin++;
	    			}
	    			
	    			if(p2_iswin==5)
	    			{				qi_zi='0';
	    				break;
	    			}
	    		}
	    	}
	    	
	    	
	    		//竖列判断
	    	if(qi_zi=='n')
	    	{	
		    	for(int rows=0;rows<10;rows++)
		    	{		p1_iswin=0;
			    	p2_iswin=0;
		    		for(int cols=0;cols<10;cols++)
		    		{			if(board[cols][rows]=='-')
		    			{				p1_iswin=0;
		    				p2_iswin=0;
		    			}
		    			if(board[cols][rows]=='*')
		    				{				p1_iswin++;
		    				p2_iswin=0;
		    				}
		    			if(p1_iswin==5)
		    			{				qi_zi='*';
		    				break;
		    			}
		    			if(board[cols][rows]=='0')
		    			{				p1_iswin=0;
		    				p2_iswin++;
		    			}
		    			
		    			if(p2_iswin==5)
		    			{				qi_zi='0';
		    				break;
		    			}
		    		}
	    		
	    	}
	    	}
	    	//左上对角线判断
	    if(qi_zi=='n')
	    {	
	    	for(int i=0;i<=5;i++)
	    	{		p1_iswin=0;
		    	p2_iswin=0;
	    		int rows=i;
	    		int cols=0;
	    		int rows_right=10;
	    		int cols_right=10-i;
	    		while(rows			if(board[rows][cols]=='-')
	    			{				p1_iswin=0;
	    				p2_iswin=0;
	    			}
	    			if(board[cols][rows]=='*')
    				{		p1_iswin++;
    				p2_iswin=0;
    				}
    			if(p1_iswin==5)
    			{		qi_zi='*';
    				break;
    			}
    			if(board[cols][rows]=='0')
    			{		p1_iswin=0;
    				p2_iswin++;
    			}
    			
    			if(p2_iswin==5)
    			{		qi_zi='0';
    				break;
    			}
    			rows++;
    			cols++;
	    		}
	    		
	    		
	    	}
	    	
	    	
	    }
	    	//左上上部分对角线判断
	    if(qi_zi=='n')
	    {	for(int i=0;i<=5;i++)
	    	{		p1_iswin=0;
		    	p2_iswin=0;
	    		int rows=0;
	    		int rows_right=10-i;
	    		int cols=i;
	    		int cols_right=10;
	    		while(rows			if(board[rows][cols]=='-')
	    			{				p1_iswin=0;
	    				p2_iswin=0;
	    			}
	    			if(board[rows][cols]=='*')
    				{		p1_iswin++;
    				p2_iswin=0;
    				}
    			if(p1_iswin==5)
    			{		qi_zi='*';
    				break;
    			}
    			if(board[rows][cols]=='0')
    			{		p1_iswin=0;
    				p2_iswin++;
    			}
    			
    			if(p2_iswin==5)
    			{		qi_zi='0';
    				break;
    			}
    			rows++;
    			cols++;
	    		}
	    		
	    	}
	    	
	    }
	    //右上对角线上半部分判断
	    if(qi_zi=='n')
	    {	for(int i=0;i<=5;i++)
	    	{		p1_iswin=0;
		    	p2_iswin=0;
	    	 int row=i;
	    	 int row_right=9;
	    	 int col=9;
	    	 int col_right=i;
	    		while(row<=row_right&&col>=col_right)
	    		{			if(board[row][col]=='-')
	    			{				p1_iswin=0;
	    				p2_iswin=0;
	    			}
	    			if(board[row][col]=='*')
    				{		p1_iswin++;
    				p2_iswin=0;
    				}
    			if(p1_iswin==5)
    			{		qi_zi='*';
    				break;
    			}
    			if(board[row][col]=='0')
    			{		p1_iswin=0;
    				p2_iswin++;
    			}
    			
    			if(p2_iswin==5)
    			{		qi_zi='0';
    				break;
    			}
    			row++;
    			col--;
	    		}
	    		
	    			
	    			
	    		}
	    	}
	    
	    //右上对角线上半部分
	    	if(qi_zi=='n')
	    	{		for(int i=0;i<=5;i++)
	    		{		p1_iswin=0;
		    	p2_iswin=0;
	    	 int rows=0;
	    	 int row_right=9-i;
	    	 int col=9-i;
	    	 int col_right=0;
	    		while(col>=col_right&&rows<=row_right)
	    		{			if(board[rows][col]=='-')
	    			{				p1_iswin=0;
	    				p2_iswin=0;
	    			}
	    			if(board[rows][col]=='*')
    				{		p1_iswin++;
    				p2_iswin=0;
    				}
    			if(p1_iswin==5)
    			{		qi_zi='*';
    				break;
    			}
    			if(board[rows][col]=='0')
    			{		p1_iswin=0;
    				p2_iswin++;
    			}
    			
    			if(p2_iswin==5)
    			{		qi_zi='0';
    				break;
    			}
    			rows++;
    			col--;
	    		}
	    		
	    	}
	    	
	    	}
	    	if(qi_zi=='0')
	    		return '0';
		if(qi_zi=='*')
			return'*';
		if(qi_pan==1)
			return 'n';
		if(qi_pan==0)
			return 'y';
		return 'z';
	}
	
	
	
	//游戏开始0 *
	public static int game(char board[][])
	{int no=0;
		int flag=0;
		while(flag==0)
		{	Scanner rua=new Scanner(System.in);
			if(no==0)
			{		System.out.println("*:please input the number");
		int zuo_biao=rua.nextInt();
		int cols=zuo_biao%10;
		int rows=zuo_biao/10%10;
		if(board[rows][cols]!='-')
		{	continue;
		}
		board[rows][cols]='*';
		menu(board);
		char f=is_win(board);
		if(f=='0')
		{	System.out.println("0 winner!!");
			return 0;
		}
		else if(f=='*')
		{	System.out.println("* winner!!");
			return 0;
		}
		else if(f=='y')
		{	System.out.println("no winner");
			return 0;
		}
			}
		System.out.println("0:please input the number");
		int zuo_biao=rua.nextInt();
		int cols=zuo_biao%10;
		int rows=zuo_biao/10%10;
		if(board[rows][cols]!='-')  
		{	no=1;
			continue;
		}
		else
		{	no=0;
		}
		board[rows][cols]='0';
		menu(board);
		char r=is_win(board);
		if(r=='0')
		{	System.out.println("0 winner!!");
		    return 0;
		}
		else if(r=='*')
		{	System.out.println("* winner!!");
			return 0;
		}
		else if(r=='y')
		{	System.out.println("no winner");
			return 0;
		}
		}
		return 0;
		
	}
	
	
	
	
	//用户选择开始游戏或退出游戏
	public static int select()
	{System.out.println("play: 1");
System.out.println("exit 0");	
Scanner sc=new Scanner(System.in);
int flag=sc.nextInt();
	return flag;	
	}
	//棋盘初始化
	public static void init(char board[][])
	{for(int u=0;u<10;u++)
		{	for(int i=0;i<10;i++)
			{		board[u][i]='-';
			}
		}
	}
	
	//棋盘打印
public static void menu(char board[][])
{System.out.print(" ");
	for(int rpw=0;rpw<10;rpw++)
	{System.out.print(" ");
		System.out.print(""+rpw);
	}
	System.out.println("");
    for(int rows=0;rows<10;rows++)
    {System.out.print(""+rows);
    	System.out.print(" ");
    	for(int cols=0;cols<10;cols++)
    	{System.out.print(""+board[rows][cols]);
    		System.out.print(" ");
    	}
    	System.out.println("");
    }

}

//主函数
	public static void main(String[] args)
	{char[][] board=new char[10][10]; 
		int flag=1;
do
{flag=select();
	switch(flag)
	{case 1:
	{init(board);
		menu(board);
		game(board);
		break;
	}
	case 0:
	{		break;
	}
		default:
		{	System.out.println("error number,please input the right number again");
		}
	}
	
}
	while(flag!=0);
	}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前文章:java—五子棋(纯代码,无解说)-创新互联
本文网址:http://hbruida.cn/article/doidhh.html