您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“java如何實(shí)現(xiàn)簡單三子棋游戲”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“java如何實(shí)現(xiàn)簡單三子棋游戲”吧!
JOptionPane類的使用
編寫程序,實(shí)現(xiàn)簡單的三子棋游戲。在三子棋中,雙方在3×3的棋盤中輪流下棋,一方用*示,另一方用O表示。如果一方的3個(gè)棋子占據(jù)了同一行,同一列或者對(duì)角線,則該方獲勝。如果棋盤已被棋子占滿,但沒有一方獲勝則出現(xiàn)平局。在程序中,一方為用戶,用戶在界面上輸入每次下棋的位置;另一方下棋的位置為隨機(jī)自動(dòng)生成。示例界面如圖所示。
提示:(1) 采用Scanner類或者JOptionPane類中提供的方法輸入,輸出采用System.out中的方法或JOptionPane類提供的方法。 (2) 字符串處理可以使用String或StringBuffer類。
實(shí)現(xiàn)代碼:
import java.util.Random; import javax.swing.*; public class Main { public static boolean check(StringBuffer st,int pos){ //檢查pos上的棋子有沒有獲勝 char des=st.charAt(pos); char []s=new char[10]; for(int i=1;i<=9;i++) s[i]=st.charAt(i); if((s[3]==des&&s[6]==des&&s[9]==des)|| (s[1]==des&&s[4]==des&&s[7]==des)|| (s[2]==des&&s[5]==des&&s[8]==des)|| (s[1]==des&&s[3]==des&&s[2]==des)|| (s[6]==des&&s[4]==des&&s[5]==des)|| (s[9]==des&&s[7]==des&&s[8]==des)|| (s[1]==des&&s[5]==des&&s[9]==des)|| (s[3]==des&&s[5]==des&&s[7]==des)) return true; return false; } public static void main(String[] args) { StringBuffer s= new StringBuffer("0123456789"); String tp; for(int i=0;i<=5;){ int k=-1; tp=JOptionPane.showInputDialog("---------------------------\n| "+s.charAt(1)+" | "+s.charAt(2)+" | "+s.charAt(3)+" |\n---------------------------\n| "+s.charAt(4)+" | "+s.charAt(5)+" | "+s.charAt(6)+" |\n---------------------------\n| "+s.charAt(7)+" | "+s.charAt(8)+" | "+s.charAt(9)+" |\n---------------------------\n"+"請(qǐng)輸入落子位置(1~9):"); boolean f=true; if(tp.length()==1){ k=tp.charAt(0)-'0'; if(k>=1&&k<=9){ if(s.charAt(k)>='1'&&s.charAt(k)<='9'){ i++; //有效下棋 f=false; } } } while(f){ tp=JOptionPane.showInputDialog("---------------------------\n| "+s.charAt(1)+" | "+s.charAt(2)+" | "+s.charAt(3)+" |\n---------------------------\n| "+s.charAt(4)+" | "+s.charAt(5)+" | "+s.charAt(6)+" |\n---------------------------\n| "+s.charAt(7)+" | "+s.charAt(8)+" | "+s.charAt(9)+" |\n---------------------------\n"+"輸入錯(cuò)誤,請(qǐng)重新輸入落子的位置:"); if(tp.length()==1){ k=tp.charAt(0)-'0'; if(k>=1&&k<=9){ if(s.charAt(k)>='1'&&s.charAt(k)<='9'){ i++; //有效下棋 f=false; } } } } //在k處落子 s.replace(k,k+1,"O"); if(check(s,k)){ //獲勝 JOptionPane.showMessageDialog(null,"---------------------------\n| "+s.charAt(1)+" | "+s.charAt(2)+" | "+s.charAt(3)+" |\n---------------------------\n| "+s.charAt(4)+" | "+s.charAt(5)+" | "+s.charAt(6)+" |\n---------------------------\n| "+s.charAt(7)+" | "+s.charAt(8)+" | "+s.charAt(9)+" |\n---------------------------\n"+"恭喜你,你贏了!"); break; } //電腦隨機(jī)落子 if(i==5) { JOptionPane.showMessageDialog(null,"---------------------------\n| "+s.charAt(1)+" | "+s.charAt(2)+" | "+s.charAt(3)+" |\n---------------------------\n| "+s.charAt(4)+" | "+s.charAt(5)+" | "+s.charAt(6)+" |\n---------------------------\n| "+s.charAt(7)+" | "+s.charAt(8)+" | "+s.charAt(9)+" |\n---------------------------\n"+"平局!"); break; } Random rs=new Random(); k=rs.nextInt(9)+1; while(k<1||k>9||s.charAt(k)=='*'||s.charAt(k)=='O') k=rs.nextInt(9)+1; s.replace(k,k+1,"*"); if(check(s,k)){ //電腦勝 JOptionPane.showMessageDialog(null,"---------------------------\n| "+s.charAt(1)+" | "+s.charAt(2)+" | "+s.charAt(3)+" |\n---------------------------\n| "+s.charAt(4)+" | "+s.charAt(5)+" | "+s.charAt(6)+" |\n---------------------------\n| "+s.charAt(7)+" | "+s.charAt(8)+" | "+s.charAt(9)+" |\n---------------------------\n"+"你輸了,再接再厲吧!"); break; } } } }
到此,相信大家對(duì)“java如何實(shí)現(xiàn)簡單三子棋游戲”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。