• 大小: 20.76MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-06-27
  • 语言: C/C++
  • 标签: 五子棋  

资源简介

五子棋C++源代码,使用的时候将默认背景图片设置为文件夹中的棋盘图片。或者将eazyX库中line画棋盘的颜色改为白色,才会在黑色的背景中看见。

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include
#include 
#include
#include 
#include
#undef UNICODE
using namespace std;

struct dir {
int dy;
int dx;
};

struct Point
{
int x;
int y;
Point() = default;
Point(int i int j) { this->x = i; this->y = j; }
};

int N;
LPTSTR pString;
void gameStart1();
void gameStart2();
int First;
bool change = false;
bool k = true; //只让while执行一次
bool z = false;
bool h = false;

class Chess {  //棋类
protected:
int flag{ 0 };
int ban_w{ 0 } ban_b{ 0 };
int ban_w_temp{ 0 } ban_b_temp{ 0 };
int board[16][16];
bool isnew = false;
int x = 0;
int y = 0;
public:
vectorchessline;
void initGame();
int judge(int a int b);
void playchess();
void reguard();
void guard(int a int b);//将每步棋压入向量
void ban_black(int a int b int& w);
};

static const int men[3][6] = {
{ 0 0 0 0 0 10000 }//防守2子
{ 0 0 2 100 500 10000 }//防守1子
{ 0 2 100 500 2500 10000 } //防守0子
};
const dir d1{ 0 1 };//横
const dir d2{ 1 0 };//竖
const dir d3{ 1 1 };//左下到右上 撇
const dir d4{ -1 1 };//右下到左上 捺

class Robot :public Chess { //Ai类
private:
public:
int robotJudge(int a int c int o);
void playchessRobot();
Point putchess(int i int j);
void anti_putchess(int i int j);
Point newpoint(Point p dir d int length);
int Score(Point p int whoAttack); //whoAttack为2时是黑棋的情况,3时是白棋的情况opp为对立方
bool isInboard(Point a);
};

//将每一步棋存储
void Chess::guard(int a int b) {
chessline.push_back(Point(a b));
}
//悔棋
void Chess::reguard() {
initGame();
vector::iterator it = chessline.begin();
int m = chessline.size();
if (flag == 0) return;
for (int i = 0; i <= m - 2; i++)
{
if (i % 2 == 1)
{
setfillcolor(WHITE);
int x = (*(it + i)).x; int y = (*(it + i)).y;
solidcircle(30 * x 30 * y 8);
board[x][y] = 2;
}
else if (i % 2 == 0)
{
setfillcolor(BLACK);
int x = (*(it + i)).x; int y = (*(it + i)).y;
solidcircle(30 * x 30 * y 8);
board[x][y] = 3;
}
}
chessline.pop_back();
flag--;
}

//下棋
void Chess::playchess() {
MOUSEMSG m;
Chess chess;
int x{ 0 } y{ 0 };
int a{ 0 } b{ 0 };//持续下棋
while (1) {
m = GetMouseMsg(); //获取一个鼠标消息
//获取离鼠标最近的点的坐标信息
for (int i = 1; i <= 15; i++) {
for (int j = 1; j <= 15; j++) {

if (abs(m.x - i * 30) < 12 && abs(m.y - j * 30) < 12) {//距离
x = i * 30;
y = j * 30;
a = i;
b = j;
}
}
}
if (chessline.size ()!= 0) {
ban_b_temp = ban_b;
ban_black((*(chessline.end() - 1)).x (*(chessline.end() - 1)).y ban_b);
}
if (m.mkRButton)
if (ban_b - ban_b_temp >= 2) {
MessageBox(NULL “黑棋出现禁手,白棋胜利“ “提示“ MB_OK);
exit(0);
}
else if (ban_b - ban_b_temp < 2) { MessageBox(NULL “黑棋未出现禁手“ “提示“ MB_OK); }


if (m.y >= 450)
{

if (m.x >= 30 && m.x <= 120 && m.y >= 480 &&

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.     28672  2019-12-13 13:41  五子棋同步版本\五子棋同步版本\.vs\五子棋同步版本\v16\.suo

     文件   38010880  2019-12-13 13:41  五子棋同步版本\五子棋同步版本\.vs\五子棋同步版本\v16\Browse.VC.db

     文件   69533696  2019-12-13 13:19  五子棋同步版本\五子棋同步版本\.vs\五子棋同步版本\v16\ipch\AutoPCH\4408b34706eabad5\源.ipch

     文件     177152  2019-12-13 13:32  五子棋同步版本\五子棋同步版本\Debug\五子棋同步版本.exe

     文件    1516100  2019-12-13 13:32  五子棋同步版本\五子棋同步版本\Debug\五子棋同步版本.ilk

     文件    1265664  2019-12-13 13:32  五子棋同步版本\五子棋同步版本\Debug\五子棋同步版本.pdb

     文件     347136  2019-12-13 13:32  五子棋同步版本\五子棋同步版本\五子棋同步版本\Debug\vc142.idb

     文件     512000  2019-12-13 13:32  五子棋同步版本\五子棋同步版本\五子棋同步版本\Debug\vc142.pdb

     文件        677  2019-12-13 13:32  五子棋同步版本\五子棋同步版本\五子棋同步版本\Debug\五子棋同步版本.log

     文件        602  2019-12-13 13:32  五子棋同步版本\五子棋同步版本\五子棋同步版本\Debug\五子棋同步版本.tlog\CL.command.1.tlog

     文件      26888  2019-12-13 13:32  五子棋同步版本\五子棋同步版本\五子棋同步版本\Debug\五子棋同步版本.tlog\CL.read.1.tlog

     文件        392  2019-12-13 13:32  五子棋同步版本\五子棋同步版本\五子棋同步版本\Debug\五子棋同步版本.tlog\CL.write.1.tlog

     文件       1084  2019-12-13 13:32  五子棋同步版本\五子棋同步版本\五子棋同步版本\Debug\五子棋同步版本.tlog\link.command.1.tlog

     文件       2470  2019-12-13 13:32  五子棋同步版本\五子棋同步版本\五子棋同步版本\Debug\五子棋同步版本.tlog\link.read.1.tlog

     文件        376  2019-12-13 13:32  五子棋同步版本\五子棋同步版本\五子棋同步版本\Debug\五子棋同步版本.tlog\link.write.1.tlog

     文件        236  2019-12-13 13:32  五子棋同步版本\五子棋同步版本\五子棋同步版本\Debug\五子棋同步版本.tlog\五子棋同步版本.lastbuildstate

     文件     301574  2019-12-13 13:32  五子棋同步版本\五子棋同步版本\五子棋同步版本\Debug\源.obj

     文件       6126  2019-12-10 19:09  五子棋同步版本\五子棋同步版本\五子棋同步版本\五子棋同步版本.vcxproj

     文件        948  2019-12-10 19:09  五子棋同步版本\五子棋同步版本\五子棋同步版本\五子棋同步版本.vcxproj.filters

     文件        168  2019-12-10 19:03  五子棋同步版本\五子棋同步版本\五子棋同步版本\五子棋同步版本.vcxproj.user

     文件      22969  2019-12-13 13:41  五子棋同步版本\五子棋同步版本\五子棋同步版本\源.cpp

     文件       1484  2019-12-10 19:03  五子棋同步版本\五子棋同步版本\五子棋同步版本.sln

     文件     852500  2019-12-10 20:24  五子棋同步版本\五子棋同步版本\棋盘.jpg

     目录          0  2019-12-10 19:04  五子棋同步版本\五子棋同步版本\.vs\五子棋同步版本\v16\ipch\AutoPCH\4408b34706eabad5

     目录          0  2019-12-10 19:03  五子棋同步版本\五子棋同步版本\.vs\五子棋同步版本\v16\ipch\AutoPCH

     目录          0  2019-12-10 19:03  五子棋同步版本\五子棋同步版本\.vs\五子棋同步版本\v16\ipch

     目录          0  2019-12-13 13:41  五子棋同步版本\五子棋同步版本\.vs\五子棋同步版本\v16

     目录          0  2019-12-13 13:32  五子棋同步版本\五子棋同步版本\五子棋同步版本\Debug\五子棋同步版本.tlog

     目录          0  2019-12-10 19:03  五子棋同步版本\五子棋同步版本\.vs\五子棋同步版本

     目录          0  2019-12-13 13:32  五子棋同步版本\五子棋同步版本\五子棋同步版本\Debug

............此处省略8个文件信息

评论

共有 条评论