arithmetic.cpp

来自「在linux下使用qt来开发的五子棋」· C++ 代码 · 共 40 行

CPP
40
字号

#include "arithmetic.h"

int Arithmetic::ChessPlace(int x, int y)			//根据鼠标点击位置算棋子在数组中的位置
{
	//+0.5四省五入
	int n = (x - 30.0) / 35 + 0.5;					//30边距;35行距;+0.5四省五入
	int m = (y - 30.0) / 35 + 0.5;
	return(15*m + n);

}

bool Arithmetic::LimitArea(int x, int y)						//限定鼠标点击位置有效位置
{
	if ( x < 20 || y < 20 || x > (30 + 14*35 +10) || y > (30 + 14*35 +10) )		//是否超过边界
		return false;
	int j = ( x +35 - 30 ) % 35;
	int k = ( y +35 - 30 ) % 35;
	if ( j >10 && j < 25 )
		return false;	
	else if( k > 10 && k < 25 )										//限定,落子点(网格交点)附近-10到10范围内有效
		return false;
	else
		return true;
}

void Arithmetic::AdjustDraw(int x, int y, int &dx, int &dy)						//相对鼠标点击位置,适当调整画棋子的位置,是棋子与棋盘对齐
{
	int n = (x - 30.0) / 35 + 0.5;
	int m = (y - 30.0) / 35 + 0.5;
	dx = n*35 + 12.5;
	dy = m*35 + 12.5;
	//0.5是四省五入的,所以:
	//dx = n*35 + 12;
	//dy = m*35 + 12;


}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?