⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 servermodel.java

📁 connectN 网络游戏。内含server and client端源程序
💻 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 + -