基于AndroidStudio开发的扑克牌计算24点APP

功能实现

已知一副扑克牌有54张,去除大王和小王,剩余52张。在其中抽取4张牌,利用加减乘除进行计算得到24,除法必须能够除尽。编写程序从一副扑克牌,选择4张,进行计算是否能得到24。如果可以,排序列出可能的计算表达式,可能有多种计算形式。

设计思想

为每张扑克牌的视图都设置点击事件的函数chooseCard(),通过view.getId()可以知道对应的视图id,用switch和case来判断选择的扑克牌,并添加上扑克牌的取值信息。将已选区域的四个位置设成栈,遍历栈,如果当前位置是空的话,就将选择的牌进栈,同时通过view.setVisibility(View.INVISIBLE);语句,将扑克牌队列中相应的牌设置为不可见,用:

chooseCards.get(i).setBackground(getResources().getDrawable(curCardImage));语句在当前空位置上获得选中牌的ImageView,从而在已选区显示。

创建清空函数,将四个位置的背景信息重设成初始状态,并将他们获得的扑克牌值置为零,同时用栈弹出里面已选扑克牌的ImageView,来将这些ImageView设置成可见状态:

为Button “Calculate”设置点击事件弹窗函数,若为选满四张就点击,则提示"Please choose four cards!"。若有符合条件的24点表达式则遍历并显示出所有结果,并说明共有多少种结果。若不能产生24点则提示"Sorry! Your choice cannot make up to 24 points"。

关于24点的计算,先从四个数字中有序选择两个数进行加、减、乘、除,其中一种运算,得到的结果与剩下的两个数一起,再从这三个数中有序选择,得到的结果与剩下的数再运算,然后回溯所有情况,获得结果为24的情况。

程序结构

Java类


布局文件

程序流程图

运行结果展示

基于JavaAndroid应用程序开发-24游戏源码+详细项目说明.zip 基于JavaAndroid应用程序开发-24游戏源码+详细项目说明.zip 基于JavaAndroid应用程序开发-24游戏源码+详细项目说明.zip 【项目介绍】 该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶, 或者实际项目借鉴参考! 当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。如果基础还行,也可在此代码基础上进行修改,以实现其他功能。 项目简介 已知一副扑克牌有54张,去除大王和小王,剩余52张。在其中抽取4张牌,利用加减乘除进行计算得到24,除法必须能够除尽。编写程序从一副扑克牌,选择4张,进行计算是否能得到24。如果可以,排序列出可能的计算表达式,可能有多种计算形式。 **实现功能** - 在界面上显示出52张扑克牌- 通过击的方式选出4张扑克牌并放置在界面某一个地方,位置自己确定。 - 如果可以计算24,排序列出可能的计算方式,并显示在界面上,如果不能算出,请提示。 - APP界面自行设计,至少包含两个界面。 - 界面美观度,功能完整度,扩展性功能,程序稳定性。 ## 2、项目实现 ### 2.1、设计思想 **卡片选取功能的实现方法:** “计算24”上一共有56个ImageView,其中有52个显示扑克牌,按照扑克牌的花色以及数有序排列。界面下方4个ImageView为卡片空位。当扑克牌时,设置ImageView的clickListener将当前所击的卡片设置为隐藏状态,并将下方的空白卡片图片设置为所选择的扑克牌程序使用一个容量为4栈用于存储当前所选择的卡片。当击“back”时弹出栈上方的卡片,并将弹出的卡片对应的ImageView设置显示,并将界面下方对应的卡片设置为空白卡片,即实现了卡片的退出功能。当击“clear”时清空栈,并同时设置对应的ImageView,即实现清空卡片功能。击“get 24pints”时调用“Point24”类的“get24pointequ”函数获取24表达式,并显示在弹窗上。若无法组成24表达式,便提示用户。 **获取24表达式的算法思路:** 首先从4个数字中有序地选出2个数字,并选择加、减、乘、除 4 种运算操作之一,用得到的结果取代选出的2个数字,剩下3个数字。然后在剩下的3个数字中有序地选出2个数字,并选择 4 种运算操作之一,用得到的结果取代选出的2个数字,剩下2个数字。最后剩下2个数字,有2种不同的顺序,并选择4种运算操作之一。 因此,可以通过回溯的方法遍历所有不同的可能性。使用一个列表存储目前的全部数字,每次从列表中选出2个数字,再选择一种运算操作,用计算得到的结果取代选出的2个数字,这样列表中的数字就减少了1个。重复上述步骤,直到列表中只剩下1个数字,这个数字就是一种可能性的结果,如果结果等于24,则说明可以通过运算得到24。如果所有的可能性的结果都不等于24,则说明无法通过运算得到24。 除法运算为实数除法,因此结果为浮数,列表中存储的数字也都是浮数。在判断结果是否等于 24 时需要考虑精度误差,当误差小于10-6 时可以认为是相等。 进行除法运算时,除数不能为0,如果遇到除数为0的情况,则这种可能性可以直接排除。 总结与体会 通过学习开发扑克牌计算24app,了解了android studio开发的基本原理。学习了android程序的运行过程。一个进程创建时系统会为它创建一个Activity(活动),紧接着调用onCreate(),onCreate()中主要是进行一些初始化,例如读取XML资源文件创建布局,设置主界面各种监听函数等等,每个进程都会调用onCreate()。 接着是onStart(),系统会自动调用;但是,当需要在程序中需要创建其他的activity的时候,需要显式调用这个onStart(),即startActivity(intent),这里的intent表示一个意图,就是想创建的新Activity。 还学习了android的一些基本组件,例如:id,控件的唯一表示符,在同一个XML文件中不可重复,相当于身份证的作用,课用来寻找并且绑定此控件;layout_width以及layout_height,分别设置view的宽高;gravity指定当文本小于视图时如何通过视图的 x 和/或 y 轴对齐文本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值