五子棋游戏.doc
上传人:qw****27 上传时间:2024-09-11 格式:DOC 页数:4 大小:24KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

五子棋游戏.doc

五子棋游戏.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

2,五子棋游戏()编写程序实现两人互玩的五子棋游戏,游戏开始时要求输出以下棋盘,然后提示黑方和白方下子,玩家从命令行输入:af,表示在a,f坐标落子,其中黑方的子用@表示,白方的子用O表示,每有一方落子,则要重新输出棋盘的状态.程序还要能判断某一方获胜,并终止程序.packageday04;importjava.util.Scanner;publicclassTest1{publicstaticvoidmain(String[]args){char[][]state=newchar[14][14];for(inti=0;i<state.length;i++){for(intj=0;j<state[i].length;j++){state[i][j]='*';}}booleanisBlack=true;//当前是黑方下子Scannersca=newScanner(System.in);printState(state);while(true){System.out.println("请"+(isBlack?"黑":"白")+"方下子:");Stringinput=sca.next();if(input.equals("exit")){break;}intx=input.charAt(0)-'a';inty=input.charAt(1)-'a';if(state[x][y]=='@'||state[x][y]=='O'){//该位置已经有棋子了System.out.println("该位置已经有棋子,请重新指定坐标!");continue;}state[x][y]=(isBlack?'@':'O');printState(state);if(isWin(state,isBlack,x,y)){System.out.println((isBlack?"黑":"白")+"方获胜!");break;}isBlack=!isBlack;}}publicstaticvoidprintState(char[][]state){for(inti=0;i<state.length;i++){//输出每一行的内容System.out.print((char)('a'+i)+"");//输出行坐标(左边的字母)for(intj=0;j<state[i].length;j++){//输出该行的内容System.out.print(state[i][j]+"");}System.out.print("\n");//输出换行符}System.out.print("");//输出第一行开头的空格for(inti=0;i<state[0].length;i++){//输出第一行的所有字母System.out.print((char)('a'+i)+"");}System.out.print("\n");//输出换行符}publicstaticbooleanisWin(char[][]state,booleanisBlack,intx,inty){//charc=isBlack?'@':'O';returnisShuipingWin(state,isBlack,x,y)||isChuizhiWin(state,isBlack,x,y)||isZuoXieWin(state,isBlack,x,y)||isYouXieWin(state,isBlack,x,y);}publicstaticbooleanisShuipingWin(char[][]state,booleanisBlack,intx,inty){charc=isBlack?'@':'O';//1,循环找到左边界(白子的边界)while(y>0&&state[x][y]==c){y--;}//确定统计连续同颜色棋子个数的变量初始值inti=0;if(state[x][y]==c){i=1;}//3,向右循环统计有多少个连续的同颜色棋子y++;while(y<state[0].length&&state[x][y]==c){i++;if(i==5){returntrue;}y++;}returnfalse;}publicstaticbooleanisChuizhiWin(char[][]state,booleanisBlack,intx,inty){charc=isBlack?'@':'O';//1,循环找到上边界(白子的边界)while(x>0&&state[x][y]==c){x--;}//确定统计连续同颜色棋子个数的变量初始值inti=0;if(state[x][y]==c){i=1;}//3,向下循环统计有多少个连续的同颜色棋子x++;while(x<state.length&&state[x