আমি বর্তমানে এমন একটি প্রোগ্রামে কাজ করছি যা পিক্সেলের 'স্থানাঙ্ক' এর উপর ভিত্তি করে কোনও স্ক্রিনে এলোমেলো শব্দ উত্পন্ন করতে পারে। প্রতিবার আপনি প্রোগ্রামটি পুনরায় চালু করার সময় স্থানাঙ্কগুলির একই রঙ হওয়া উচিত। তবে জাভাটির ব্যবহার.র্যান্ডম ব্যবহার করে আমি যে ফলাফল পেয়েছি তা আমার পছন্দ মতো এলোমেলো নয়:
আমি ভেবেছিলাম যে আমি যদি সম্মিলিত স্থানাঙ্কগুলি ব্যবহার করি (যেমন প্রতিটি সংস্থার উভয় স্থানাঙ্ক থেকে গঠিত একটি পূর্ণসংখ্যার মধ্যে) প্রতিটি স্থানাঙ্কের আলাদা আলাদা সংখ্যা থাকবে। সেই নম্বরটি বীজ হিসাবে ব্যবহার করে আমি প্রত্যাশিত ছিলাম যে স্থানাঙ্কের আরজিবি মানের জন্য ব্যবহারের জন্য প্রতিটি স্থানাঙ্কের জন্য আলাদা আলাদা এলোমেলো সংখ্যা পাব।
এই কোডটি আমি ব্যবহার করেছি:
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;
}
}
জাভা র্যান্ডম ফাংশনটি যেভাবে কাজ করে সে কারণে প্রোগ্রামটি তৈরি করে বা আমি কিছু ভুল করছি এবং আমার কি অন্য পদ্ধতির চেষ্টা করা উচিত?
আপডেট: আমি এখন নিম্নলিখিত কোডটি ব্যবহার করে কনটেনটেশনের চারপাশের সমস্যাগুলি থেকে মুক্তি পাওয়ার চেষ্টা করেছি:
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;
}
একরকম, এটি একটি (আমার মতে) পর্যাপ্ত এলোমেলো চিত্রও সরবরাহ করেছে:
এই কোডটি অবশ্য প্রতি পিক্সেলটিতে তিনবার পুনরায় পুনরায় সাজানো। যদিও এই মুহুর্তে এটি আমার পক্ষে সমস্যা নয় তবে পরে আমার আরও ভাল পারফরম্যান্সের প্রয়োজন হলে আমি এই কোডটি পরিবর্তন করার বিষয়টি বিবেচনা করি।