java五子棋难度设置_tiger(我) 用 java写简易五子棋游戏 上次没通过这次看看行不行...

这是一个简单的Java五子棋游戏实现,包括棋盘初始化、用户输入处理、电脑随机落子以及判断输赢等功能。玩家可以与电脑进行对弈,当连成五子时,游戏结束并显示胜负结果。
摘要由CSDN通过智能技术生成

import java.io.*;

import java.util.*;

public class 五子棋游戏

{

static  int m=1;

static  int n=1;

static final int SIZE=13;

static final String nothing="□";

static final String black="●";

static final String white="×";

static String[][] chess =new String[SIZE][SIZE];

/***

每一个元素有三种情况,黑子白子和空,空我们定义为框,先初始化棋盘;

向每个元素内填充框。

***/

// throws IOException配readLine不能少;

public static void main(String[] args)  throws IOException

{

System.out.print('\n');

System.out.println("欢迎来到英雄联盟,敌军还有30秒到达战场!");

System.out.print('\n');

System.out.print('\n');

construction();

go_construction();

keyboard_enter();

}

//******************************************************

//初始化棋盘方法;

public static void construction()

{

for(int i=0;i< SIZE;i++)

{

for(int j=0; j< SIZE;j++)

chess[i][j]=nothing;

}

}

//******************************************************

//输出棋盘方法;

public static void go_construction()

{

for(int i=0;i< SIZE;i++)

{

for(int j=0; j< SIZE;j++)

{

System.out.print(chess[i][j]);

}

System.out.print('\n');

}

}

//******************************************************

//读取用户输入

// throws IOException配readLine不能少;

public static void keyboard_enter() throws IOException

{

//包装后的键盘;在iO包里;

BufferedReader keyboard=new BufferedReader(new InputStreamReader(System.in));

String go=null;

while((go =keyboard.readLine() )!=null)

{

System.out.println("菜鸟"+go);

//将字符串分成两节;

String[] xyStr=go.split(",");

String xstr=xyStr[0];

String ystr=xyStr[1];

//把String转为int型;

int xPos =Integer.parseInt(xstr);

int yPos =Integer.parseInt(ystr);

if(!chess[xPos][yPos].equals(nothing))

{

System.out.println("此处已有棋子,请在别处落子。");

continue;

}

//所谓下棋,就是对棋点的字符串重新赋值;

chess[xPos][yPos]=black;

m++;

//傻瓜级电脑下棋,直接用随机数;但是不可以重复;

while(true)

{

int pc_x=new Random().nextInt(SIZE);

int pc_y=new Random().nextInt(SIZE);

if(chess[pc_x][pc_y].equals(nothing))

{

chess[pc_x][pc_y]=white;

n++;

break;

}

}

go_construction();

int judge;

if(judge()==1)  //人赢了;

{

System.out.println("恭喜你赢了这个×××电脑");

return;

}

if(judge()==(-1))  //pc赢了;

{

System.out.println("悲剧,这个×××电脑都赢了你");

return;

}

if(judge()==0)  //平局;

{

System.out.println("平局,这个×××电脑和你差不多");

return;

}

}

}

//******************************************************

//定义一个判断输赢的方法;

public static int judge()

{

//判断橫着的五个;

for(int i=0;i

{

String heng_line="";

for(int j=0;j

{

heng_line+=chess[i][j];

if(heng_line.contains("●●●●●"))

return 1;

if(heng_line.contains("×××××"))

return -1;

if(m+n==SIZE*SIZE)   //还没出胜负时,棋盘走完了。

{

return 0;

}

}

}

//判断竖着的五个;

for(int j=0;j

{

String shu_line="";

for(int i=0;i

{

shu_line+=chess[i][j];

if(shu_line.contains("●●●●●"))

return 1;

if(shu_line.contains("×××××"))

return -1;

if(m+n==SIZE*SIZE)   //还没出胜负时,棋盘走完了。

{

return 0;

}

}

}

//向右上方向走出五个子;

for(int i=0,j=0;i

{

String youshang_line="";

youshang_line+=chess[i][j];

while(i!=0&j!=SIZE-1)

{

i--;j++;

youshang_line+=chess[i][j];

if(youshang_line.contains("●●●●●"))

return 1;

if(youshang_line.contains("×××××"))

return -1;

if(m+n==SIZE*SIZE)   //还没出胜负时,棋盘走完了。

{

return 0;

}

}

}

for(int i= SIZE-1,j=0;j

{

String youshang_line="";

youshang_line+=chess[i][j];

while(i!=0&j!=SIZE-1)

{

i--;j++;

youshang_line+=chess[i][j];

if(youshang_line.contains("●●●●●"))

return 1;

if(youshang_line.contains("×××××"))

return -1;

if(m+n==SIZE*SIZE)   //还没出胜负时,棋盘走完了。

{

return 0;

}

}

}

//右下方向出现五个子;

for(int i=SIZE-1,j=0;i>0;i--)

{

String youxia_line="";

youxia_line+=chess[i][j];

while(i!=SIZE-1&j!=SIZE-1)

{

i++;j++;

youxia_line+=chess[i][j];

if(youxia_line.contains("●●●●●"))

return 1;

if(youxia_line.contains("×××××"))

return -1;

if(m+n==SIZE*SIZE)   //还没出胜负时,棋盘走完了。

{

return 0;

}

}

}

for(int i=0,j=0;j

{

String youxia_line="";

youxia_line+=chess[i][j];

while(i!=SIZE-1&j!=SIZE-1)

{

i++;j++;

youxia_line+=chess[i][j];

if(youxia_line.contains("●●●●●"))

return 1;

if(youxia_line.contains("×××××"))

return -1;

if(m+n==SIZE*SIZE)   //还没出胜负时,棋盘走完了。

{

return 0;

}

}

}

return 2;//记得加上此方法返回值;no void;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值