九宫格游戏java代码,编程语言九宫格
本文实例为大家分享了爪哇编写实现九宫格应用的具体代码,供大家参考,具体内容如下
在九宫格里面轮流画圈或叉,哪一方先在水平、竖直、或对角线上有三个子则胜出。
可在窗体中安排9个按钮对应每个格子
计算机和人轮流下子。
代码如下:
导入Java。awt。*;导入Java。awt。事件。*;导入javax。挥棒。*;导入Java。郎。*;类切斯德莫扩展面板实现操作侦听器{ char who turn= O//人—O,计算机加在以-u结尾的法语词源的名词之后构成复数按钮b[]=新建按钮[9];//9个按钮字符串缓冲棋=新字符串缓冲( KKKKKKKKK );//将九宫格用一位数组来表示,用英语字母表中第十一个字母字符表示空位置public chesdemo(){ set layout(new GridLayout(3,3,3,3));for(int I=0;i9;i ) { b[i]=新按钮();add(b[I]);b[i].setActionCommand(字符串。(I)的值);b[i].addActionListener(this);} } public void action performed(action event e){ Button me=(Button)(e . getsource());//自己如果(!me.getLabel().等于("")//不允许在已有棋子位置下棋返回;我。设置标签(“轮到谁”);//标记下棋int row=integer。parse int(me。getactioncommand());//求位置chess.setCharAt(row,who turn);//记录下棋游戏结束();//判游戏是否结束whoTurn=(whoTurn==O )?X : O//轮换玩家电脑take();//计算机下}public int findplace() { //计算机找下棋位置for(int r=0;r9;r)if(国际象棋。charat(r)= K ){//找个空位置chess.setCharAt(r,who turn);//先填上棋子if (isWin(whoTurn)) { //看自己下此位置是否能赢chess.setCharAt(r, K );//恢复原状return r;} else chess.setCharAt(r, K );//恢复原状} //没自己能直接赢得位置再看对方能赢的地方char whoTurn2=(whoTurn==O )?X : O//换成对方思考for(int r=0;r9;r)if(国际象棋。charat(r)== K ){ chess。setcharat(r,谁转2);//在空白处填上对方棋子if (isWin(whoTurn2)) { //看填上棋子后能赢否chess.setCharAt(r, K );//恢复原状return r;} else chess.setCharAt(r, K );//恢复原状} if (chess.charAt(4)==K) { //优先看中央位置返回4;//占据中央,返回4 } else { for(int d=1;D5;d ) { //随机找个空位置int rand=(int)(数学。random()* 9);if (chess.charAt(rand)==K )返回兰德;} } return-1;//特殊返回}公共void计算机take(){ int x=find place();//根据策略找位置chess.setCharAt(x,who turn);b[x].设置标签(字符串。(轮到谁)的值;游戏结束();whoTurn=(whoTurn==O )?x : O } public void game over(){ if(is win(who turn)){//判是否取胜joptionpane。showmessagedialog(null,whoTurn win!);系统。退出(0);} else if (isFull()) { //判是否下满格子joptionpane。showmessagedialog(null,游戏结束!);系统。退出(0);} } public boolean is win(char who){ String S3= who who who;字符串和;字符串sum1字符串sum2//用来拼接一个方向的棋子标识for(int k=0;k3;k){ sum 1= 国际象棋。查拉特国际象棋。查拉特(k 3)国际象棋。查拉特(K6);//垂直方向sum 2= 象棋。查拉特(k * 3 0)国际象棋。查拉特(k * 3 1)国际象棋。charat(k * 3 ^ 2);//水平方向if(sum 1。等于(S3) 总和2。等于(S3)){返回true} else { sum1=继续;} } sum= 象棋。charat(0)国际象棋。查拉特(4)国际象棋。charat(8);//正对角线if (sum.equals(s3))返回truesum= 象棋。查拉特(2)国际象棋。查拉特(4)国际象棋。charat(6);//反对角线if (sum.equals(s3))返回真实的返回false}public boolean isFull() { //判是否棋盘下满了返回chess.toString().( K )==-1的索引;}公共静态void main(String args[]){ Frame f=new Frame();f . add(new chesdemo());f.setSize(300,300);f .设置可见(真);}}结果如下:
这就是本文的全部内容。希望对大家的学习有所帮助,也希望大家能支持它的盛行。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。