যদিও দাবা বোর্ডের মতো সাধারণ কোনও কিছুর জন্য এই দৃষ্টিভঙ্গিটি সত্যিই প্রয়োজনীয় নয়, যখন আমি দৃশ্যের সাথে সম্পর্কিত কিছু রেন্ডার করার জন্য একটি মার্জিত উপায়ের কথা ভাবি, তখনই আমি রেন্ডার ভিউটিকে যতটা সম্ভব সম্ভব হিসাবে সহজতর করতে চাই। উদাহরণস্বরূপ, ধরুন আপনি সিদ্ধান্ত নিয়েছেন যে আপনি প্রতিটি সারিতে কালো এবং সাদা বিকল্প করতে চান, তবে প্রতিটি কলামই নয়। এখনও অবধি উত্তরগুলিতে ব্যবহৃত ওয়ান-লাইনারগুলি আবার লিখতে হবে।
যদি আমি এটির সাথে যতদূর যেতে পারি এবং দাবা বোর্ডে যতটা সম্ভব প্যাটার্নটি পুনরায় ডিজাইন করা সহজ করে তুলি তবে আমি এখানে যা করব:
1) আমি এমন একটি ফাইল তৈরি করব যা দাবা বোর্ডের প্রতিটি স্কোয়ারের রঙটি নির্দেশ করে।
উদাহরণস্বরূপ, আমি এমন একটি ফাইল তৈরি করতে পারলাম chess_board_pattern.config
যা দেখে মনে হচ্ছে:
bwbwbwbw
wbwbwbwb
bwbwbwbw
wbwbwbwb
bwbwbwbw
wbwbwbwb
bwbwbwbw
wbwbwbwb
2) আমি একটি ক্লাস / উপাদান / যা এই ফাইলটি পড়তে পারে এবং বোর্ডের প্যাটার্নকে উপস্থাপন করে এমন কোনও ধরণের অবজেক্ট তৈরি করতে পারে তা লিখব:
public class BoardPattern {
private Color[][] pattern;
public BoardPattern(File patternFile)
{
pattern = new Color[8][8];
//Parse the file and fill in the values of pattern
}
public Color[][] getPattern {
return pattern;
}
}
3) আমি তখন সেই ক্লাসটি ফাংশনে ব্যবহার করব যা বোর্ডটি অঙ্কন করে।
File patternFile = new File("chess_board_pattern.ini");
Color[][] pattern = new BoardPattern(patternFile).getPattern();
ChessBoardDrawable chessBoard = new ChessBoardDrawable();
for(int row = 0; row < 8; row++) {
for(int column; column < 8; column++) {
chessBoard.drawSquare(row, column, Color[row][column]);
}
}
আবার এটি একটি দাবা বোর্ডের জন্য প্রয়োজনীয়ের চেয়ে অনেক বেশি শক্ত। আমি সাধারণভাবে মনে করি, যদিও আরও জটিল প্রকল্পগুলিতে কাজ করার সময়, কোডটি লেখার পরিবর্তে এর পরে সাধারণ সমাধান করা ভাল যা পরে পরিবর্তন করা শক্ত।