开发实例系列:一、舒尔特方格小游戏,付源码和APK
舒尔特方格 ,生成随机数,从小到大依次点击,时间越短越好。
底部带源码和apk下载
注意功能点:
一、使用TableLayout自动生成表格
这一部分是参考网上的帖子,找不到原连接了;
自定义TableLayout, 以下是源码:
public class TableBorderLayout extends TableLayout {private Context mContext;private BaseAdapter mAdapter;private int column = 0; //每行的个数 public TableBorderLayout(Context context, AttributeSet attrs) {super(context, attrs);this.mContext = context;setStretchAllColumns(true);}public void setAdapter(BaseAdapter baseAdapter, int column) {if (baseAdapter == null || baseAdapter.getCount() == 0) {return;}this.mAdapter = baseAdapter;this.column = column;//个数 drawLayout();}private void drawLayout() {removeAllViews();int realcount = mAdapter.getCount();//数据的总数,list.size(); 例如:size = 18 int count = 0;if (realcount < column) {//如果集合里的数据 小于 行个数 例如:18 > 5 count = column;} else if (realcount % column != 0) { // 18 % 5 = 3 3 != 0 count = realcount + column - (realcount % column); // 18 + 5 - 3 = 20 count=20 } else {count = realcount;}TableRow tableRow = null; //每一行的tableRow for (int i = 0; i < count; i++) { //i < 20, 会循环20次,添加20个格子,但数据总数只有18,所以最后两个是空的 final int index = i;View view = null;if (index >= realcount) {view = mAdapter.getView((realcount - 1), null, null);view.setVisibility(INVISIBLE);//没有数据不显示 } else {view = mAdapter.getView(index, null, null);}if (index % column == 0) { //整行,每次取余为0 就会新增一行实现自增长,最大数为20,个数为5,会增四行 tableRow = new TableRow(mContext);}if (tableRow != null) {//添加view tableRow.addView(view);}if (index % column == 0) {addView(tableRow, new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));}}} }
adapter源码:
public class MyAdapter extends BaseAdapter {private List<Integer> dataList;private LayoutInflater mInflater;private int type;private View.OnClickListener clickListener;private Context context;private List<Integer> isR = new ArrayList<>(); //随机色彩Rprivate List<Integer> isG = new ArrayList<>(); //随机色彩Gprivate List<Integer> isB = new ArrayList<>(); //随机色彩Bpublic MyAdapter(Context context, List<Integer> dataList, View.OnClickListener clickListener, int type) {this.mInflater = LayoutInflater.from(context);this.dataList = dataList;//总数据this.clickListener = clickListener;this.type = type; //用来判断是 行个数是否为7、9this.context = context;}public MyAdapter(Context context, List<Integer> dataList, View.OnClickListener clickListener, int type, List<Integer> isR, List<Integer> isG, List<Integer> isB) {this.mInflater = LayoutInflater.from(context);this.dataList = dataList;this.clickListener = clickListener;this.type = type;this.context = context;this.isR = isR;this.isG = isG;this.isB = isB;}@Override public int getCount() {return dataList.size();}@Override public Object getItem(int i) {return dataList.get(i);}@Override public long getItemId(int i) {return i;}@Override public View getView(int i, View view, ViewGroup viewGroup) {if (view == null) {view = mInflater.inflate(R.layout.item_click_interface_list, null);}TextView textView = view.findViewById(R.id.tvTile);if (type == 7) {textView.setTextSize(20);//缩小字体} else if (type == 9) {textView.setTextSize(16);}if (isR.size() > 0 && isG.size() > 0 && isB.size() > 0){//生成随机色textView.setBackgroundColor(Color.rgb(isR.get(i+1), isG.get(i+2), isB.get(i+3)));}textView.setText("" + dataList.get(i).toString());textView.setId(dataList.get(i).intValue());//设置IDtextView.setOnClickListener(clickListener);return view;} }
二、打乱数字
打乱数字比较简单,使用Collections.shuffle()方法,已下是关键代码:
//打乱数字 Collections.shuffle(numberList); shuffle(List<?>) 方法用于随机排列随机使用一个默认的源指定的列表这个方法很实用,在随机色彩也使用了该方法。
...............................以上就是应用比较关键的代码.............................
三、应用截图
共有三种模式,普通模式{3x3, 5x5, 7x7, 9x9},素数模式{5x5},奇数模式{3x3, 5x5, 7x7}。 特殊的色彩方格模式:开启后方格底色将会带有颜色,以此来增加难度。
四、源码和APK下载
源码:
github: https://github.com/Mei-Bin/MyShulteProject
百度云:链接:https://pan.baidu.com/s/1pMZqNov 密码:oqqn
APK:
百度云:链接:https://pan.baidu.com/s/1dFPl8FB 密码:oejm
五、最后的话:
舒尔特这个游戏也挺有意思的,主要锻炼注意力................
开发实例系列:一、舒尔特方格小游戏,付源码和APK相关推荐
- 蘑菇云「行空板Python入门教程」第七课:舒尔特方格小游戏
注意力是一切学习的根本,是大脑进行感知.学习.思维等认知活动的基本条件.然而,无论是孩子还是成年人,我们常常会因开小差.注意力无法集中而困扰.此时,找到一个合适的方法来训练我们的注意力势在必行. 舒尔 ...
- java 猫 游戏,crazycat 围住神经猫-小游戏-Java源码 联合开发网 - pudn.com
crazycat 所属分类:Java编程 开发工具:Java 文件大小:1373KB 下载次数:1 上传日期:2019-01-19 21:03:14 上 传 者:lynnhl 说明: 围住神经猫-小 ...
- html实现扫雷小游戏(附源码)
文章目录 实现功能 1.扫雷设计 1.1 主界面 1.2 扫雷难度 1.3 附带功能 2.效果和源码 2.1 动态效果 2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blo ...
- 星益小游戏平台源码 内置80多个在线小游戏
简介: 星益小游戏平台源码是一款星益在线小游戏可的网站源码,本程序由小星合集整理制作,共计80个小游戏. 内置了80个在线小游戏,直接就能玩耍,上传到空间用! 本程序大部分都是自适应,但是使用电脑端体 ...
- python小游戏-16行代码实现3D撞球小游戏!-源码下载
python小游戏-16行代码实现3D撞球小游戏!-源码下载 所属网站分类: 资源下载 > python小游戏 作者:搞笑 链接: http://www.pythonheidong.com/bl ...
- 微信网页小游戏网站源码带后台+可后台添加游戏+推荐到微信
微信网页小游戏网站源码带后台,淘宝上卖的很火的源码,免费公开!
- 遥控汽车网页小游戏html源码
这是一个网页小游戏源代码 你可以开着小汽车在整个地图中旅行 可撞墙.可鸣笛.自己发现吧 无聊时可以用它打消下无聊的时间 首页注释挺详细的,可自行修改 运行不成功注意文件引用的路径 路径 路径 快来下载 ...
- flash高科技php网站源码下载,Flash小游戏PHP源码
项目包里有两种版本, 第一种是:UTF-8 PHP版本 第二种是:UTF-8 伪静态版本(如果空间支持,强烈建议使用此版本,对搜索引擎友好) 开源项目:flash游戏源码,小游戏PHP源码,休闲fla ...
- 2023 俄罗斯方块网页小游戏HTML源码
手机和电脑自适应都可以玩,试玩了一下源码没问题,也没有加密,想试玩的可以下载源码搭建耍耍 2023 俄罗斯方块网页小游戏HTML源码
- Java五子棋小游戏(源码及效果图)
巩固Java基础时写的小Demo,源码如下: package javagobang;import java.io.BufferedReader; import java.io.InputStreamR ...
最新文章
- 排序算法----插入排序
- 去掉windows console application的dos显示
- Java实现上传文件到指定服务器指定目录
- Java控制台如何输入一行、多行?
- java全文检索的框架_lucene框架全文检索搜索引擎方案
- Cannot create a session after the response has been committed
- 业务专题篇:如何用数据评价某次活动?
- 面向对象概述(课堂笔记)
- libreoffice 开发文档_LibreOffice中文 | linux软件
- R/3 ABAP开发学习笔记---网摘
- traceroute tracert
- 拇指接龙游戏从WIN32向Android移植过程问题记录(1)
- 到底工资要多少合适?
- Android-APP之桌面宠物
- 【CMD】ping通ip
- Jedis的hget方法简单用法
- [转]失业七个月,面试六十家公司的深圳体验(转贴)
- 读书06《简约至上》
- 为用户“NT AUTHORITY/NETWORK SERVICE”授予的权限不足,无法执行此操作。 (rsAccessDenied)
- spring boot 项目重新搭建----------mvc配置:拦截器
热门文章
- c# 调用Minitab18.1实现直方图、质量正态图
- 宝塔Linux控制面板专业版破解步骤【亲测可用】
- JS前端实现点击按钮生成并下载txt文件
- HTML5基础网页设计(加代码CSS)
- ProteusPro(EDA工具软件) V8.9 _下载及安装
- 操作系统——概念、功能、特征及发展分类
- 锐捷Linux认证失败,锐捷上网认证常见问题及解决办法
- ActivityGroup切换不用每次加载视图
- 使用Python写一个定时锁屏软件
- 计算机更新bios,win7bios升级教程_win7电脑主板bios升级的方法