private List<Check> getEmptyChecks() { List<Check> checkList = new ArrayList<>(); for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { if (checks[i][j].value == 0) { checkList.add(checks[i][j]); } } } return checkList; }

时间: 2024-02-14 19:36:01 浏览: 17
这是一个Java方法,返回一个`Check`对象列表。该方法名为`getEmptyChecks`,没有参数。 方法中首先创建了一个空的`Check`对象列表`checkList`。然后通过两个for循环遍历一个二维数组`checks`,该数组的大小为4x4。如果`checks[i][j]`的value值为0(即该位置上的方块为空),则将该`Check`对象添加到`checkList`中。 最后返回`checkList`对象列表。该方法的作用是获取在游戏中还未被填充数字的方块列表。
相关问题

List<Check> checkList = new ArrayList<>();

这是一个Java代码段,它创建了一个ArrayList对象,并将其赋值给一个名为checkList的List变量。List是Java集合框架中的一个接口,它表示一组有序的元素,ArrayList是List接口的一个实现类,它使用数组来存储元素,提供了快速随机访问和动态调整大小的能力。 在这个例子中,checkList是一个ArrayList对象,它的元素类型是Check。Check可能是一个自定义的Java类或接口,表示某种检查或审核。这个ArrayList对象可以用于存储多个Check对象,并支持添加、删除、修改和查询操作。

private void createCheck() { List<Check> list = getEmptyChecks(); if (!list.isEmpty() && isadd) { Random random = new Random(); int index = random.nextInt(list.size()); Check check = list.get(index); // 2, 4出现概率3:1 int randomValue = random.nextInt(4); check.value = ( randomValue % 3 == 0 || randomValue % 3 == 1) ? 2 : 4;//只有[0,4)中的2才能生成4 isadd = false;//isadd被设置为false,表示不允许生成4。因为只有在初始值为2的方块合并成4的时候,才会允许生成4,否则只能生成2 } } // 获取空白方格 private List<Check> getEmptyChecks() { List<Check> checkList = new ArrayList<>(); for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { if (checks[i][j].value == 0) { checkList.add(checks[i][j]); } } } return checkList; }

这段代码是游戏中生成新方块的函数createCheck(),其中包括以下几个步骤: 1. 调用getEmptyChecks()函数获取当前空白的方块列表; 2. 如果空白方块列表非空,且标志位isadd为true,表示可以继续生成新方块; 3. 使用Java中的Random类生成一个随机数,用于在空白方块列表中随机选择一个位置生成新的方块; 4. 再次使用Random类生成一个随机数,用于确定新方块的值,其中2和4的出现概率为3:1; 5. 将新方块的值赋给随机选择的空白方块,并将标志位isadd设置为false,表示不允许生成值为4的方块,只有在两个值为2的方块合并成4时才允许生成值为4的方块。 除此之外,还有一个函数getEmptyChecks(),用于获取当前空白的方块列表,它遍历整个二维数组,将值为0的方块加入到一个List中并返回。

相关推荐

public Dictionary<string, List<BasicEntity>> ValidateProcess(string excelFile) { var readExcelResp = _excelReader.ReadExcel(excelFile); foreach (var keyValuePair in readExcelResp) { foreach (var basicEntity in keyValuePair.Value) { var validationResult = ExecuteValidate(basicEntity); if (!validationResult.IsValid) { basicEntity.MigrationStatus = MigrationStatus.PreValidationFailed; foreach (var validationResultError in validationResult.Errors) { excelErrorLogService.AddErrorLog(basicEntity.MigrationRowNum.ToString(), validationResultError.ErrorMessage, keyValuePair.Key); } } } if (keyValuePair.Value.Any()) { var verifyDuplicate = VerifyDuplicate(keyValuePair.Value,keyValuePair.Key); if (verifyDuplicate.Any()) { var type = typeof(IValidator<>).MakeGenericType(keyValuePair.Value[0].GetType()); var validator = provider.GetService(type) ; if (validator != null) { var methodInfo = validator.GetType().GetMethod("DuplicateHandler", new[] {verifyDuplicate.GetType() }); methodInfo?.Invoke(validator, new object?[] { verifyDuplicate }); } } } } return readExcelResp; } public List<BasicEntity> VerifyDuplicate(List<BasicEntity> checkList, String sheetName) { var verifySet = new HashSet<string>(); var sameList = new List<BasicEntity>(); var identity = checkList[0].GetIdentity(); if (!string.IsNullOrEmpty(identity)) { var fields = identity.Split(""); foreach (var basicEntity in checkList) { List<string> fieldsValue = new(); foreach (var field in fields) { fieldsValue.Add(basicEntity.GetType() .GetProperty(field, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance).GetValue(basicEntity) ?.ToString()); } var values = string.Join("", fieldsValue); if (verifySet.Contains(values)) { basicEntity.MigrationStatus = MigrationStatus.PreValidationFailed; sameList.Add(basicEntity); _excelErrorLogService.AddErrorLog(basicEntity.MigrationRowNum.ToString(), $"Fields {identity} values repetition", sheetName); } else { verifySet.Add(values); } } } return sameList; } 优化这段代码

最新推荐

recommend-type

芯片Design_Review_Checklist

芯片设计3个阶段的checklist 1. design kick-off 2. RTL release 3. Tape out
recommend-type

R16 checklist(原理图部分)_V1_0.pdf

全志 R16 checklist(原理图部分)_V1_0.pdf,R16 硬件设计检查表,版本V1.0,
recommend-type

IC设计工程师必备checklist(英文版)

集成电路、芯片、IC设计或IC验证工程师checklist必备工作清单(英文版)
recommend-type

Vue动态生成el-checkbox点击无法赋值的解决方法

前言 最近遇到一个问题,在一个页面需要动态渲染页面内的表单,其中包括 checkbox 表单类型,并且使用 Element ...v-for 循环 checkList,得到 key,然后直接 v-model=“form.key” 动态生成 form 里面的 key &lt;el-
recommend-type

华为硬件pcb设计checklist.doc

华为硬件pcb设计checklist,包括布局、布线、出加工文件等内容。附录(含规范性要求):元器件间距、布线最小间距、丝印字符大小。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

HSV转为RGB的计算公式

HSV (Hue, Saturation, Value) 和 RGB (Red, Green, Blue) 是两种表示颜色的方式。下面是将 HSV 转换为 RGB 的计算公式: 1. 将 HSV 中的 S 和 V 值除以 100,得到范围在 0~1 之间的值。 2. 计算色相 H 在 RGB 中的值。如果 H 的范围在 0~60 或者 300~360 之间,则 R = V,G = (H/60)×V,B = 0。如果 H 的范围在 60~120 之间,则 R = ((120-H)/60)×V,G = V,B = 0。如果 H 的范围在 120~180 之间,则 R = 0,G = V,B =
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。