我開始製作一款跳棋遊戲,並且我已經獲得了所有圖形和繪製的棋盤。 在我開始創作這些作品之前,我想知道怎樣才能解決棋子運動的邏輯問題。我應該製作一個每個方格的桌子,檢測它是否有棋子,如果是,是什麼顏色? (即0 =空,1 =紅,2 =黑),或者你們對這個問題有更好的想法嗎?製作棋子游戲的邏輯?
0
A
回答
6
通過使用面向對象的原則,我會去的東西,如:
enum Side {
BLACK,
RED;
}
class Position {
int x, int y;
}
class Piece
{
Position position; // position inside the board
Side side; // which side the piece is
}
class Board
{
Piece[][] board = new Piece[8][8];
boolean isMoveLegal(Piece p, Position newPosition) {
...
}
void doMove(Piece p, Position newPosition) {
if (isMoveLegal(p, newPosition) {
// game logic of movement and eating other pieces if needed
}
}
}
一個比較幼稚的做法可以用一個簡單的地圖:
class Position {
int x, int y;
}
class Piece
{
Side side; // which side the piece is
}
class Board
{
HashMap<Piece, Position> board;
boolean isMoveLegal(Piece p, Position newPosition) {
...
}
void doMove(Piece p, Position newPosition) {
if (isMoveLegal(p, newPosition) {
// game logic of movement and eating other pieces if needed
}
}
}
這可以使用,以避免存儲一塊內部的當前位置。
1
您應該製作一個二維數組來表示電路板。
int[][] board = new int[8][8];
相關問題
- 1. 「票務遊戲」棋盤遊戲邏輯灰色路線
- 2. 遊戲製作系統邏輯?
- 3. 在Java中製作象棋遊戲,我想移動棋子
- 4. SpriteKit遊戲邏輯
- 5. Hang子棋pygame遊戲機制問題
- 6. 計算棋盤遊戲領土背後的邏輯(GO)
- 7. Java跳棋遊戲移動棋子
- 8. 填字遊戲的邏輯
- 9. spawer的遊戲邏輯
- 10. 遊戲的超時邏輯
- 11. Node.js的遊戲邏輯
- 12. C#骰子游戲邏輯錯誤
- 13. 井字遊戲邏輯不起作用
- 14. 遊戲主循環邏輯
- 15. 遊戲:球反彈邏輯
- 16. 遊戲跳轉邏輯
- 17. 賓果遊戲邏輯
- 18. Java棋盤遊戲
- 19. android棋盤遊戲
- 20. 如何在回合制遊戲中存儲遊戲棋子的路徑?
- 21. 需要我的Android遊戲的邏輯
- 22. 在Android遊戲中滑動棋子
- 23. 製作hang子手遊戲
- 24. ActionScript 3中的遊戲邏輯和遊戲循環
- 25. 井字棋遊戲的C++
- 26. 棋盤遊戲的Java
- 27. SDL中的跳棋遊戲
- 28. 生命遊戲的邏輯錯誤(C++)
- 29. Nim的遊戲邏輯錯誤
- 30. Unity中的遊戲邏輯編程
可能更好的http://gamedev.stackexchange.com – Markus
參見本: - http://forums.whirlpool.net.au/archive/1147465 –
你是問有關的算法爲計算機挑選移動,或你是否在尋找邏輯來追蹤兩名球員(可能是人類)球員的位置? –