android小游戏“24点”放源码了!!

前言

  在学android的时候,总觉的要做点什么才能感觉到自己在学东西,所以一个小游戏24点就打算做出来试试。为什么要做24点游戏呢?因为之前用javaSwing组件做了一个电脑版的24点,学了android之后就像做一个手机版的,好了,这就是我做24点的缘由了。

实现

  先给大家看一下效果图:


  图中有四张扑克牌,一个用来显示答案的输入框和两个按钮。点击开始按钮就会出现四张扑克牌,然后玩家去思考该怎么去做出来,如果做不出来可以点击答案按钮查看响应的答案。
  这个游戏的最主要的就是24点游戏的算法,如何判断四张牌能不能产生24点,以及四张牌如何产生24点,解决了这两个问题,游戏基本就完成了。在工程中有一个GameUtil类,这个类封装类了上面两个问题的解决方法,先放出来源码给大家看一下,然后再说明如何实现那两个算法的。

  GameUtil.java

public class GameUtil {
   
   

    /**
     * 得到所有能算出24点的表达式
     * @param a
     * @param b
     * @param c
     * @param d
     * @return
     */
    public static List<String> getResultList(int a,int b,int c,int d){
        List<String> _List = new ArrayList<String>();
        int op1,op2,op3;
        for(op1=1;op1<=4;op1++)
            for(op2=1;op2<=4;op2++)
                for(op3=1;op3<=4;op3++){
                    if(calculate_model1(a,b,c,d,op1,op2,op3)==24){
                        String s1="(("+a+showFuHao(op1)+b+")"+showFuHao(op2)+c+")"+showFuHao(op3)+d;
                        _List.add(s1);
        
基于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 轴对齐文本
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值