// 随机打乱字符顺序 for (int i = sb.length() - 1; i > 0; i--) { int j = random.nextInt(i + 1); char temp = sb.charAt(i); sb.setCharAt(i, sb.charAt(j)); sb.setCharAt(j, temp); } label.setText(sb.toString()); startButton.setEnabled(false); submitButton.setEnabled(true); textField.setText(""); textField.requestFocus(); startTime = System.currentTimeMillis(); } private void checkAnswer() { long endTime = System.currentTimeMillis();这段代码中时间处理的相关知识点讲解
时间: 2024-04-24 20:21:59 浏览: 113
这段代码中包含了两个时间处理的知识点:
1. 计算程序运行时间:在 startGame() 方法中,程序调用了 System.currentTimeMillis() 方法获取当前时间,这个时间会被记录为游戏开始时间 startTime。在 checkAnswer() 方法中,同样使用 System.currentTimeMillis() 方法获取当前时间,这个时间会被记录为游戏结束时间 endTime。通过计算 endTime - startTime,就可以得到程序运行的时间,这个时间可以用来计算玩家完成游戏所花费的时间。
2. 生成随机数:在 startGame() 方法中,程序调用了 Random 类的 nextInt() 方法生成随机数。nextInt() 方法可以接受一个整数作为参数,表示生成的随机数的范围。在这个代码中,nextInt(i + 1) 表示生成一个小于等于 i 的随机整数。这个随机整数会被用来交换字符顺序,从而实现打乱字符顺序的效果。
相关问题
public static int[] Disorder(int[] arr) { int[] newArr = new int[20]; // for (int i = 0; i < newArr.length; i++) { // newArr[i] = arr[i]; // } newArr = Arrays.copyOf(arr,20); Random r = new Random(); int temp; for (int i = newArr.length - 1; i > 0; i--) { int j = r.nextInt(i); temp = newArr[i]; newArr[i] = newArr[j]; newArr[j] = temp; } return newArr; }实现了什么功能
这个方法名为Disorder,可以翻译为“打乱”的意思。该方法的功能是将传入的整型数组arr中的元素打乱,并返回一个新的长度为20的整型数组。方法中首先使用Arrays.copyOf方法将传入的数组arr拷贝到一个新数组newArr中,然后使用Random类生成一个随机数,将newArr中的元素进行随机打乱,最后返回打乱后的newArr数组。
public int[][] getMap(){ return map; } public int[][] getResetMap(){//获取再次打乱后的地图信息 ArrayList<Integer> list = new ArrayList<Integer>();//list用来存储原先的地图信息 for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ list.add(map[i][j]); map[i][j]=-1; } } //将原先地图上剩余的图片打乱 while(!list.isEmpty()){ int index = (int) (Math.random()*list.size());///从list中随机取一个图片ID,并将其添加到数组中,再从list中删除掉它 boolean flag = false; while(!flag){ int i = (int) (Math.random()*n);//获取随机的地图行列 int j = (int) (Math.random()*n); if(map[i][j]==-1){//如果该位置无图片 map[i][j] = list.get(index); list.remove(index); flag = true; } } } 详细解释一下这段代码
这段代码是MapUtil类中的两个方法之一,用于获取再次打乱后的地图信息。具体实现的步骤如下:
1. 创建一个ArrayList对象list,用来存储原先的地图信息。
2. 通过两个for循环遍历二维数组map中的每个元素,将其添加到list中,并将map中的元素重置为-1,表示该位置没有图片。
3. 使用while循环,从list中随机取出一个图片ID,将其添加到map中。如果该位置已经有图片,则需要重新随机选择一个位置,直到找到一个空位置为止。每次将一个图片ID添加到map中后,都需要将其从list中删除。
4. 循环执行步骤3,直到list中的所有图片ID都被添加到map中。
5. 返回打乱后的地图信息,即二维数组map。
通过这个方法,可以实现对地图布局的再次打乱,增加游戏的难度和趣味性。需要注意的是,在实际开发中,还需要实现其他功能,如点击消除、判断是否可以消除等等。
阅读全文