MIDP1.0小游戏入门-五子棋1.1

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

作者: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);

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航