首页 五虎棋软件源代码

五虎棋软件源代码

举报
开通vip

五虎棋软件源代码 五 虎 棋 源 代 码 //主程序代码及解析 import javax.microedition.lcdui.Choice; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable;...

五虎棋软件源代码
五 虎 棋 源 代 码 //主程序代码及解析 import javax.microedition.lcdui.Choice; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.Image; import javax.microedition.lcdui.List; import javax.microedition.lcdui.Ticker; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; public class Gameplay extends MIDlet implements CommandListener { public int red1=255,green1=0,blue1=255; public int red2=0,green2=255,blue2=54; public AudioPlay player; public byte I=0;// 此变量有来判断背景图片的选择 public Image img; //背景图片 private Form form; private Ticker ticker; //滚动字幕 private Command fexit,fok;//第一个屏幕的退出和确定按钮 private Command sok;//第二个屏幕,主菜单的选择按钮 private Command tok,tback;//第三个屏幕,音乐,图片的按钮 private Command kaiqi,kback;//选择音乐时的开启按钮和一个返回第三个屏幕的按钮 private Command ook;//选择图片背景后跳转到sList private Command wok;//声音开关的按钮 private List fList,sList,tList,oList,wList; private text shoum;//游戏说明的文档 public Gameplay() { try{ img=Image.createImage("/11.png"); }catch(java.io.IOException e){} //设置默认的播放声音 player=new AudioPlay("yin0.mid","audio/midi"); player.loadResource();player.setLoop();player.play(); shoum=new text(this); form=new Form(null); ticker=new Ticker("第五届齐鲁软件大赛参赛作品--80后"); form.setTicker(ticker); form.append(img); fok=new Command("进入",Command.OK,1); fexit=new Command("退出",Command.EXIT,1); sok=new Command("选择",Command.OK,1); tok=new Command("确定",Command.OK,2); tback=new Command("返回",Command.BACK,2); kaiqi=new Command("开启",Command.OK,3); kback=new Command("返回",Command.BACK,3); ook=new Command("确定",Command.OK,4); wok=new Command("确定",Command.OK,5); form.addCommand(fok); form.addCommand(fexit); form.setCommandListener(this); String[]string1 = { "开始游戏", "游戏设置", "游戏说明", "声音控制" }; Image[]image1 = null; try{ Image icon = Image.createImage("/icon.png"); image1 = new Image[]{ icon, icon, icon, icon }; }catch (java.io.IOException err) {} fList = new List(" 五虎棋", Choice.IMPLICIT, string1, image1); fList.addCommand(sok); //为主菜单添加选择按钮 fList.setCommandListener(this); String[] string2={"背景音乐","背景图片"}; Image[]image4 = null; try{ Image icon = Image.createImage("/53.png"); Image icon1 = Image.createImage("/54.png"); image4 = new Image[]{ icon, icon1, }; }catch (java.io.IOException err) {} sList = new List(" 五虎棋", Choice.IMPLICIT, string2, image4); sList.addCommand(tok); sList.addCommand(tback); sList.setCommandListener(this); String[] string3={" 梁祝"," 钢琴曲"," 山明水秀"," 马兰花开"}; Image[]image2 = null; try{ Image icon = Image.createImage("/51.png"); image2 = new Image[]{ icon, icon, icon, icon }; }catch (java.io.IOException err) {} tList=new List(" 五虎棋", Choice.IMPLICIT, string3, image2); tList.addCommand(kaiqi); tList.addCommand(kback); tList.setCommandListener(this); String[] string4={" 复古蓝"," 紫色"," 深蓝"," 淡绿色"}; Image[]image3 = null; try{ Image icon = Image.createImage("/52.png"); image3 = new Image[]{ icon, icon, icon, icon }; }catch (java.io.IOException err) {} oList=new List(" 五虎棋", Choice.EXCLUSIVE, string4, image3); oList.addCommand(ook); oList.addCommand(kback); oList.setCommandListener(this); String[] string5={"声音开","声音关"}; wList=new List(" 五虎棋", Choice.EXCLUSIVE, string5, null); wList.addCommand(wok); wList.addCommand(tback); wList.setCommandListener(this); } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { Display.getDisplay(this).setCurrent(form); } protected void showfList(){ //此方法用来显示主菜单 Display.getDisplay(this).setCurrent(fList); } public void commandAction(Command c, Displayable d) { if(c==fexit){ try { destroyApp(false); }catch (MIDletStateChangeException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } notifyDestroyed(); } if(c==fok){ // 单击屏幕菜单按钮进入主菜单 Display.getDisplay(this).setCurrent(fList); } if(c==sok){ //单击主菜单的选择按钮 switch (((List)d).getSelectedIndex()) { case 0:Display.getDisplay(this).setCurrent(new GobangCanvas(this));break; case 1:Display.getDisplay(this).setCurrent(sList);break; case 2:Display.getDisplay(this).setCurrent(shoum);break; case 3:Display.getDisplay(this).setCurrent(wList);break; } } if(c==tok){//单击音乐和图片的屏幕 的按钮 switch (((List)d).getSelectedIndex()) { case 0:Display.getDisplay(this).setCurrent(tList);break;//显示音乐菜单 case 1:Display.getDisplay(this).setCurrent(oList);break;//显示图片菜单 } } if(c==tback){ Display.getDisplay(this).setCurrent(fList);//单击返回到主菜单 } if(c==kaiqi){//添加声音的开启关闭程序 switch (((List)d).getSelectedIndex()) { case 0: player.close(); player=new AudioPlay("yin0.mid","audio/midi"); player.loadResource();player.setLoop();player.play(); break; case 1:player.close(); player=new AudioPlay("yin1.mid","audio/midi"); player.loadResource();player.setLoop();player.play(); break; case 2:player.close(); player=new AudioPlay("yin2.mid","audio/midi"); player.loadResource();player.setLoop();player.play(); break; case 3:player.close(); player=new AudioPlay("yin3.mid","audio/midi"); player.loadResource();player.setLoop();player.play(); break; } } if(c==kback){ //声音中的返回按钮 Display.getDisplay(this).setCurrent(sList); } if(c==ook){ //图片中的确定按钮 switch (((List)d).getSelectedIndex()) { case 0:I=0;red1=255;green1=0;blue1=255;red2=0;green2=255;blue2=54;Display.getDisplay(this).setCurrent(sList);break; case 1:I=1;red1=236;green1=0;blue1=100;red2=0;green2=255;blue2=54;Display.getDisplay(this).setCurrent(sList);break; case 2:I=2;red1=236;green1=0;blue1=100;red2=0;green2=255;blue2=54;Display.getDisplay(this).setCurrent(sList);break; case 3:I=3;red1=237;green1=0;blue1=20;red2=20;green2=46;blue2=237;Display.getDisplay(this).setCurrent(sList);break; } } if(c==wok){//声音开关的程序 switch (((List)d).getSelectedIndex()) { case 0:player=new AudioPlay("yin0.mid","audio/midi"); player.loadResource();player.setLoop();player.play(); break; case 1:player.close();break; } } } } //棋子类 public class Chesses { boolean isPlayer1; public Chesses() { } public Chesses(boolean isPlayer1) { this.isPlayer1=isPlayer1; } } //游戏开始类 import java.util.Random; import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.AlertType; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Image; public class GobangCanvas extends Canvas implements CommandListener,Runnable{ AudioPlay player,player2; private Image img1=null,img2,img3,img4,img5;//背景图片,输赢图片 private Image imgb0,imgb1,imgb2,imgb3; private byte img;// 此变量用来决定显示输赢 private int moveX,moveY,move;//用来确定移动棋子的坐标以及用来确定移动的条件 private int show,kk=0; //值为0 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示没有构成吃条件,值为1表示人,值为2表示电脑,kk表示一种特殊情况下的执行 private byte[][] qz; //来存储人下值为:1 电脑下值为:2 下棋过程中被记录的值为:3 被吃掉的位置值为:0 private byte[][] cha; private byte fzhi=1; //将数组qz进行赋值的一个自变量 private byte game=0,comgame=0; //此变量用来决定是执行gameplay;movechess;eatchess; private static final byte comgameplay=0;//电脑游戏的初始状态 private static final byte commovechess=1;//电脑游戏中移动棋子时条件变量 private static final byte comeatchess=2; //电脑游戏中吃棋子时的条件变量 private static final byte comsetchess=3; //电脑如果没有下满棋盘,构成吃棋条件 private static final byte comTest=4; private static final byte gameplay=0;//人游戏的初始状态 private static final byte movechess=1;//人游戏中移动棋子时条件变量 private static final byte eatchess=2; //人游戏中吃棋子时的条件变量 private static final byte setchess=3; //人如果没有下满棋盘,构成吃棋条件 private static int setx=-1,sety=-1,first=1;//first表示第一步怎么走棋, protected Gameplay gg; //传给电脑的参数。因为manqi()方法是不能用在电脑的判断上的 protected int empty;//游戏界面到屏幕边缘的留空 //当满棋以后首先clear(),这时棋盘上照样有空位值 protected int canvasW,canvasH;//画布的长和宽 protected int chessLength;//棋子的直径 protected int chessMapLength,chessMapGrid,chessGridLength; //棋盘的边长,棋盘一边格子数,每格宽度 protected int chessMapX,chessMapY;//棋盘左上角x,y坐标 protected int selectedX,selectedY;//选择框在棋盘格局上的x,y位置 protected boolean isPlayer1,a;//是否是玩家1 protected Chesses[][] chesses;//棋子数组 protected boolean newGame;//是否是新的游戏 protected Command exitCmd; protected Command restartCmd; protected Command computer; protected Command man; public GobangCanvas(){ } public GobangCanvas(Gameplay gg){a=true; this.gg=gg; player=new AudioPlay("t1.mid","audio/midi"); player2=new AudioPlay("一生离不开的是你.mid","audio/midi"); try{ imgb0=Image.createImage("/000.png");// 背景000 imgb1=Image.createImage("/111.png");// 背景111 imgb2=Image.createImage("/222.png");//背景222 imgb3=Image.createImage("/333.png");//背景333 img2=Image.createImage("/2.png");//输 img3=Image.createImage("/3.png");//赢 img4 = Image.createImage("/4.png"); //黑棋子 img5 = Image.createImage("/5.png"); //白旗子 }catch(java.io.IOException e){System.out.println("图片有问题"); } exitCmd = new Command("返回", Command.EXIT, 0); computer=new Command("后手",Command.OK,0); man=new Command("先手",Command.OK,0); addCommand(exitCmd); addCommand(computer); addCommand(man); setCommandListener(this); qz=new byte[5][5]; cha=new byte[5][5]; newGame=true; empty=22; canvasW=getWidth()-empty;canvasH=getHeight()-empty; chessMapGrid=4; chesses=new Chesses[chessMapGrid+1][chessMapGrid+1]; if(canvasW>canvasH){ chessMapLength=canvasH-canvasH%chessMapGrid; chessMapX=(canvasW-chessMapLength)/2+empty/2; chessMapY=(canvasH%chessMapGrid)/2+empty/2; } else{ chessMapLength=canvasW-canvasW%chessMapGrid; chessMapX=(canvasW%chessMapGrid)/2+empty/2; chessMapY=(canvasH-chessMapLength)/2+empty/2; } chessGridLength=chessMapLength/chessMapGrid; chessLength=chessGridLength-1; selectedX=selectedY=chessMapGrid/2; isPlayer1=true;a=true; } private void init(){ if(newGame){ kk=0; chesses=new Chesses[chessMapGrid+1][chessMapGrid+1]; isPlayer1=true; selectedX=selectedY=chessMapGrid/2; a=true;show=0;first=0;img=0; game=gameplay;comgame=gameplay; move=0; qz=new byte[5][5];cha=new byte[5][5]; player=new AudioPlay("t1.mid","audio/midi"); player2.close(); player2=new AudioPlay("一生离不开的是你.mid","audio/midi"); } } protected void paint(Graphics g) { if(gg.I==0)g.drawImage(imgb0, 0,0, Graphics.TOP|Graphics.LEFT); if(gg.I==1)g.drawImage(imgb1, 0,0, Graphics.TOP|Graphics.LEFT); if(gg.I==2)g.drawImage(imgb2, 0,0, Graphics.TOP|Graphics.LEFT); if(gg.I==3)g.drawImage(imgb3, 0,0, Graphics.TOP|Graphics.LEFT); paintMap(g); paintSelected(g); paintChesses(g); if(show!=0) paintShow(g); if(img==2){g.drawImage(img2,chessGridLength+5,chessGridLength+5,Graphics.TOP|Graphics.LEFT );} if(img==3){g.drawImage(img3,3*chessGridLength/2-2,chessGridLength+5,Graphics.TOP|Graphics.LEFT );} } protected void paintMap(Graphics g){ //画棋盘 for(int i=0;i=0&&qz[i-1][j]==1){qz[i-1][j]=0;if(!eatT(i,j,1)) {qz[i][j]=0;qz[i-1][j]=3;cha[i-1][j]=1;comgame=comgameplay;a=!a;repaint();i=j=z=6;break;}else qz[i-1][j]=1;} if(j+1<0&&qz[i][j+1]==1){qz[i][j+1]=0;if(!eatT(i,j,1)) {qz[i][j]=0;qz[i][j+1]=3;cha[i][j+1]=1;comgame=comgameplay;a=!a;repaint();i=j=z=6;break;}else qz[i][j+1]=1;} if(j-1>=0&&qz[i][j-1]==1){qz[i][j-1]=0;if(!eatT(i,j,1)) {qz[i][j]=0;qz[i][j-1]=3;cha[i][j-1]=1;comgame=comgameplay;a=!a;repaint();i=j=z=6;break;}else qz[i][j-1]=1;} qz[i][j]=0; } else qz[i][j]=0; } } // if(z!=6) for(i=0;i<5;i++) //第二种注释棋子的方法:构成自己可能成立的棋子 // for(j=0;j<5;j++) // if(qz[i][j]==1){ // qz[i][j]=2; // if(eatT(i,j,2)){ // if(i+1<5&&qz[i+1][j]==2) {qz[i+1][j]=0;if(eatT(i,j,2)){qz[i][j]=3;cha[i][j]=1;comgame=comgameplay;a=!a;repaint();i=j=z=6;break;}else qz[i+1][j]=2;} // if(i-1>=0&&qz[i-1][j]==2) {qz[i-1][j]=0;if(eatT(i,j,2)){qz[i][j]=3;cha[i][j]=1;comgame=comgameplay;a=!a;repaint();i=j=z=6;break;}else qz[i+1][j]=2;} // if(j-1>=0&&qz[i][j-1]==2) {qz[i][j-1]=0;if(eatT(i,j,2)){qz[i][j]=3;cha[i][j]=1;comgame=comgameplay;a=!a;repaint();i=j=z=6;break;}else qz[i+1][j]=2;} // if(j+1<5&&qz[i][j+1]==2){ qz[i][j+1]=0;if(eatT(i,j,2)){qz[i][j]=3;cha[i][j]=1;comgame=comgameplay;a=!a;repaint();i=j=z=6;break;}else qz[i+1][j]=2;} // qz[i][j]=1; // } // else qz[i][j]=1; // } if(z!=6){ //第3种注释棋子的方法,抢占最优点 if(qz[2][0]==1){qz[2][0]=3;z=6;cha[2][0]=1;comgame=comgameplay;a=!a;repaint();} else if(qz[0][2]==1){qz[0][2]=3;cha[0][2]=1;z=6;comgame=comgameplay;a=!a;repaint();} else if(qz[2][4]==1){qz[2][4]=3;z=6;cha[2][4]=1;comgame=comgameplay;a=!a;repaint();} else if(qz[4][2]==1){qz[4][2]=3;z=6;cha[4][2]=1;comgame=comgameplay;a=!a;repaint();} else if(qz[1][1]==1){qz[1][1]=3;cha[1][1]=1;z=6;comgame=comgameplay;a=!a;repaint();} else if(qz[3][1]==1){qz[3][1]=3;cha[3][1]=1;z=6;comgame=comgameplay;a=!a;repaint();} else if(qz[3][3]==1){qz[3][3]=3;cha[3][3]=1;z=6;comgame=comgameplay;a=!a;repaint();} else if(qz[1][3]==1){qz[1][3]=3;cha[1][3]=1;z=6;comgame=comgameplay;a=!a;repaint();} else if(qz[2][2]==1){qz[2][2]=3;cha[2][2]=1;z=6;comgame=comgameplay;a=!a;repaint();} else if(qz[1][2]==1){qz[1][2]=3;cha[1][2]=1;z=6;comgame=comgameplay;a=!a;repaint();} else if(qz[3][2]==1){qz[3][2]=3;cha[3][2]=1;z=6;comgame=comgameplay;a=!a;repaint();} } if(z!=6){Random random = new Random();//第4种注释棋子的方法,随机 while(true){int x, y; x =(Math.abs(random.nextInt() % 5)); y =(Math.abs(random.nextInt() % 5)); if(qz[x][y]==1){qz[x][y]=3;cha[x][y]=1;a=!a;repaint(); comgame=comgameplay; break;} //添加算法 } } } public void comeatchess(){ // 电脑吃棋子的方法 int z=0,i,j; for( i=0;i<5;i++) //第一种吃棋子方法:人移动可能构成吃子 for( j=0;j<5;j++){ if(qz[i][j]==0){ qz[i][j]=1; if(eatT(i,j,1)) { if(i+1<5&&qz[i+1][j]==1){qz[i+1][j]=0;if(eatT(i,j,1)) {qz[i][j]=0;chesses[i+1][j]=null;comgame=commovechess;a=!a;repaint();i=j=z=6;show=0;break;}else qz[i+1][j]=1;} if(i-1>=0&&qz[i-1][j]==1){qz[i-1][j]=0;if(eatT(i,j,1)) {qz[i][j]=0;chesses[i-1][j]=null;comgame=commovechess;a=!a;repaint();i=j=z=6;show=0;break;}else qz[i-1][j]=1;} if(j+1<5&&qz[i][j+1]==1){qz[i][j+1]=0;if(eatT(i,j,1)) {qz[i][j]=0;chesses[i][j+1]=null;comgame=commovechess;a=!a;repaint();i=j=z=6;show=0;break;}else qz[i][j+1]=1;} if(j-1>=0&&qz[i][j-1]==1){qz[i][j-1]=0;if(eatT(i,j,1)) {qz[i][j]=0;chesses[i][j-1]=null;comgame=commovechess;a=!a;repaint();i=j=z=6;show=0;break;}else qz[i][j-1]=1;} qz[i][j]=0; } else qz[i][j]=0; } } if(z!=6){ //第2种吃棋子的方法,抢占最优点 if(qz[2][0]==1){chesses[2][0]=null;qz[2][0]=0;z=6;comgame=commovechess;show=0;a=!a;repaint();} else if(qz[0][2]==1){chesses[0][2]=null;qz[0][2]=0;z=6;comgame=commovechess;show=0;a=!a;repaint();} else if(qz[2][4]==1){chesses[2][4]=null;qz[2][4]=0;z=6;comgame=commovechess;show=0;a=!a;repaint();} else if(qz[4][2]==1){chesses[4][2]=null;qz[4][2]=0;z=6;comgame=commovechess;show=0;a=!a;repaint();} else if(qz[1][1]==1){chesses[1][1]=null;qz[1][1]=0;z=6;comgame=commovechess;show=0;a=!a;repaint();} else if(qz[3][1]==1){chesses[3][1]=null;qz[3][1]=0;z=6;comgame=commovechess;show=0;a=!a;repaint();} else if(qz[3][3]==1){chesses[3][3]=null;qz[3][3]=0;z=6;comgame=commovechess;show=0;a=!a;repaint();} else if(qz[1][3]==1){chesses[1][3]=null;qz[1][3]=0;z=6;comgame=commovechess;show=0;a=!a;repaint();} else if(qz[2][2]==1){chesses[2][2]=null;qz[2][2]=0;z=6;comgame=commovechess;show=0;a=!a;repaint();} else if(qz[1][2]==1){chesses[1][2]=null;qz[1][2]=0;z=6;comgame=commovechess;show=0;a=!a;repaint();} else if(qz[3][2]==1){chesses[3][2]=null;qz[3][2]=0;z=6;comgame=commovechess;show=0;a=!a;repaint();} } if(z!=6){Random random = new Random();//第3种吃棋子的方法,随机 while(true){int x, y; x =(Math.abs(random.nextInt() % 5)); y =(Math.abs(random.nextInt() % 5)); if(qz[x][y]==1){chesses[x][y]=null;qz[x][y]=0;a=!a;show=0;repaint(); comgame=commovechess; break;} //添加算法 } } } public void commovechess(){ //电脑移动棋子的方法 int z=0; for(int i=0;i<5;i++) //移动棋子的第一种方法,主动进攻 for(int j=0;j<5;j++){ if(qz[i][j]==0){ qz[i][j]=2; if(eatT(i,j,2)) { if(i+1<5&&qz[i+1][j]==2){qz[i+1][j]=0;if(eatT(i,j,2)) {chesses[i+1][j]=null;chesses[i][j]=new Chesses(this.isPlayer1);qz[i][j]=2;setx=i;sety=j;repaint();i=j=z=6;break;}else qz[i+1][j]=2;} if(i-1>=0&&qz[i-1][j]==2){qz[i-1][j]=0;if(eatT(i,j,2)) {chesses[i-1][j]=null;chesses[i][j]=new Chesses(this.isPlayer1);qz[i][j]=2;setx=i;sety=j;repaint();i=j=z=6;break;}else qz[i-1][j]=2;} if(j+1<5&&qz[i][j+1]==2){qz[i][j+1]=0;if(eatT(i,j,2)) {chesses[i][j+1]=null;chesses[i][j]=new Chesses(this.isPlayer1);qz[i][j]=2;setx=i;sety=j;repaint();i=j=z=6;break;}else qz[i][j+1]=2;} if(j-1>=0&&qz[i][j-1]==2){qz[i][j-1]=0;if(eatT(i,j,2)) {chesses[i][j-1]=null;chesses[i][j]=new Chesses(this.isPlayer1);qz[i][j]=2;setx=i;sety=j;repaint();i=j=z=6;break;}else qz[i][j-1]=2;} qz[i][j]=0; } else qz[i][j]=0; } } if(z!=6) for(int i=0;i<5;i++) //移动棋子的第2种方法:阻止人构成吃子 for(int j=0;j<5;j++){ if(qz[i][j]==0){ qz[i][j]=1; if(eatT(i,j,1)){ if(i+1<5&&qz[i+1][j]==2){chesses[i+1][j]=null;qz[i+1][j]=0;chesses[i][j]=new Chesses(this.isPlayer1);qz[i][j]=2;setx=i;sety=j;repaint();i=j=z=6;break;} if(i-1>=0&&qz[i-1][j]==2){chesses[i-1][j]=null;qz[i-1][j]=0;chesses[i][j]=new Chesses(this.isPlayer1);qz[i][j]=2;setx=i;sety=j;repaint();i=j=z=6;break;} if(j-1>=0&&qz[i][j-1]==2){chesses[i][j-1]=null;qz[i][j-1]=0;chesses[i][j]=new Chesses(this.isPlayer1);qz[i][j]=2;setx=i;sety=j;repaint();i=j=z=6;break;} if(j+1<5&&qz[i][j+1]==2){chesses[i][j+1]=null;qz[i][j+1]=0;chesses[i][j]=new Chesses(this.isPlayer1);qz[i][j]=2;setx=i;sety=j;repaint();i=j=z=6;break;} qz[i][j]=0; } else qz[i][j]=0; } } if(z!=6)for(int i=0;i<5;i++) //移动棋子的第3种方法,循环使用一种成立条件 for(int j=0;j<5;j++){ if(qz[i][j]==2&&eatT(i,j,2)){ if(i+1<5&&qz[i+1][j]==0){qz[i][j]=0;chesses[i][j]=null;chesses[i+1][j]=new Chesses(this.isPlayer1);qz[i+1][j]=2;setx=i+1;sety=j;repaint();i=j=z=6;break;} if(i-1>=0&&qz[i-1][j]==0){qz[i][j]=0;chesses[i][j]=null;chesses[i-1][j]=new Chesses(this.isPlayer1);qz[i-1][j]=2;setx=i-1;sety=j;repaint();i=j=z=6;break;} if(j+1<5&&qz[i][j+1]==0){qz[i][j]=0;chesses[i][j]=null;chesses[i][j+1]=new Chesses(this.isPlayer1);qz[i][j+1]=2;setx=i;sety=j+1;repaint();i=j=z=6;break;} if(j-1>=0&&qz[i][j-1]==0){qz[i][j]=0;chesses[i][j]=null;chesses[i][j-1]=new Chesses(this.isPlayer1);qz[i][j-1]=2;setx=i;sety=j-1;repaint();i=j=z=6;break;} } } if(z!=6){Random random = new Random();//第4种移动棋子的方法,随机 while(true){int x, y; x =(Math.abs(random.nextInt() % 5)); y =(Math.abs(random.nextInt() % 5)); if(qz[x][y]==2){if(x+1<5&&qz[x+1][y]==0) {chesses[x][y]=null;qz[x][y]=0;chesses[x+1][y]=new Chesses(this.isPlayer1);setx=x+1;sety=y;qz[x+1][y]=2;break;}} //添加算法 if(qz[x][y]==2){if(x-1>=0&&qz[x-1][y]==0) {chesses[x][y]=null;qz[x][y]=0;chesses[x-1][y]=new Chesses(this.isPlayer1);setx=x-1;sety=y;qz[x-1][y]=2;break;}} //添加算法 if(qz[x][y]==2){if(y+1<5&&qz[x][y+1]==0) {chesses[x][y]=null;qz[x][y]=0;chesses[x][y+1]=new Chesses(this.isPlayer1);setx=x;sety=y+1;qz[x][y+1]=2;break;}} //添加算法 if(qz[x][y]==2){if(y-1>=0&&qz[x][y-1]==0) {chesses[x][y]=null;qz[x][y]=0;chesses[x][y-1]=new Chesses(this.isPlayer1);setx=x;sety=y-1;qz[x][y-1]=2;break;}} //添加算法 } } } public boolean setN(){ //这个 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 :棋盘下满,但下棋中没有任何一方吃子 for(int i=0;i<5;i++) for(int j=0;j<5;j++) if(qz[i][j]==3) return false; return true; } public boolean manqi(){ //人判断棋子下满的成立条件 for(int i=0;i<=chessMapGrid;i++) { for(int j=0;j<=chessMapGrid;j++) { if(chesses[i][j]==null) return false; } } return true; } public boolean win(int w){ //该方法用来判断最后输赢 int p=0,i=0,j=0; for( i=0;i<5;i++) //此条件判断对方是否有两个棋子就算输 for( j=0;j<5;j++) if(qz[i][j]==w) p++; if(p<3) return true; return false; } public boolean teshu(int w){ // 此条件判断如果对方棋子不能动为真,所要执行的方法条件 int i,j; for( i=0;i<5;i++) for( j=0;j<5;j++) if(qz[i][j]==w){ if(i+1<5&&qz[i+1][j]==0) return false; if(i-1>=0&&qz[i-1][j]==0) return false; if(j+1<5&&qz[i][j+1]==0) return false; if(j-1>=0&&qz[i][j-1]==0) return false; } if(i==5) return true; return false; } public void movechesses(){ //移动棋子的方法 if(chesses[selectedX][selectedY]==null){ //移动条件成立 chesses[moveX][moveY]=null; qz[moveX][moveY]=0;//将人下还是电脑的,清空 chesses[selectedX][selectedY]=new Chesses(this.isPlayer1);//移动后的棋子位置 qz[selectedX][selectedY]=1;a=!a;move=0; if(eatT(selectedX,selectedY,1)){game=eatchess;move=0;a=!a;show=1;player.loadResource();player.play();} repaint();//移动一次,电脑移动,如果构成了吃的条件则还是该人动 }else move=0; } public void clear(){ // 清除棋盘上记录的棋子方法 for(int i=0;i
本文档为【五虎棋软件源代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_081341
暂无简介~
格式:doc
大小:202KB
软件:Word
页数:36
分类:生活休闲
上传时间:2018-09-09
浏览量:65