(个人解题思路系列)五子棋

五子棋的分析解题思路

引言

本系列是我自己关于遇到过的编程题目进行的分析思路总结,希望能够帮助到需要帮助的那些需要帮助的编程小白,同时也欢迎各位前辈予以指正和批评指导,谢谢。

题目:

五子棋是全国智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类 游戏。通常双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上, 先形成五子连线者获胜。
在这里插入图片描述

个人初步分析

  1. 构建一个16*16的二维数组 一维从0到15排列,二维数组的第一行和第一列从0到15排列,其余列用0排列
  2. 采用循环来进行下棋
  3. 定义两个用户输入变量 第一个人输入一个两个从1到15的下标值,来改变指定数组下标数据的值
  4. 第二个人同第一个人一样
  5. 胜负判定同行或同列或斜线连续五个数据经过改变数值且相同(5个1或5个2)时,判胜利
  6. 胜负采用条件结构

个人解题思路

第一步

构建一个15X15的棋盘(实际数组长度应为16),,并打印初始棋盘

int[][] checkerboard = new int[16][16];
    	  for(int i=0;i<checkerboard.length;i++) {
   
    		  for(int j=0;j<checkerboard.length;j++) {
   
    			  checkerboard[i][j] = 0;
    		  }
    	  }
    	  for(int i=0;i<checkerboard.length;i++) {
   
    		  checkerboard[i][0] = i;
    		  checkerboard[0][i] = i;
    	  }
    	  for(int i=0;i<checkerboard.length;i++) {
   
    		  for(int j=0;j<checkerboard.length;j++) {
   
               if(i<10 && i>0 ) {
   
    			 System.out.print(checkerboard[i][j]+"  ");
               }else if(i<16 && i>=10 && j==0) {
   
            	 System.out.print(checkerboard[i][j]+" ");
               }else if(i<16 && i>=10 && j>0){
   
                 System.out.print(checkerboard[i][j]+"  ");
               }else if(i==0 && j>=10) {
   
            	 System.out.print(checkerboard[i][j]+" ");
               }else if(i==0 && j<10) {
   
            	 System.out.print(checkerboard[i][j]+"  ");
               }
    		  }
    		  System.out.print("\n");
    	  }
第二步

定义各种需要的变量

 boolean bool = true;
    	  int time = 0 ;
    	  // 定义回合数
    	  int zero = 225;
    	  int countPlay1 = 0;
    	  int countPlay2 = 0;
    	  // 玩家的落子数
		  Scanner inputLineplay11 = new Scanner(System.in);
		  Scanner inputRowplay12 = new Scanner(System.in);
		  Scanner inputLineplay21 = new Scanner(System.in);
		  Scanner inputRowplay22 = new Scanner(System.in);
		  // 定义用户输入变量
第三步

使用while循环结构,开始下棋,一开始由玩家1(player1)开始下子,下子时要判定落子位置是否已经有棋子,成功落子后打印棋盘

while(bool) {
   
    		  time++
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值