?? servermodel.java
字號:
package model;
public class ServerModel {
private int m_Columns;
private int m_Rows;
private int m_ConnectNumber;// Number of dics to win
private int m_Map[][];
public int m_Count; // Number of empty cells
private int m_Place[];// Row in which dic should be placed
public ServerModel(int width, int height, int connectNumber) {
m_Map = new int[width][height];
m_Rows = width;
m_Columns = height;
m_Place = new int[width];
m_ConnectNumber = connectNumber;
for (int i = 0; i < m_Rows; i++) {
for (int j = 0; j < m_Columns; j++) {
m_Map[i][j] = 0;
}
}
m_Count = width * height;
for (int i = 0; i < m_Rows; i++) {
m_Place[i] = height;
}
}
public void setPlayer(int PlayerFlag, int row, int Column) {
m_Map[row][Column] = PlayerFlag;
m_Count--;
}
public boolean isWin(int x, int y, int PlayerFlag) {
int pxleft, pxright, pyup, pydown;
pxleft = pxright = x;
pyup = pydown = y;
int count;
// Calculate connect number in horizontal
count = 0;
while (pxleft >= 0 && m_Map[pxleft][y] == PlayerFlag) {
pxleft--;
count++;
}
while (pxright < m_Rows && m_Map[pxright][y] == PlayerFlag) {
pxright++;
count++;
}
if (count - 1 >= m_ConnectNumber)
return true;
// Calculate connect number in vertical
count = 0;
while (pyup >= 0 && m_Map[x][pyup] == PlayerFlag) {
pyup--;
count++;
}
while (pydown < m_Columns && m_Map[x][pydown] == PlayerFlag) {
pydown++;
count++;
}
if (count - 1 >= m_ConnectNumber)
return true;
// Calculate connect number in up left
count = 0;
pxleft = pxright = x;
pyup = pydown = y;
while (pxleft >= 0 && pyup >= 0 && m_Map[pxleft][pyup] == PlayerFlag) {
pxleft--;
pyup--;
count++;
}
pxleft = pxright = x;
pyup = pydown = y;
while (pxright < m_Rows && pydown < m_Columns
&& m_Map[pxright][pydown] == PlayerFlag) {
pxright++;
pydown++;
count++;
}
if (count - 1 >= m_ConnectNumber)
return true;
// Calculate connect number in up right
count = 0;
pxleft = pxright = x;
pyup = pydown = y;
while (pxright < m_Rows && pyup >= 0
&& m_Map[pxright][pyup] == PlayerFlag) {
pxright++;
pyup--;
count++;
}
pxleft = pxright = x;
pyup = pydown = y;
while (pxleft >= 0 && pydown < m_Columns
&& m_Map[pxleft][pydown] == PlayerFlag) {
pxleft--;
pydown++;
count++;
}
if (count - 1 >= m_ConnectNumber)
return true;
return false;
}
public boolean isFull() {
if (m_Count == 0)
return true;
else
return false;
}
// Place a dic randomly
public int computerPlace() {
double a = Math.random() * this.m_Columns;
int randomNum = new Double(a).intValue();
return randomNum;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -