📄 frmmainmenu.java
字号:
/* file name: GameMainMIDlet.java
* Describe :this function modle is a main application
*/
package j2me.demo;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import java.util.*;
public class frmMainMenu extends Canvas
{
static final int chessspace=6; //棋格子的宽度和高度
static final int linespace=108;//棋盘线的宽度和高度
static final int top=10; // 棋盘的上边距
static final int left=10; // 棋盘的左边距离
static final int blackchess=-1; // 黑色的棋子
static final int whitechess=1; // 白色的棋子
static final int nonechess=0; // 没有棋子
static final int chessradii=4;// 棋子的大小
int [][] boardstate = new int[19][19];//chessboard
int w=getWidth();
int h=getHeight();
//rivate Display gamedisplay;
public frmMainMenu()
{
}
public void paint(Graphics g)
{
init();
DrawBackgound(g,252,222,10);
DrawBoard(g);
}
// 画出棋盘的背景
//
private void DrawBackgound(Graphics g,int red,int green,int blue)
{
g.setColor(red,green,blue);
g.fillRect(0,0,w,h);
}
// 初始数组
private void init()
{
for(int i=0;i<19;i++)
{
for(int j=0;j<19;j++)
{
boardstate[i][j]=blackchess;
}
}
}
// 画出棋盘和棋子
// 0:没有棋子
// 1:白棋
//-1:黑棋
public void DrawBoard(Graphics g)
{
//Graphics g = i.getGraphics();
int margin =(chessspace-chessradii)/2;
//System.out.println(margin);
g.setColor(0,0,0);
//画棋盘
//画直线
for(int i=0;i<19;i++)
{
g.drawLine(left,i*chessspace+top,linespace+left,i*chessspace+top);
}
//画竖线
for(int j=0;j<19;j++)
{
g.drawLine(j*chessspace+left,top,j*chessspace+left,linespace+top);
}
//g.setColor(255,255,255);
//g.fillArc(left,top,6,6,0,360);
for(int i=0;i<18;i++)
{
for(int j=0;j<18;j++)
{
if(boardstate[i][j]==blackchess)
{
// 画黑子
g.setColor(0,0,0);
g.fillArc(i*chessspace+margin+left,j*chessspace+margin+top,4,4,0,360);
}
else if (boardstate[i][j]==whitechess)
{
// 画白子
g.setColor(255,255,255);
g.fillArc(i*chessspace+margin+left,j*chessspace+margin+top,4,4,0,360);
}
else
{
continue;
}
}
}
}
//检查是否有用户完成五子连线
private boolean checkfinished(int x, int y)
{
int CurrentChessman=boardstate[y][x];
int Count ;
//检查行是否有五子连线
Count =0;
for(int i=Math.max(0,x-4);i<=Math.min(x+4,18);i++)
{
if (boardstate[y][i]==CurrentChessman)
{
Count =Count+1;
if (Count>=5)
{
return true;
}
}
else
{
Count =0;
}
}
//检查列是否有五子连线
Count =0;
for(int i=Math.max(0,y-4);i<=Math.min(y+4,18);i++)
{
if (boardstate[i][x]==CurrentChessman)
{
Count =Count+1;
if (Count>=5)
{
return true;
}
}
else
{
Count =0;
}
}
//检查右斜线是否有五子连线
Count =0;
for(int i=Math.max(0,x-4),j=Math.max(0,y-4);i<=Math.min(x+4,18)&&j<=Math.min(y+4,18);i++,j++)
{
if (boardstate[j][i]==CurrentChessman)
{
Count =Count+1;
if (Count>=5)
{
return true;
}
}
else
{
Count =0;
}
}
//检查左斜线是否有五子连线
Count =0;
for(int i=Math.max(0,x-4),j=Math.min(y+4,18);i<=Math.min(x+4,18)&&j>=Math.max(0,y-4);i++,j--)
{
if (boardstate[j][i]==CurrentChessman)
{
Count =Count+1;
if (Count>=5)
{
return true;
}
}
else
{
Count =0;
}
}
return false;
//检查棋盘是否满了
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -