From 130de11d866f7d742e7a1ecc18fbd4155d2d74cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9D=9A=E6=8C=81?= <2352009235@qq.com> Date: Tue, 6 Jul 2021 09:20:37 +0000 Subject: [PATCH] update EducationSystem/entry/src/main/java/com/huawei/codelab/slice/PictureGameAbilitySlice.java. --- .../slice/PictureGameAbilitySlice.java | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/EducationSystem/entry/src/main/java/com/huawei/codelab/slice/PictureGameAbilitySlice.java b/EducationSystem/entry/src/main/java/com/huawei/codelab/slice/PictureGameAbilitySlice.java index 54b2b4d8..a8bbfbc8 100644 --- a/EducationSystem/entry/src/main/java/com/huawei/codelab/slice/PictureGameAbilitySlice.java +++ b/EducationSystem/entry/src/main/java/com/huawei/codelab/slice/PictureGameAbilitySlice.java @@ -63,6 +63,8 @@ import java.util.List; public class PictureGameAbilitySlice extends AbilitySlice { private static final String TAG = CommonData.TAG + PictureGameAbilitySlice.class.getSimpleName(); + private static final int DIVIDED_NUM2 = 2; + private static final int PERMISSION_CODE = 20201203; private static final int DELAY_TIME = 10; @@ -452,10 +454,36 @@ public class PictureGameAbilitySlice extends AbilitySlice { imageIndexs[rand1] = imageIndexs[rand2]; imageIndexs[rand2] = imageTemp; } - for (int i = 0; i < imageCount; i++) { - imagePositions[i].setPixelMap(images[imageIndexs[i]]); + + if (inverseNumber(imageIndexs) % DIVIDED_NUM2 == 0) { + for (int i = 0; i < imageCount; i++) { + imagePositions[i].setPixelMap(images[imageIndexs[i]]); + } + LogUtil.info(TAG, "pictureRandom end"); + } else { + LogUtil.info(TAG, "pictureRandom failed"); + pictureRandom(); + } + } + + /** + * 计算逆序数,保证游戏有解 + * + * @param imageArray int[] + * @return int + */ + private int inverseNumber(int[] imageArray) { + int count = 0; + for (int i = 0; i <= imageArray.length - 1; i++) { + for (int j = i + 1; j <= imageArray.length - 1; j++) { + int a = imageArray[i]; + int b = imageArray[j]; + if (a > b) { + count++; + } + } } - LogUtil.info(TAG, "pictureRandom end"); + return count; } /** -- Gitee