📄 arraylogic.java
字号:
package com.fanpai.logic;
import java.util.Random;
import com.fanpai.data.DataBean;
class ArrayLogic implements TCLogic {
//牌的种类总数
private int numtypes = 5;
//数据方阵
private int[] area = null;
//猜对的次数
private int hitpoint = 0;
//随机类
private Random rd = new Random();
/**
* 初始化逻辑
* @param inputtype int
*/
public void init(int inputtype) {
this.numtypes = inputtype;
//初始化方针
//方阵大小是种类数的2倍
this.area = new int[2 * this.numtypes];
//将种类的两倍随机放入方针中
for (int i = 1; i <= this.numtypes; i++) {
this.randputtoarray(i);
this.randputtoarray(i);
}
//清空猜对计数器
this.hitpoint = 0;
}
/**
* 将某个数据随机放入数组
*/
private void randputtoarray(int input) {
//如果方阵不存在,返回
if (this.area == null) {
return;
}
//取得一个随机值访问数组
int tindex = 0;
while (true) {
tindex = Math.abs(this.rd.nextInt(2 * this.numtypes));
if (area[tindex] == 0) {
area[tindex] = input;
//退出
break;
}
}
}
/**
* 返回数列的长度
* @return int
*/
public int length() {
return this.area.length;
}
/**
* 取得第n个值
* @param index int
*/
public int get(int index) {
return this.area[index];
}
/**
* 判断
* @param input DataBean 包含2次点击数据的bean
* @return boolean
*/
public boolean judge(DataBean input) {
boolean result = false;
//如果为空直接返回
if(input == null)
return false;
//如果有一个没有值直接返回假
if(input.getFirst() == -1 || input.getSecond() == -1)
return false;
//判断两个数据是否一致
result = this.area[input.getFirst()] == this.area[input.getSecond()];
//如果一致,命中数增加
if (result) {
this.hitpoint++;
}
return result;
}
/**
* 判断游戏是否结束
* @return boolean
*/
public boolean finish() {
boolean result = this.hitpoint == this.numtypes;
return result;
}
public int getNumtypes() {
return numtypes;
}
public int[] getArea() {
return area;
}
public int getHitpoint() {
return hitpoint;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -