简单的五子棋小游戏

import java.util.Scanner;

public class Demo2 {

public static void main(String[] args) {
	Scanner input = new Scanner(System.in);
	int[][] chess = new int[16][16];
	int n = 1;
	int a = 0;
	int b = 0;
	int finish = 1;
    while(true) {
    	//输入落子
    	if(n==1) {
    		System.out.println("棋盘为15*15,请黑方落子");
    		a = input.nextInt();
            b = input.nextInt();
            if(chess[a][b]!=0) {
            	System.out.println("已有落子,请换一个点");
            }else {
            	chess[a][b] = 1;
                n = 2;
            }
    	}else {
    		System.out.println("请白方落子");
    		a = input.nextInt();
            b = input.nextInt();
            if(chess[a][b]!=0) {
            	System.out.println("已有落子,请换一个点");
            }else {
            	chess[a][b] = 2;
                n = 1;
            }
            
    	}
    	//绘制棋盘
        for(int y=0;y<16;y++) {
        	for(int x=0;x<16;x++) {
        		if(y==0) {
            		System.out.print(x+" ");
        	    }else if(x==0) {
        	    	System.out.print(y+" ");
        	    }else {
        	    	if(chess[x][y]==0) {
        	    	System.out.print("  "); 
        	    	}else if(chess[x][y]==1) {
        	    		System.out.print("* "); 
        	    	}else {
        	    		System.out.print("o "); 
        	    	}
        	    }
        		if(x==15) {
        			System.out.println(); 
        		}
            }
        }
        //判断是否有一方获胜
        //横向5子
        if(n==2) {
        	int pieces = 0;//是否5子连珠
        	for(int i=-4;i<5;i++) {
        		if(a+i<1) {
        			continue;
        		}
        		if(chess[a+i][b]==1) {
        			pieces++;
        		}else {
        			pieces = 0;
        		}
        		if(pieces==5) {
        			finish = 0;
        			System.out.println("黑子获胜");
        		}
        	}
        }else {
        	int pieces = 0;//是否5子连珠
        	for(int i=-4;i<5;i++) {
        		if(a+i<1|a+i>15) {
        			continue;
        		}
        		if(chess[a+i][b]==2) {
        			pieces++;
        		}else {
        			pieces = 0;
        		}
        		if(pieces==5) {
        			finish = 0;
        			System.out.println("白子获胜");
        		}
        	}
        }
        //纵向五子
        if(n==2) {
        	int pieces = 0;//是否5子连珠
        	for(int i=-4;i<5;i++) {
        		if(b+i<1|b+i>15) {
        			continue;
        		}
        		if(chess[a][b+i]==1) {
        			pieces++;
        		}else {
        			pieces = 0;
        		}
        		if(pieces==5) {
        			finish = 0;
        			System.out.println("黑子获胜");
        		}
        	}
        }else {
        	int pieces = 0;//是否5子连珠
        	for(int i=-4;i<5;i++) {
        		if(b+i<1|b+i>15) {
        			continue;
        		}
        		if(chess[a][b+i]==2) {
        			pieces++;
        		}else {
        			pieces = 0;
        		}
        		if(pieces==5) {
        			finish = 0;
        			System.out.println("白子获胜");
        		}
        	}
        }
    //斜向五子
        if(n==2) {
        	int pieces = 0;//是否5子连珠
        	for(int i=-4;i<5;i++) {
        		if(a+i<1|b+i<1|b+i>15|a+i>15) {
        			continue;
        		}
        		if(chess[a+i][b+i]==1) {
        			pieces++;
        		}else {
        			pieces = 0;
        		}
        		if(pieces==5) {
        			finish = 0;
        			System.out.println("黑子获胜");
        		}
        	}
        }else {
        	int pieces = 0;//是否5子连珠
        	for(int i=-4;i<5;i++) {
        		if(a+i<1|b+i<1|b+i>15|a+i>15) {
        			continue;
        		}
        		if(chess[a+i][b+i]==2) {
        			pieces++;
        		}else {
        			pieces = 0;
        		}
        		if(pieces==5) {
        			finish = 0;
        			System.out.println("白子获胜");
        		}
        	}
        }
    //斜向5子
        if(n==2) {
        	int pieces = 0;//是否5子连珠
        	for(int i=-4;i<5;i++) {
        		if(a+i<1|b-i<1|b-i>15|a+i>15) {
        			continue;
        		}
        		if(chess[a+i][b-i]==1) {
        			pieces++;
        		}else {
        			pieces = 0;
        		}
        		if(pieces==5) {
        			finish = 0;
        			System.out.println("黑子获胜");
        		}
        	}
        }else {
        	int pieces = 0;//是否5子连珠
        	for(int i=-4;i<5;i++) {
        		if(a+i<1|b-i<1|b-i>15|a+i>15) {
        			continue;
        		}
        		if(chess[a+i][b-i]==2) {
        			pieces++;
        		}else {
        			pieces = 0;
        		}
        		if(pieces==5) {
        			finish = 0;
        			System.out.println("白子获胜");
        		}
        	}
        }
    if(finish==0) {
    	break;
    }
    }	
}

}
//结果演示
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值