แม้ว่าวิธีการนี้ไม่จำเป็นสำหรับบางสิ่งที่ง่ายเหมือนกระดานหมากรุก แต่เมื่อฉันนึกถึงวิธีที่สวยงามในการแสดงสิ่งที่เกี่ยวข้องกับมุมมองฉันต้องการทำให้มันง่ายที่สุดเท่าที่จะทำได้เพื่อเปลี่ยนมุมมองที่แสดงผลให้ได้มากที่สุด ตัวอย่างเช่นสมมติว่าคุณตัดสินใจว่าคุณต้องการสลับขาวดำในแต่ละแถว แต่ไม่ใช่แต่ละคอลัมน์ ตอร์ปิโดที่ใช้ในคำตอบจนถึงจะต้องมีการเขียนใหม่
ถ้าฉันจะไปให้ไกลที่สุดเท่าที่จะทำได้และทำให้มันง่ายที่จะออกแบบรูปแบบบนกระดานหมากรุกให้มากที่สุดนี่คือสิ่งที่ฉันจะทำ:
1) ฉันจะสร้างไฟล์ที่ระบุสีแต่ละตารางในกระดานหมากรุก
ตัวอย่างเช่นฉันสามารถสร้างไฟล์chess_board_pattern.config
ที่มีลักษณะดังนี้:
bwbwbwbw
wbwbwbwb
bwbwbwbw
wbwbwbwb
bwbwbwbw
wbwbwbwb
bwbwbwbw
wbwbwbwb
2) ฉันจะเขียน class / component / อะไรก็ตามที่สามารถอ่านไฟล์นี้และสร้างวัตถุบางชนิดที่แสดงถึงรูปแบบของบอร์ด:
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]);
}
}
นี่เป็นเรื่องยากกว่าที่จำเป็นสำหรับกระดานหมากรุก โดยทั่วไปฉันคิดว่าโดยทั่วไปเมื่อทำงานในโครงการที่ซับซ้อนมากขึ้นการหาวิธีแก้ปัญหาแบบทั่วไปเช่นนี้แทนที่จะเขียนโค้ดที่ยากที่จะเปลี่ยนในภายหลัง