最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實(shí)現(xiàn)24點(diǎn)紙牌游戲

 更新時(shí)間:2020年03月13日 13:37:28   作者:SHEN@i  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)24點(diǎn)紙牌游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文題目為大家分享了java實(shí)現(xiàn)24點(diǎn)紙牌游戲的具體代碼,供大家參考,具體內(nèi)容如下

題目

24點(diǎn)游戲是經(jīng)典的紙牌益智游戲。

常見(jiàn)游戲規(guī)則:

從撲克中每次取出4張牌。使用加減乘除,第一個(gè)能得出24者為贏。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求編程解決24點(diǎn)游戲。
基本要求: 隨機(jī)生成4個(gè)代表?yè)淇伺婆泼娴臄?shù)字字母,程序自動(dòng)列出所有可能算出24的表達(dá)式,用擅長(zhǎng)的語(yǔ)言(C/C++/Java或其他均可)實(shí)現(xiàn)程序解決問(wèn)題。

分析

用窮舉法列出四個(gè)數(shù)加上三個(gè)運(yùn)算符號(hào)所構(gòu)成的表達(dá)式所有可能的結(jié)果

算法實(shí)現(xiàn)

import java.util.*;
public class point24 {
 static int sum=0;
 static int[] sum()//產(chǎn)生隨機(jī)數(shù)并顯示的方法
 {
 Random rand=new Random();
 int r1=(1+rand.nextInt(13));
 int r2=(1+rand.nextInt(13));
 int r3=(1+rand.nextInt(13));
 int r4=(1+rand.nextInt(13));
 System.out.print("發(fā)出的牌為:");
 switch(r1)
 {
 case 1 :System.out.print("A");break;
 case 11:System.out.print("J");break;
 case 12:System.out.print("Q");break;
 case 13:System.out.print("K");break;
 default:System.out.print(r1);break;
 }
 switch(r2)
 {
 case 1 :System.out.print(" A");break;
 case 11:System.out.print(" J");break;
 case 12:System.out.print(" Q");break;
 case 13:System.out.print(" K");break;
 default:System.out.print(" "+r2);break;
 }
 switch(r3)
 {
 case 1 :System.out.print(" A");break;
 case 11:System.out.print(" J");break;
 case 12:System.out.print(" Q");break;
 case 13:System.out.print(" K");break;
 default:System.out.print(" "+r3);break;
 }
 switch(r4)
 {
 case 1 :System.out.println(" A");break;
 case 11:System.out.println(" J");break;
 case 12:System.out.println(" Q");break;
 case 13:System.out.println(" K");break;
 default:System.out.println(" "+r4);break;
 }

 int [] s=new int[] {r1,r2,r3,r4};
 return s;

 }

 static int js(int i,int j,int x)//兩個(gè)數(shù)之間計(jì)算符號(hào)確認(rèn)
 {
 int m=0;
 switch(x)
 {
 case 0:m=i+j;break;
 case 1:m=i-j;break;
 case 2:m=i*j;break;
 case 3:
 m=i/j;if(i%j!=0) m=-1;//如果除不盡直接讓m=-1,以便直接結(jié)束此次循環(huán)
 break;
 }
 return m;
 }

 static String prin(int s1,int s2,int s3,int s4,int x1,int x2,int x3)//打印解的表達(dá)式
 {
 String ch="";
 switch(s1)
 {
 case 1 :System.out.print("A");ch="A";break;
 case 11:System.out.print("J");ch="J";break;
 case 12:System.out.print("Q");ch="Q";break;
 case 13:System.out.print("K");ch="K";break;
 default:System.out.print(s1);ch=(String)(s1+"0");break;
 }
 switch(x1)
 {
 case 0:System.out.print("+");ch+="+";break;
 case 1:System.out.print("-");ch+="-";break;
 case 2:System.out.print("*");ch+="*";break;
 case 3:System.out.print("/");ch+="/";break;
 }
 switch(s2)
 {
 case 1 :System.out.print("A");ch+="A";break;
 case 11:System.out.print("J");ch+="J";break;
 case 12:System.out.print("Q");ch+="Q";break;
 case 13:System.out.print("K");ch+="K";break;
 default:System.out.print(s2);ch+=(String)(s2+"");break;
 }
 switch(x2)
 {
 case 0:System.out.print("+");ch+="+";break;
 case 1:System.out.print("-");ch+="-";break;
 case 2:System.out.print("*");ch+="*";break;
 case 3:System.out.print("/");ch+="/";break;
 }
 switch(s3)
 {
 case 1 :System.out.print("A");ch+="A";break;
 case 11:System.out.print("J");ch+="J";break;
 case 12:System.out.print("Q");ch+="Q";break;
 case 13:System.out.print("K");ch+="K";break;
 default:System.out.print(s3);ch+=(String)(s3+"");break;
 }
 switch(x3)
 {
 case 0:System.out.print("+");ch+="+";break;
 case 1:System.out.print("-");ch+="-";break;
 case 2:System.out.print("*");ch+="*";break;
 case 3:System.out.print("/");ch+="/";break;
 }
 switch(s4)
 {
 case 1 :System.out.println("A");ch+="A";break;
 case 11:System.out.println("J");ch+="J";break;
 case 12:System.out.println("Q");ch+="Q";break;
 case 13:System.out.println("K");ch+="K";break;
 default:System.out.println(s4);ch+=(String)(s4+"");break;
 }



 // System.out.println(" "+ch);

 return ch;


 }

 static String[] con(int s[])//枚舉計(jì)算是否存在解
 {
 boolean flag=false;
 String[] ch=new String [100];
 int js1,js2,js3=0;
 for(int i = 0;i<4;i++)
 { 
 for(int j=0;j<4;j++)
 {
 if(i!=j)
 {
  for(int k=0;k<4;k++)
  {
  if(i!=j&&j!=k&&i!=k)
  {
  for(int l=0;l<4;l++)
  {
  if(i!=j&&j!=k&&k!=l&&i!=k&&i!=l&&j!=l)
  {
   for(int x1=0;x1<3;x1++)
   {
   for(int x2=0;x2<3;x2++)
   {
   for(int x3=0;x3<3;x3++)
   {
   js1=js(s[i],s[j],x1);
   if(js1==-1) continue;
   js2=js(js1,s[k],x2);
   if(js2==-1) continue;
   js3=js(js2,s[l],x3);
   if(js3==-1) continue;
   if(js3!=-1)
   {
    if(js3==24)
    {   ch[sum]=prin(s[i],s[j],s[k],s[l],x1,x2,x3);
   flag=true;
   sum++;
    }
   }
   }}}}}}}}}}
 if(flag==false)
 {
 System.out.println("不存在一組解使其成為\"24點(diǎn)\"");
 }
 return ch;
 }
 public static void main(String[] args)
 {

 boolean f=false;
 Scanner in=new Scanner(System.in);
 while(!f)
 {
 int [] s=sum();//產(chǎn)生4個(gè)隨機(jī)紙牌
 con(s);//求解并打印
 System.out.println();
 System.out.println("繼續(xù) (1)or結(jié)束(0)");
 if(in.nextInt()==1)
 {f=false;}
 else
 {f=true;}
 } 

 }
}

運(yùn)行結(jié)果

隨機(jī)數(shù)產(chǎn)生測(cè)試:

運(yùn)行:

更多精彩游戲小代碼,請(qǐng)點(diǎn)擊《游戲?qū)n}》閱讀

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中動(dòng)態(tài)設(shè)置JVM參數(shù)的方法總結(jié)

    Java中動(dòng)態(tài)設(shè)置JVM參數(shù)的方法總結(jié)

    通過(guò)動(dòng)態(tài)設(shè)置JVM參數(shù),開(kāi)發(fā)者可以更有效地管理資源使用和優(yōu)化性能,本文將詳細(xì)闡述如何在Java中動(dòng)態(tài)設(shè)置JVM參數(shù),感興趣的小伙伴可以了解下
    2024-12-12
  • 新手入門(mén)Jvm--Jvm垃圾回收

    新手入門(mén)Jvm--Jvm垃圾回收

    JVM是Java Virtual Machine(Java虛擬機(jī))的縮寫(xiě),JVM是一種用于計(jì)算設(shè)備的規(guī)范,它是一個(gè)虛構(gòu)出來(lái)的計(jì)算機(jī),是通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來(lái)實(shí)現(xiàn)的
    2021-06-06
  • 解決springboot與springcloud版本兼容問(wèn)題(附版本兼容表)

    解決springboot與springcloud版本兼容問(wèn)題(附版本兼容表)

    在基于spring boot搭建spring cloud時(shí),創(chuàng)建eureka后啟動(dòng)服務(wù)發(fā)生報(bào)錯(cuò),本文給大家介紹了解決springboot與springcloud版本兼容問(wèn)題的幾種方案,需要的朋友可以參考下
    2024-02-02
  • Java String源碼分析并介紹Sting 為什么不可變

    Java String源碼分析并介紹Sting 為什么不可變

    這篇文章主要介紹了Java String源碼分析并介紹Sting 為什么不可變的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Java生成二維碼可添加logo和文字功能

    Java生成二維碼可添加logo和文字功能

    這篇文章主要介紹了Java生成二維碼可添加logo和文字功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • 徹底搞懂Java多線(xiàn)程(五)

    徹底搞懂Java多線(xiàn)程(五)

    這篇文章主要給大家介紹了關(guān)于Java面試題之多線(xiàn)程和高并發(fā)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • springmvc字符編碼過(guò)濾器CharacterEncodingFilter的使用

    springmvc字符編碼過(guò)濾器CharacterEncodingFilter的使用

    這篇文章主要介紹了springmvc字符編碼過(guò)濾器CharacterEncodingFilter的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2021-08-08
  • SpringBoot應(yīng)用的打包和發(fā)布實(shí)現(xiàn)

    SpringBoot應(yīng)用的打包和發(fā)布實(shí)現(xiàn)

    本文主要介紹了SpringBoot應(yīng)用的打包和發(fā)布實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • MyBatis-Plus執(zhí)行SQL分析打印過(guò)程

    MyBatis-Plus執(zhí)行SQL分析打印過(guò)程

    這篇文章主要介紹了MyBatis-Plus執(zhí)行SQL分析打印過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 淺析Java中的XML文件處理

    淺析Java中的XML文件處理

    ?XML?是一種用于存儲(chǔ)和傳輸數(shù)據(jù)的標(biāo)記語(yǔ)言,由W3C(萬(wàn)維網(wǎng)聯(lián)盟)于1998年發(fā)布,本文主要來(lái)和大家聊聊Java中XML文件處理的相關(guān)知識(shí),有需要的可以參考下
    2024-11-11

最新評(píng)論

永春县| 师宗县| 阿瓦提县| 牟定县| 隆安县| 张北县| 克什克腾旗| 涿鹿县| 锡林浩特市| 沧州市| 漾濞| 昌江| 甘孜| 田阳县| 清苑县| 错那县| 济南市| 山西省| 兴仁县| 台州市| 哈密市| 浦城县| 宜君县| 大石桥市| 靖边县| 庄河市| 辉县市| 武功县| 土默特右旗| 东源县| 神池县| 新郑市| 通辽市| 常宁市| 南宁市| 法库县| 南京市| 双峰县| 大竹县| 宁陕县| 精河县|