数独游戏--初始化表中数据
来源:互联网 发布:淘宝修改差评步骤 编辑:程序博客网 时间:2024/06/14 05:23
这时候需要一些逻辑类来进行一些计算了,新建Game.java:
public class Game { //字符串中的0,就代表什么都没有 public static final String table1="" +"360000000" +"004230800" +"000004200" +"070460003" +"820000014" +"500013020" +"001900000" +"007048300" +"000000045";}
接着需要判断table1的里面‘0’,然后返回相应的字符串,这里就出事了,我写的函数是这样的:
public String getTileString(int x,int y){ char s=table1.charAt(x+y*9); if(s=='0')return ""; return String.valueOf(s); }
但是!老师教的是先转换成int型数组,然后再判断int型的0,然后再返回String类型:
public Game(){ getPuzzleString(table1);}private int[] shudu=new int[9*9];public int getTile(int x,int y){ return shudu[x+9*y];}public String getTileString(int x,int y){ int c=getTile(x,y); if(c==0)return ""; else return String.valueOf(c);}public void getPuzzleString(String str){ for(int i=0;i<str.length();i++){ shudu[i]=str.charAt(i)-'0'; }}
这种跳去的好烦,就把我的当做简化版吧,毕竟老师这样写肯定有他的道理。
然后就是在onDraw方法里面画字符了:
//region 初始化表格内的数据numPaint.setColor(Color.BLACK);numPaint.setStyle(Paint.Style.STROKE);numPaint.setTextSize((float) (0.75*height));numPaint.setTextAlign(Paint.Align.CENTER);Paint.FontMetrics fm=numPaint.getFontMetrics();float x=width/2f;float y=height/2+(-(fm.ascent+fm.descent))/2;for(int i=0;i<9;i++){ for(int j=0;j<9;j++){ canvas.drawText(game.getTileString(i,j),i*width+x,j*height+y,numPaint); }}//endregion
这里的Paint.FontMetrices是不是看不大懂呢,这个类是专门对字体进行设置的,
图片引用自
值得注意的是,baseline是基准线,而他的y轴正方向是向下的,所以ascent的值一般都是负值
0 0
- 数独游戏--初始化表中数据
- 数独游戏(1)之绘制九宫格,并初始化数据
- 数独游戏求解
- 数独游戏
- 数独游戏
- 数独游戏破解
- 数独游戏程序
- 数独游戏
- 数独游戏
- 数独游戏
- 数独游戏
- 数独游戏新篇章
- 数独游戏
- 数独游戏
- 数独游戏
- 数独游戏开发
- 数独游戏
- 数独游戏
- 1024程序员节继北京后南京多地惊现“快闪寻人”
- static有趣的小demo
- li标签横排后如何去掉空白
- 个人总结java常用面试题
- win10 telnet
- 数独游戏--初始化表中数据
- coreseek搜索中文结果结果为空的解决
- Linux基础学习笔记(Linux权限管理之基本权限)
- NYOJ-15 括号匹配(二)
- 7A按要求输入
- NIC身份验证服务器简介
- 只能输入数字,字母,横线js
- 嵌套循环跳转技巧-转
- linux 下文件的解压