本文题目为大家分享了java实现24点纸牌游戏的具体代码,供大家参考,具体内容如下

题目

24点游戏是经典的纸牌益智游戏。

常见游戏规则:

从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。

基本要求: 随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长的语言(C/C++/Java或其他均可)实现程序解决问题。

分析

用穷举法列出四个数加上三个运算符号所构成的表达式所有可能的结果

算法实现

import java.util.*;

public class point24 {

static int sum=0;

static int[] sum()//产生随机数并显示的方法

{

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("发出的牌为:");

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)//两个数之间计算符号确认

{

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,以便直接结束此次循环

break;

}

return m;

}

static String prin(int s1,int s2,int s3,int s4,int x1,int x2,int x3)//打印解的表达式

{

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[])//枚举计算是否存在解

{

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点\"");

}

return ch;

}

public static void main(String[] args)

{

boolean f=false;

Scanner in=new Scanner(System.in);

while(!f)

{

int [] s=sum();//产生4个随机纸牌

con(s);//求解并打印

System.out.println();

System.out.println("继续 (1)or结束(0)");

if(in.nextInt()==1)

{f=false;}

else

{f=true;}

}

}

}

运行结果

随机数产生测试:

运行:

更多精彩游戏小代码,请点击《游戏专题》阅读

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

24点游戏 java实现_java实现24点纸牌游戏相关推荐

  1. 弹球小游戏java代码_java实现简单的弹球游戏

    弹球游戏实现原理: 隔一定时间(小于1秒)重新绘制图像,因为Graphics类是一个抽象类,创建子类的时候需要把所有涉及的方法都得重写,所以这里使用的是创建Canvas的子类,只需要重写它的paint ...

  2. 猜数字游戏java编程_Java编写猜数字小游戏

    本文实例讲述了java实现的简单猜数字游戏代码.分享给大家供大家参考. 以下是Java语言写的一个猜数字小游戏引用片段: import java.text.SimpleDateFormat; impo ...

  3. java课程设计纸牌游戏_java练习项目之纸牌游戏实例源码

    java应用练习项目之纸牌游戏实例源码.java纸牌项目练习题目要求: 定义纸牌的花色 定义纸牌的大小2A 花色与数字组成一张牌 组成一整副纸牌 构造玩家 发牌 题目 : 创建一副扑克牌,这副牌是标准 ...

  4. java蜘蛛纸牌课程设计_Java课程设计-蜘蛛纸牌游戏.doc

    Java课程设计-蜘蛛纸牌游戏.doc 还剩 33页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: Java 课 ...

  5. java简单纸牌游戏_活动回顾 | 畅玩法语纸牌游戏

    11月17日下午,20级小伙伴们迎来了第二次法语角活动!这次外教Anne-Flore Vrac 老师为同学们安排了丰富有趣的法语纸牌游戏,快来一起回顾活动的精彩瞬间吧! 集体游戏一:从1到30 老师首 ...

  6. 计算机纸牌游戏在哪,开始菜单里的纸牌游戏没有了~~在哪里能够找 – 手机爱问...

    2006-02-07 WINDOWS里自带的游戏有一个是纸牌. 我在电脑里玩的很好.但我想在现实中玩.不知道纸牌怎么摆? 谁告诉我一下 谢谢 纸牌"概述 纸牌游戏的最终目的是将所有背面图案的 ...

  7. python创建游戏代码_用Python类创建纸牌游戏

    我试图通过创建一个纸牌游戏来练习Python中的编程类.现在我要做的是让玩家从牌堆中抽一张牌.我有如下代码: class Deck(): def __init__(self): #create the ...

  8. C语言编程纸牌游戏运行结果,C语言编程,纸牌游戏

    C语言编程,纸牌游戏 关注:170  答案:2  mip版 解决时间 2021-01-28 15:29 提问者孤独深渊 2021-01-28 08:16 编号为1-52张牌,正面向上,从第2张开始,以 ...

  9. 象棋联机java代码_java实现简单网络象棋游戏

    本文实例为大家分享了java实现网络象棋游戏的具体代码,供大家参考,具体内容如下 游戏规则: 1.将/帅:不能出田字格,不能走斜线,只能前进后退向左向右,每次只走一格: 2.士/仕:不能出田字格,只能 ...

最新文章

  1. Android 弱引用 (WeakReference)的使用
  2. flink介绍:有界流和无界流
  3. 前端学习(2250)拉取代码文件
  4. python画图怎么调色_Python气象数据处理与绘图(19):如何使用NCL色板(调色盘思路相同)...
  5. 图片热点的使用,html area 的用法
  6. javascript 键值keyCode
  7. retext代码高亮_实例简介Markdown格式
  8. arc科学计算机在线应用使用,ArcMap字段计算器(Field Calculator)的妙用
  9. 手机语音混响软件_Tone2 UltraSpace-音频混响软件下载 v1.0 官方版 - 安下载
  10. 数值计算实验平方根法matlab代码,数值计算方法与实验 谢冬秀左军
  11. 机器视觉需要掌握的知识
  12. wps演示怎么提高列表级别_wps文字如何设置标题级别?wps设置标题级别教程
  13. 直击DTCC2018 阿里数据库技术干货全面解析
  14. 什么时候跳槽,为什么离职,你想好了么?
  15. 教孩子学编程python豆瓣_教孩子学编程 Python
  16. 物联网安全知识点总结--第六章 物联网应用层安全
  17. 10岁男孩开灯睡觉骨龄发育慢4年上热搜,开灯睡觉都有什么危害?
  18. 系统定制封装-windows
  19. Springboot人事管理912fw计算机毕业设计-课程设计-期末作业-毕设程序代做
  20. DHT11温湿度模块驱动程序

热门文章

  1. Elastic:运用 Elastic Maps 实时跟踪,可视化资产分布及地理围栏告警(二)
  2. 从mong 主键ObjectId获取插入时间
  3. 用Python选取神股(简单、粗暴)
  4. java 实现http长轮询,Long Polling长轮询实现进阶
  5. 新房和二手房税费比较
  6. 卸载win10自带应用
  7. python 文件夹下所有文件_使用Python遍历文件夹下所有文件(包所有含子文件夹)...
  8. 【社区图书馆】携程架构与实践图书
  9. AutoCAD 04,07,08,11,14,16,18不同版本的选择建议
  10. Centos7 glibc库升级到2.23