解决方案 »
- Android如何设置Text的属性为:如 abc³ 等有上下标的文字
- 求助,sqlite问题
- 请问安卓开发中的onSaveInstanceState方法的调用时机的理解
- 大家好,为为什么我的安卓手机无法连接ibss的无线网卡
- widget背景透明度设置
- android反编译还原找不到逻辑.帮还原下
- 安卓问题
- java如何生成jar包,我不需要main函数的,我只是生成架包调用而已
- 安桌链接SQLSERVER利用.NET做webservice
- view切换问题
- Android 子线程更新UI问题
- C++服务器 socket传图片给android客户端,用BitmapFactory.decodeByteArray解析不出来?
判断逻辑可以再优化 /**
*
* @param w 横向位置,从0开始
* @param h 纵向位置,从0开始
* @return 返回上下左右包括自己共9个位置,有多少个与自己相同的数字
*/
public int getNum(int w,int h){
if(w<0||h<0||w>=a.length||h>=a[a.length-1].length){
return -1;//输入的数字不合法
}
int num=0;//总数
int find=a[w][h];//获取查询点
//8次查询,首先是上一行
if(w-1>=0&&h-1>=0&&find==a[w-1][h-1]){//左上角
num++;
}
if(h-1>0&&find==a[w][h-1]){//上方
num++;
}
if(w+1<a.length&&h-1>0&&find==a[w+1][h-1]){
num++;
}
//中间一行
if(w-1>=0&&find==a[w-1][h]){
num++;
}
if(w+1<a.length&&find==a[w+1][h]){
num++;
}
//下一行
if(w-1>=0&&h+1<a[a.length-1].length&&find==a[w-1][h+1]){//左上角
num++;
}
if(h+1<a[a.length-1].length&&find==a[w][h+1]){//上方
num++;
}
if(w+1<a.length&&h+1<a[a.length-1].length&&find==a[w+1][h+1]){
num++;
}
return num+1;//+1是等算上自己
}