हालांकि यह दृष्टिकोण शतरंज बोर्ड के रूप में सरल रूप से कुछ के लिए आवश्यक नहीं है, जब मैं दृश्य से संबंधित कुछ को प्रस्तुत करने के लिए एक सुरुचिपूर्ण तरीके के बारे में सोचता हूं, तो मैं इसे जितना संभव हो सके उतने दृश्य को बदलना संभव बनाना चाहता हूं। उदाहरण के लिए, मान लें कि आपने तय किया था कि आप प्रत्येक पंक्ति में ब्लैक एंड व्हाइट को वैकल्पिक करना चाहते हैं, लेकिन प्रत्येक कॉलम को नहीं। अब तक के जवाबों में इस्तेमाल किए गए वन-लाइनर्स को फिर से लिखना होगा।
अगर मुझे इससे दूर जाना था और जितना संभव हो सके शतरंज बोर्ड पर पैटर्न को फिर से डिज़ाइन करना आसान था, तो यहां मैं यह करूंगा:
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]);
}
}
एक शतरंज बोर्ड के लिए फिर से यह बहुत कठिन है। मुझे लगता है कि सामान्य रूप से, हालांकि, अधिक जटिल परियोजनाओं पर काम करते समय, इस तरह के सामान्यीकृत समाधानों के साथ आना सबसे अच्छा होता है जैसे कि कोड लिखना बाद में बदलना मुश्किल होता है।