ฉันกำลังทำงานกับโปรแกรมที่ควรสร้างสัญญาณรบกวนแบบสุ่มบนหน้าจอโดยยึดตาม 'พิกัด' ของพิกเซล พิกัดควรมีสีเดียวกันทุกครั้งที่คุณเริ่มโปรแกรมใหม่ อย่างไรก็ตามการใช้ประโยชน์ของ Java การสุ่มผลลัพธ์ที่ฉันได้รับนั้นไม่ได้สุ่มอย่างที่ฉันต้องการ:
ฉันคิดว่าถ้าฉันใช้พิกัดร่วม (เช่นเดียวกับจำนวนเต็มหนึ่งตัวที่เกิดขึ้นจากพิกัดทั้งสองข้างถัดจากแต่ละอื่น ๆ ) แต่ละพิกัดจะมีจำนวนที่แตกต่างกัน โดยการใช้หมายเลขนั้นเป็นเมล็ดฉันคาดว่าจะได้รับตัวเลขสุ่มที่แตกต่างกันสำหรับแต่ละพิกัดเพื่อใช้สำหรับค่า rgb ของพิกัดนั้น
นี่คือรหัสที่ฉันใช้:
public class Generate {
static Random Random;
public static int TileColor(int x, int y){
Random = new Random(Integer.valueOf(Integer.toString(x)+Integer.toString(y)));
int b = 1 + Random.nextInt(50);
int g = 1 + Random.nextInt(50);
int r = 1 + Random.nextInt(50);
int color = -Color.rgb888(r, g, b);
return color;
}
}
รูปแบบที่โปรแกรมสร้างขึ้นเนื่องจากฟังก์ชั่น Random ของ java ทำงานได้หรือฉันกำลังทำสิ่งผิดปกติและฉันควรลองวิธีอื่นหรือไม่?
อัปเดต: ฉันพยายามกำจัดปัญหาที่เกิดขึ้นกับการต่อข้อมูลโดยใช้รหัสต่อไปนี้:
public static int TileColor(int x, int y){
Randomy = new Random(y);
Randomx = new Random(x);
Random = new Random(Integer.valueOf(Integer.toString(Randomx.nextInt(1234))+Integer.toString(Randomy.nextInt(1234))));
int b = 1 + Random.nextInt(100);
int g = 1 + Random.nextInt(100);
int r = 1 + Random.nextInt(100);
int color = -Color.rgb888(r, g, b);
return color;
}
อย่างใดนี้ยังให้ภาพสุ่ม (ในความคิดของฉัน) เพียงพอ:
อย่างไรก็ตามรหัสนี้มีขนาดต่อสามครั้งต่อพิกเซล แม้ว่าตอนนี้จะไม่เป็นปัญหาสำหรับฉันในตอนนี้ฉันจะพิจารณาเปลี่ยนรหัสนี้ในกรณีที่ฉันต้องการ preformance ที่ดีกว่าในภายหลัง