MIDP1.0小游戏入门-五子棋1.1
2008-01-05 08:54:26 来源:WEB开发网核心提示:作者:yinowl2005年1月1.1版注:完善了游戏输赢的判定,由于考虑的比较匆忙,MIDP1.0小游戏入门-五子棋1.1,没有非常仔细地考量算法的优劣程度,目的主要对游戏的输赢进行一种实现,变量归1(应为当前棋子肯定是当前下棋方下完的棋子)并进行下一个方向或角度,在判定是否是当前方时,嵌入到程序中,给大家做为一个参
作者:yinowl
2005年1月
1.1版注:完善了游戏输赢的判定,由于考虑的比较匆忙,没有非常仔细地考量算法的优劣程度,目的主要对游戏的输赢进行一种实现,嵌入到程序中,给大家做为一个参考,由于其他内容和1.0版完全相同,我就把输赢实现这一节提到最前面,后面再补上所有的内容。
游戏输赢
最后要说的是判定游戏的输赢。我的思路是,每次在玩家着棋(按下5)时,判定棋局的输赢,然后用一个 Alert 显示哪一方赢了以及当前的比分,返回后开始新的一局。判定的逻辑是,在当前所下的棋子的0/180度、90/270度、45/225度、135/315度四个方向上分别往两头按照由近至远的顺序判定各5个棋子是否是当前下棋方的棋子,假如是则累加到一个变量上,假如在到达5之前出现“否”的情况,则中止在这一方向或这一角度的判定,变量归1(应为当前棋子肯定是当前下棋方下完的棋子)并进行下一个方向或角度。在判定是否是当前方时,用当前 isPlayer1 变量和棋子对象的 isPlayer1 变量进行比交。源代码如下:
int player1win,player2win; PRotected synchronized void keyPressed(int keyCode) { ... else if (action == Canvas.FIRE) { if(chesses[selectedY][selectedX]==null){ chesses[selectedY][selectedX]=new Chesses(this.isPlayer1); if(checkWin()){ String winner; if(isPlayer1){ winner="白方胜利"; player1win++; } else{ winner="红方胜利"; player2win++; } try{ Thread.sleep(3000);
更多精彩
赞助商链接