gpt4 book ai didi

java - 随机字符和随机颜色生成器

转载 作者:行者123 更新时间:2023-12-01 21:59:42 26 4
gpt4 key购买 nike

public static char randomLetter() {
Random r = new Random();
char randomChar = (char) (97 + r.nextInt(26));
return randomChar;
}

public static Color randomColor(){
Random rand = new Random();
float r = rand.nextFloat();
float g = rand.nextFloat();
float b = rand.nextFloat();
Color randomColor = new Color(r, g, b);
return randomColor;
}

我有这两种方法。一个返回字母表中的随机字母,另一个返回随机颜色。如何编辑这些方法,以便 randomLetter() 只返回一个字母一次,而不返回两个相同的字母?

如何使我的 randomColor() 仅返回 REDYELLOWGREEN 之间的随机颜色,或蓝色

最佳答案

随机选择可能包含重复项。如果您不想重复,那么您需要的是随机播放。

这是执行此操作的一种方法。

package com.ggl.testing;

import java.awt.Color;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ShuffleTest {

private static boolean shuffleLetters = true;
private static boolean shuffleColors = true;

private static int shuffleLetterIndex = 0;
private static int shuffleColorIndex = 0;

private static List<Character> letters = new ArrayList<>();
private static List<Color> colors = new ArrayList<>();

public static void main(String[] args) {
System.out.println(shuffleLetter());
System.out.println(shuffleLetter());
System.out.println(shuffleLetter());

System.out.println(shuffleColor());
System.out.println(shuffleColor());
System.out.println(shuffleColor());
}

public static char shuffleLetter() {
if (shuffleLetters) {
int start = (int) 'a';
int end = (int) 'z';
for (int i = start; i <= end; i++) {
letters.add(Character.valueOf((char) i));
}
Collections.shuffle(letters);
shuffleLetters = false;
}

return letters.get(shuffleLetterIndex++);
}

public static Color shuffleColor() {
if (shuffleColors) {
colors.add(Color.RED);
colors.add(Color.YELLOW);
colors.add(Color.GREEN);
colors.add(Color.BLUE);
Collections.shuffle(colors);
shuffleColors = false;
}

return colors.get(shuffleColorIndex++);
}

}

关于java - 随机字符和随机颜色生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33786482/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com