我开始制作一款跳棋游戏,并且我已经获得了所有图形和绘制的棋盘。 在我开始创作这些作品之前,我想知道怎样才能解决棋子运动的逻辑问题。我应该制作一个每个方格的桌子,检测它是否有棋子,如果是,是什么颜色? (即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 –
你是问有关的算法为计算机挑选移动,或你是否在寻找逻辑来追踪两名球员(可能是人类)球员的位置? –