Java實現三子棋游戲
本文實例為大家分享了Java實現三子棋游戲的具體代碼,供大家參考,具體內容如下
一、題目要求
編寫程序,實現簡單的三子棋游戲。在三子棋中,雙方在3×3的棋盤中輪流下棋,一方用*示,另一方用O表示。如果一方的3個棋子占據了同一行,同一列或者對角線,則該方獲勝。如果棋盤已被棋子占滿,但沒有一方獲勝則出現平局。在程序中,一方為用戶,用戶在界面上輸入每次下棋的位置;另一方下棋的位置為隨機自動生成。
二、代碼示例
import javax.swing.JOptionPane; ? public class Main { ? ?? ?public static void main(String[] args) { ?? ??? ?char []s=new char[9]; ?? ??? ?for(int i=0;i<9;i++) { ?? ??? ??? ?s[i]=(char)(i+49); ?? ??? ?} ?? ??? ?int i=0; ?? ??? ?while(i++<5) { ?? ??? ??? ?String str=JOptionPane.showInputDialog("------------------\n" ?? ??? ??? ??? ? +"| ?"+s[0]+" ?| ?"+s[1]+" ?| ?"+s[2]+" ?|\n" ?? ??? ??? ??? ? +"| ?"+s[3]+" ?| ?"+s[4]+" ?| ?"+s[5]+" ?|\n" ?? ??? ??? ??? ? +"| ?"+s[6]+" ?| ?"+s[7]+" ?| ?"+s[8]+" ?|\n" ?? ??? ??? ??? ? +"------------------\n" ?? ??? ??? ??? ? + "請輸入位置:"); ?? ??? ??? ?while(str.length()==0||(str.charAt(0)-49)<0||(str.charAt(0)-49)>8) { ?? ??? ??? ??? ?str=JOptionPane.showInputDialog("------------------\n" ?? ??? ??? ??? ??? ? +"| ?"+s[0]+" ?| ?"+s[1]+" ?| ?"+s[2]+" ?|\n" ?? ??? ??? ??? ??? ? +"| ?"+s[3]+" ?| ?"+s[4]+" ?| ?"+s[5]+" ?|\n" ?? ??? ??? ??? ??? ? +"| ?"+s[6]+" ?| ?"+s[7]+" ?| ?"+s[8]+" ?|\n" ?? ??? ??? ??? ??? ? +"------------------\n" ?? ??? ??? ??? ??? ? + "輸入錯誤,請重新輸入:"); ?? ??? ??? ?} ?? ??? ??? ?char index=str.charAt(0); ?? ??? ??? ?while(s[index-49]=='*'||s[index-49]=='o') { ?? ??? ??? ??? ?str=JOptionPane.showInputDialog("------------------\n" ?? ??? ??? ??? ??? ? +"| ?"+s[0]+" ?| ?"+s[1]+" ?| ?"+s[2]+" ?|\n" ?? ??? ??? ??? ??? ? +"| ?"+s[3]+" ?| ?"+s[4]+" ?| ?"+s[5]+" ?|\n" ?? ??? ??? ??? ??? ? +"| ?"+s[6]+" ?| ?"+s[7]+" ?| ?"+s[8]+" ?|\n" ?? ??? ??? ??? ??? ? +"------------------\n" ?? ??? ??? ??? ??? ? + "此位置已占用,請重新輸入:"); ?? ??? ??? ??? ?index=str.charAt(0); ?? ??? ??? ??? ?while(str.length()==0||(str.charAt(0)-49)<0||(str.charAt(0)-49)>8) { ?? ??? ??? ??? ??? ?str=JOptionPane.showInputDialog("------------------\n" ?? ??? ??? ??? ??? ??? ? +"| ?"+s[0]+" ?| ?"+s[1]+" ?| ?"+s[2]+" ?|\n" ?? ??? ??? ??? ??? ??? ? +"| ?"+s[3]+" ?| ?"+s[4]+" ?| ?"+s[5]+" ?|\n" ?? ??? ??? ??? ??? ??? ? +"| ?"+s[6]+" ?| ?"+s[7]+" ?| ?"+s[8]+" ?|\n" ?? ??? ??? ??? ??? ??? ? +"------------------\n" ?? ??? ??? ??? ??? ??? ? + "輸入錯誤,請重新輸入:"); ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ??? ?s[index-49]='*'; ?? ??? ??? ?if((s[0]=='*'&&s[3]=='*'&&s[6]=='*')|| ?? ??? ??? ??? ??? ? ? (s[1]=='*'&&s[4]=='*'&&s[7]=='*')|| ?? ??? ??? ??? ??? ? ? (s[2]=='*'&&s[5]=='*'&&s[8]=='*')|| ?? ??? ??? ??? ??? ? ? (s[0]=='*'&&s[1]=='*'&&s[2]=='*')|| ?? ??? ??? ??? ??? ? ? (s[3]=='*'&&s[4]=='*'&&s[5]=='*')|| ?? ??? ??? ??? ??? ? ? (s[6]=='*'&&s[7]=='*'&&s[8]=='*')|| ?? ??? ??? ??? ??? ? ? (s[0]=='*'&&s[4]=='*'&&s[8]=='*')|| ?? ??? ??? ??? ??? ? ? (s[2]=='*'&&s[4]=='*'&&s[6]=='*'))? ?? ??? ??? ?{ ?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "------------------\n" ?? ??? ??? ??? ??? ? +"| ?"+s[0]+" ?| ?"+s[1]+" ?| ?"+s[2]+" ?|\n" ?? ??? ??? ??? ??? ? +"| ?"+s[3]+" ?| ?"+s[4]+" ?| ?"+s[5]+" ?|\n" ?? ??? ??? ??? ??? ? +"| ?"+s[6]+" ?| ?"+s[7]+" ?| ?"+s[8]+" ?|\n" ?? ??? ??? ??? ??? ? +"------------------\n" ?? ??? ??? ??? ??? ? + "恭喜你贏了"); ?? ??? ??? ??? ?break; ?? ??? ??? ?} ?? ??? ??? ?int b=(int)(Math.random()*9); ?? ??? ??? ?while(s[b]=='*'||s[b]=='o') ?? ??? ??? ?{ ?? ??? ??? ??? ?b=(int)(Math.random()*9); ?? ??? ??? ?} ?? ??? ??? ?s[b]='o'; ?? ??? ??? ?if((s[0]=='o'&&s[3]=='o'&&s[6]=='o')|| ?? ??? ??? ??? ??? ? ? (s[1]=='o'&&s[4]=='o'&&s[7]=='o')|| ?? ??? ??? ??? ??? ? ? (s[2]=='o'&&s[5]=='o'&&s[8]=='o')|| ?? ??? ??? ??? ??? ? ? (s[0]=='o'&&s[1]=='o'&&s[2]=='o')|| ?? ??? ??? ??? ??? ? ? (s[3]=='o'&&s[4]=='o'&&s[5]=='o')|| ?? ??? ??? ??? ??? ? ? (s[6]=='o'&&s[7]=='o'&&s[8]=='o')|| ?? ??? ??? ??? ??? ? ? (s[0]=='o'&&s[4]=='o'&&s[8]=='o')|| ?? ??? ??? ??? ??? ? ? (s[2]=='o'&&s[4]=='o'&&s[6]=='o'))? ?? ??? ??? ?{ ?? ??? ??? ??? ?JOptionPane.showMessageDialog(null, "------------------\n" ?? ??? ??? ??? ??? ? +"| ?"+s[0]+" ?| ?"+s[1]+" ?| ?"+s[2]+" ?|\n" ?? ??? ??? ??? ??? ? +"| ?"+s[3]+" ?| ?"+s[4]+" ?| ?"+s[5]+" ?|\n" ?? ??? ??? ??? ??? ? +"| ?"+s[6]+" ?| ?"+s[7]+" ?| ?"+s[8]+" ?|\n" ?? ??? ??? ??? ??? ? +"------------------\n" ?? ??? ??? ??? ??? ? + "失敗了,再接再勵"); ?? ??? ??? ??? ?break; ?? ??? ??? ?} ? ?? ??? ?} ?? ??? ?if(i==6) { ?? ??? ??? ?JOptionPane.showMessageDialog(null, "------------------\n" ?? ??? ??? ??? ??? ? +"| ?"+s[0]+" ?| ?"+s[1]+" ?| ?"+s[2]+" ?|\n" ?? ??? ??? ??? ??? ? +"| ?"+s[3]+" ?| ?"+s[4]+" ?| ?"+s[5]+" ?|\n" ?? ??? ??? ??? ??? ? +"| ?"+s[6]+" ?| ?"+s[7]+" ?| ?"+s[8]+" ?|\n" ?? ??? ??? ??? ??? ? +"------------------\n" ?? ??? ??? ??? ??? ? + "平局,還差一點哦"); ?? ??? ?} ?? ?} }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
往DAO類中注入@PersistenceContext和@Resource的區(qū)別詳解
這篇文章主要介紹了往DAO類中注入@PersistenceContext和@Resource的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02使用 Spring Boot 實現 WebSocket實時通信
本篇文章主要介紹了使用 Spring Boot 實現 WebSocket實時通信,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10使用spring-task定時任務動態(tài)配置修改執(zhí)行時間
這篇文章主要介紹了使用spring-task定時任務動態(tài)配置修改執(zhí)行時間,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11詳解Spring Boot中整合Sharding-JDBC讀寫分離示例
這篇文章主要介紹了詳解Spring Boot中整合Sharding-JDBC讀寫分離示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03