java實現(xiàn)雙人五子棋游戲_第1頁
java實現(xiàn)雙人五子棋游戲_第2頁
java實現(xiàn)雙人五子棋游戲_第3頁
java實現(xiàn)雙人五子棋游戲_第4頁
java實現(xiàn)雙人五子棋游戲_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第java實現(xiàn)雙人五子棋游戲本文實例為大家分享了java實現(xiàn)雙人五子棋游戲的具體代碼,供大家參考,具體內(nèi)容如下

通過上下左右控制棋盤走動空格落子(深度優(yōu)先搜索)

packageday_1;

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

publicclassCircleRunextendsJFrame{

/**

*

*/

MyPanelmp=null;

publicstaticvoidmain(String[]args){

CircleRuncr=newCircleRun();

}

publicCircleRun(){

mp=newMyPanel();

this.add(mp);

this.addKeyListener(mp);

this.setTitle("雙人五子棋正式版3.0");

this.setSize(518,538);//設(shè)置窗體大小

this.setLocation(340,50);//設(shè)置出現(xiàn)的位置

this.setVisible(true);//設(shè)置為可見

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JOptionPane.showMessageDialog(this,"雙人五子棋游戲說明:通過←↑→↓控制旗子走向,空格下子先滿五個子勝利","游戲說明",JOptionPane.WARNING_MESSAGE);

}//游戲說明

classText2Frame{//設(shè)置一個交互框

JTextFieldjt1=newJTextField();//new一個文本框

JTextAreajt2=newJTextArea();//new一個文本區(qū)

JTextAreajt4=newJTextArea();//new一個文本區(qū)

Text2Frame(){

JScrollPanejsp=newJScrollPane(jt2);//new一個滾條

Stringtitle="正在思考。。。。";

JFramejf=newJFrame(title);

Containercontainer=jf.getContentPane();

//container.setBackground(Color.yellow);//容器的背景色

jf.setVisible(true);//窗體可見

jf.setLocation(150,50);

jf.setSize(300,150);//窗體大小

jf.setLayout(newBorderLayout());//邊界布局

jf.add(BorderLayout.NORTH,jt1);//文本框邊界頂部放置

jt1.setBackground(Color.yellow);

jf.add(BorderLayout.CENTER,jt2);//文本框邊界中間放置

jf.add(BorderLayout.EAST,jt4);//文本框邊界中間放置

jt2.setBackground(Color.red);

jt2.setFont(newFont("宋體",Font.PLAIN,30));

}

voidadd(Stringa){

jt2.setText(a);

}

classText3Frame{

JTextFieldjt1=newJTextField();//new一個文本框

JTextAreajt2=newJTextArea();//new一個文本區(qū)

JTextAreajt4=newJTextArea();//new一個文本區(qū)

Text3Frame(){

JScrollPanejsp=newJScrollPane(jt2);//new一個滾條

Stringtitle="當前坐標";

JFramejf=newJFrame(title);

Containercontainer=jf.getContentPane();

//container.setBackground(Color.yellow);//容器的背景色

jf.setVisible(true);//窗體可見

jf.setLocation(140,180);

jf.setSize(300,200);//窗體大小

jf.setLayout(newBorderLayout());//邊界布局

jf.add(BorderLayout.NORTH,jt1);//文本框邊界頂部放置

jt1.setBackground(Color.yellow);

jf.add(BorderLayout.CENTER,jt2);//文本框邊界中間放置

jf.add(BorderLayout.EAST,jt4);//文本框邊界中間放置

jt2.setBackground(Color.green);

jt2.setFont(newFont("宋體",Font.PLAIN,30));

}

voidadd(Stringa){

jt2.setText(a);

}

Stringshu(inta,intb){

return"當前坐標("+a+","+b+")";

}

//定義自己的面板

classMyPanelextendsJPanelimplementsKeyListener{

/**

*

*/

privatestaticfinallongserialVersionUID=4154597541232213984L;

Text2Frametxw=newText2Frame();

Text3Frametxw3=newText3Frame();

staticJFramesc=newJFrame();

staticintjishu=1;

staticintsummm=1;

staticintsummm2=1;

staticintarr[][]=newint[11][12];

intx=5;

inty=5;

intsum=0;

intsum2=0;

Noden1=newNode(x,y);

seqlistkai=newseqlist(n1);

seqlistseq=newseqlist(null);

seqlistseq2=newseqlist(null);

staticvoidsoushang(inta,intb){

if(a-11){

return;

}

if(arr[a-1][b]==1a-10){

summm++;

if(summm==5){

for(inti=0;ii++){

for(intk=0;kk++){

arr[i][k]=0;

}

}

System.out.println("勝利");

JOptionPane.showMessageDialog(sc,"紅色方勝利,點擊確定重新開始","結(jié)果",JOptionPane.WARNING_MESSAGE);

}

soushang(a-1,b);

}

}

staticvoidsouxia(inta,intb){

if(a+110){

return;

}

if(arr[a+1][b]==1a+1=10){

summm++;

if(summm==5){

for(inti=0;ii++){

for(intk=0;kk++){

arr[i][k]=0;

}

}

System.out.println("勝利");

JOptionPane.showMessageDialog(sc,"紅色方勝利,點擊確定重新開始","結(jié)果",JOptionPane.WARNING_MESSAGE);

}

souxia(a+1,b);

}

}

staticvoidsouzuo(inta,intb){

if(b-11){

return;

}

if(arr[a][b-1]==1b-1=1){

summm++;

if(summm==5){

for(inti=0;ii++){

for(intk=0;kk++){

arr[i][k]=0;

}

}

System.out.println("勝利");

JOptionPane.showMessageDialog(sc,"紅色方勝利,點擊確定重新開始","結(jié)果",JOptionPane.WARNING_MESSAGE);

}

souzuo(a,b-1);

}

}

staticvoidsouyou(inta,intb){

if(b+110){

return;

}

if(arr[a][b+1]==1b+1=10){

summm++;

if(summm==5){

for(inti=0;ii++){

for(intk=0;kk++){

arr[i][k]=0;

}

}

System.out.println("勝利");

JOptionPane.showMessageDialog(sc,"紅色方勝利,點擊確定重新開始","結(jié)果",JOptionPane.WARNING_MESSAGE);

}

souyou(a,b+1);

}

}

staticvoidsoushangzuo(inta,intb){

if(a-11||b-11){

return;

}

if(arr[a-1][b-1]==1(a-10)(b-1)0){

summm++;

if(summm==5){

for(inti=0;ii++){

for(intk=0;kk++){

arr[i][k]=0;

}

}

System.out.println("勝利");

JOptionPane.showMessageDialog(sc,"紅色方勝利,點擊確定重新開始","結(jié)果",JOptionPane.WARNING_MESSAGE);

}

soushangzuo(a-1,b-1);

}

}

staticvoidsouxiazuo(inta,intb){

if(a+110||b-11){

return;

}

if(arr[a+1][b-1]==1(a+1=10)(b-1)=1){

summm++;

if(summm==5){

for(inti=0;ii++){

for(intk=0;kk++){

arr[i][k]=0;

}

}

System.out.println("勝利");

JOptionPane.showMessageDialog(sc,"紅色方勝利,點擊確定重新開始","結(jié)果",JOptionPane.WARNING_MESSAGE);

}

souxiazuo(a+1,b-1);

}

}

staticvoidsouyoushang(inta,intb){

if(a-11b+110){

return;

}

if(arr[a-1][b+1]==1a-1=1b+1=10){

summm++;

if(summm==5){

for(inti=0;ii++){

for(intk=0;kk++){

arr[i][k]=0;

}

}

System.out.println("勝利");

JOptionPane.showMessageDialog(sc,"紅色方勝利,點擊確定重新開始","結(jié)果",JOptionPane.WARNING_MESSAGE);

}

souyoushang(a-1,b+1);

}

}

staticvoidsouyouxia(inta,intb){

if(b+110a+110){

return;

}

if(arr[a+1][b+1]==1b+1=10a+1=10){

summm++;

if(summm==5){

for(inti=0;ii++){

for(intk=0;kk++){

arr[i][k]=0;

}

}

System.out.println("勝利");

JOptionPane.showMessageDialog(sc,"紅色方勝利,點擊確定重新開始","結(jié)果",JOptionPane.WARNING_MESSAGE);

}

souyouxia(a+1,b+1);

}

}

staticvoidsoushang2(inta,intb){

if(a-11){

return;

}

if(arr[a-1][b]==2a-10){

summm2++;

if(summm2==5){

for(inti=0;ii++){

for(intk=0;kk++){

arr[i][k]=0;

}

}

System.out.println("勝利");

JOptionPane.showMessageDialog(sc,"綠色方勝利,點擊確定重新開始","結(jié)果",JOptionPane.WARNING_MESSAGE);

}

soushang2(a-1,b);

}

}

staticvoidsouxia2(inta,intb){

if(a+110){

return;

}

if(arr[a+1][b]==2a+1=10){

summm2++;

if(summm2==5){

for(inti=0;ii++){

for(intk=0;kk++){

arr[i][k]=0;

}

}

System.out.println("勝利");

JOptionPane.showMessageDialog(sc,"綠色方勝利,點擊確定重新開始","結(jié)果",JOptionPane.WARNING_MESSAGE);

}

souxia2(a+1,b);

}

}

staticvoidsouzuo2(inta,intb){

if(b-110){

return;

}

if(arr[a][b-1]==2b-1=1){

summm2++;

if(summm2==5){

for(inti=0;ii++){

for(intk=0;kk++){

arr[i][k]=0;

}

}

System.out.println("勝利");

JOptionPane.showMessageDialog(sc,"綠色方勝利,點擊確定重新開始","結(jié)果",JOptionPane.WARNING_MESSAGE);

}

souzuo2(a,b-1);

}

}

staticvoidsouyou2(inta,intb){

if(b+110){

return;

}

if(arr[a][b+1]==2b+1=10){

summm2++;

if(summm2==5){

for(inti=0;ii++){

for(intk=0;kk++){

arr[i][k]=0;

}

}

System.out.println("勝利");

JOptionPane.showMessageDialog(sc,"綠色方勝利,點擊確定重新開始","結(jié)果",JOptionPane.WARNING_MESSAGE);

}

souyou2(a,b+1);

}

}

staticvoidsoushangzuo2(inta,intb){

if(a-11||b-11){

return;

}

if(arr[a-1][b-1]==2(a-1=1)(b-1)=1){

summm2++;

if(summm2==5){

for(inti=0;ii++){

for(intk=0;kk++){

arr[i][k]=0;

}

}

System.out.println("勝利");

JOptionPane.showMessageDialog(sc,"綠色方勝利,點擊確定重新開始","結(jié)果",JOptionPane.WARNING_MESSAGE);

}

soushangzuo2(a-1,b-1);

}

}

staticvoidsouxiazuo2(inta,intb){

if(a+110||b-11){

return;

}

if(arr[a+1][b-1]==2(a+1=10)(b-1)=1){

summm2++;

if(summm2==5){

for(inti=0;ii++){

for(intk=0;kk++){

arr[i][k]=0;

}

}

System.out.println("勝利");

JOptionPane.showMessageDialog(sc,"綠色方勝利,點擊確定重新開始","結(jié)果",JOptionPane.WARNING_MESSAGE);

}

souxiazuo2(a+1,b-1);

}

}

staticvoidsouyoushang2(inta,intb){

if(a-11b+110){

return;

}

if(arr[a-1][b+1]==2a-1=1b+1=10){

summm2++;

if(summm2==5){

for(inti=0;ii++){

for(intk=0;kk++){

arr[i][k]=0;

}

}

System.out.println("勝利");

JOptionPane.showMessageDialog(sc,"綠色方勝利,點擊確定重新開始","結(jié)果",JOptionPane.WARNING_MESSAGE);

}

souyoushang2(a-1,b+1);

}

}

staticvoidsouyouxia2(inta,intb){

if(b+110a+110){

return;

}

if(arr[a+1][b+1]==2b+1=10a+1=10){

summm2++;

if(summm2==5){

for(inti=0;ii++){

for(intk=0;kk++){

arr[i][k]=0;

}

}

System.out.println("勝利");

JOptionPane.showMessageDialog(sc,"綠色方勝利,點擊確定重新開始","結(jié)果",JOptionPane.WARNING_MESSAGE);

}

souyouxia2(a+1,b+1);

}

}

publicvoidpaint(Graphicsg){

if(jishu%2==1){

Stringaaa="紅方開始下棋";

txw.add(aaa);

}else{

Stringaaa="綠方開始下棋";

txw.add(aaa);

}

txw3.add(txw3.shu(x,y));

super.paint(g);

for(inti=1;i=10;i++){

for(intk=1;k=10;k++){

g.fillOval((i-1)*50,(k-1)*50,50,50);

}

}

Colorc=g.getColor();

g.fillOval(x*50,y*50,50,50);

Nodenow=seq.head;

Nodetou=kai.head;

Coloru=g.getColor();

if(jishu%2==1){

g.setColor(Color.red);

g.fillOval((tou.a-1)*50,(tou.b-1)*50,50,50);

g.setColor(u);

}else{

g.setColor(Color.green);

g.fillOval((tou.a-1)*50,(tou.b-1)*50,50,50);

g.setColor(u);

}

while(now!=null){

System.out.print("("+now.a+""+now.b+")");

Colorr=g.getColor();

g.setColor(Color.red);

g.fillOval((now.a-1)*50,(now.b-1)*50,50,50);

g.setColor(r);

now=now.next;

}

Nodenow2=seq2.head;

while(now2!=null){

System.out.print("("+now2.a+""+now2.b+")");

Colorr=g.getColor();

g.setColor(Color.green);

g.fillOval((now2.a-1)*50,(now2.b-1)*50,50,50);

g.setColor(r);

now2=now2.next;

}

System.out.println();

}

//鍵的一個值被輸出

@Override

publicvoidkeyTyped(KeyEvente){

}

//鍵被按下

@Override

publicvoidkeyPressed(KeyEvente){

System.out.print("線性表為");

System.out.println();

//System.out.println("鍵被按下"+e.getKeyCode());

if(e.getKeyCode()==KeyEvent.VK_DOWN){

//System.out.println("12");

y=y+1;

if(y=11){

y=y%11+1;

}

}elseif(e.getKeyCode()==KeyEvent.VK_UP){

y=y-1;

if(y1){

y=y+10;

}

}elseif(e.getKeyCode()==KeyEvent.VK_LEFT){

x=x-1;

if(x1){

x=x+10;

}

}elseif(e.getKeyCode()==KeyEvent.VK_RIGHT){

x=x+1;

if(x=11){

x=x%11+1;

}

}elseif(e.getKeyCode()==KeyEvent.VK_SPACE){

intluo1=x;

intluo2=y;

Noden2=newNode(luo1,luo2);

if(jishu%2!=0){

Nodenow3=seq2.head;

Nodenow2=seq.head;

intaaa=1;

if(arr[x][y]==1||arr[x][y]==2){

JOptionPane.showMessageDialog(sc,"此處已有棋子,請下別處","錯誤",JOptionPane.WARNING_MESSAGE);

aaa=2;

}

if(aaa==1){

jishu++;

seq.add(n2);

arr[luo1][luo2]=1;

seq.tostring();

System.out.println("摁下空格");

soushang(x,y);

System.out.println("sum1"+"

"+summm);

if(summm==5){

seq.head=null;

seq2.head=null;

}

souxia(x,y);

System.out.println("sum2"+"

"+summm);

if(summm==5){

seq.head=null;

seq2.head=null;

}

summm=1;

souzuo(x,y);

System.out.println("sum3"+"

"+summm);

if(summm==5){

seq.head=null;

seq2.head=null;

}

souyou(x,y);

System.out.println("sum4"+"

"+summm);

if(summm==5){

seq.head=null;

seq2.head=null;

}

summm=1;

soushangzuo(x,y);

System.out.println("sum5"+"

"+summm);

if(summm==5){

seq.head=null;

seq2.head=null;

}

souyouxia(x,y);

System.out.println("sum6"+"

"+summm);

if(summm==5){

seq.head=null;

seq2.head=null;

}

summm=1;

souyoushang(x,y);

System.out.println("sum7"+"

"+summm);

if(summm==5){

seq.head=null;

seq2.head=null;

}

souxiazuo(x,y);

if(summm==5){

seq.head=null;

seq2.head=null;

}

summm=1;

}

}else{

intaaa=1;

if(arr[x][y]==1||arr[x][y]==2){

JOptionPane.showMessageDialog(sc,"此處已有棋子,請下別處","錯誤",JOptionPane.WARNING_MESSAGE);

aaa=2;

}

if(aaa==1){

jishu++;

seq2.add(n2);

arr[luo1][luo2]=2;

seq2.tostring();

System.out.println("摁下空格");

soushang2(x,y);

System.out.println("sum1"+"

"+summm);

if(summm2==5){

seq.head=null;

seq2.head=null;

}

souxia2(x,y);

System.out.println("sum2"+"

"+summm);

if(summm2==5){

seq.head=null;

seq2.head=null;

}

summm2=1;

souzuo2(x,y);

System.out.println("sum3"+"

"+summm);

if(summm2==5){

seq.head=null;

seq2.head=null;

}

souyou2(x,y);

System.out.println("sum4"+"

"+summm);

if(summm2==5){

seq.head=null;

seq2.head=null;

}

summm2=1;

soushangzuo2(x,y);

System.out.println("sum5"+"

"+summm);

if(summm2==5){

seq.head=null;

seq2.head=null;

}

souyouxia2(x,y);

System.out.println("sum6"+"

"+summm);

if(summm2==5){

seq.head=null;

seq2.head=null;

}

summm2=1;

souyoushang2(x,y);

System.out.println("sum7"+"

"+summm);

if(summm2==5){

seq.head=null;

seq2.head=null;

}

souxiazuo2(x,y);

if(summm2==5){

seq.head=null;

seq2.head=null;

}

summm2=1;

}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論