Java實(shí)現(xiàn)三子棋游戲
本文實(shí)例為大家分享了Java實(shí)現(xiàn)三子棋游戲的具體代碼,供大家參考,具體內(nèi)容如下
一、題目要求
編寫程序,實(shí)現(xiàn)簡(jiǎn)單的三子棋游戲。在三子棋中,雙方在3×3的棋盤中輪流下棋,一方用*示,另一方用O表示。如果一方的3個(gè)棋子占據(jù)了同一行,同一列或者對(duì)角線,則該方獲勝。如果棋盤已被棋子占滿,但沒有一方獲勝則出現(xiàn)平局。在程序中,一方為用戶,用戶在界面上輸入每次下棋的位置;另一方下棋的位置為隨機(jī)自動(dòng)生成。
二、代碼示例
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" ?? ??? ??? ??? ? + "請(qǐng)輸入位置:"); ?? ??? ??? ?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" ?? ??? ??? ??? ??? ? + "輸入錯(cuò)誤,請(qǐng)重新輸入:"); ?? ??? ??? ?} ?? ??? ??? ?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" ?? ??? ??? ??? ??? ? + "此位置已占用,請(qǐng)重新輸入:"); ?? ??? ??? ??? ?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" ?? ??? ??? ??? ??? ??? ? + "輸入錯(cuò)誤,請(qǐng)重新輸入:"); ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ??? ?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" ?? ??? ??? ??? ??? ? + "失敗了,再接再勵(lì)"); ?? ??? ??? ??? ?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" ?? ??? ??? ??? ??? ? + "平局,還差一點(diǎn)哦"); ?? ??? ?} ?? ?} }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
往DAO類中注入@PersistenceContext和@Resource的區(qū)別詳解
這篇文章主要介紹了往DAO類中注入@PersistenceContext和@Resource的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02java 壓縮和解壓縮Zip、Jar、Gzip文件實(shí)例代碼
本文主要介紹java壓縮和解壓縮Zip、Jar、Gzip文件的知識(shí),這里整理了相關(guān)資料,并附示例代碼有興趣的小伙伴可以參考下2016-09-09使用 Spring Boot 實(shí)現(xiàn) WebSocket實(shí)時(shí)通信
本篇文章主要介紹了使用 Spring Boot 實(shí)現(xiàn) WebSocket實(shí)時(shí)通信,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10使用spring-task定時(shí)任務(wù)動(dòng)態(tài)配置修改執(zhí)行時(shí)間
這篇文章主要介紹了使用spring-task定時(shí)任務(wù)動(dòng)態(tài)配置修改執(zhí)行時(shí)間,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11詳解Spring Boot中整合Sharding-JDBC讀寫分離示例
這篇文章主要介紹了詳解Spring Boot中整合Sharding-JDBC讀寫分離示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03