• 大小: 0.21M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-04-13
  • 语言: C/C++
  • 标签: 五子棋  c++  

资源简介

【五子棋(控制台)】


【核心代码】

FIveChess

├── FIveChess
│   ├── Common.h
│   ├── Debug
│   │   ├── FIveChess.log
│   │   ├── FIveChess.obj
│   │   ├── FIveChess.tlog
│   │   │   ├── CL.command.1.tlog
│   │   │   ├── CL.read.1.tlog
│   │   │   ├── CL.write.1.tlog
│   │   │   ├── FIveChess.lastbuildstate
│   │   │   ├── link.command.1.tlog
│   │   │   ├── link.read.1.tlog
│   │   │   └── link.write.1.tlog
│   │   ├── Tool.obj
│   │   ├── vc141.idb
│   │   └── vc141.pdb
│   ├── Define.h
│   ├── FIveChess.cpp
│   ├── FIveChess.vcxproj
│   ├── FIveChess.vcxproj.filters
│   ├── FIveChess.vcxproj.user
│   ├── Head.h
│   ├── Tool.cpp
│   └── Tool.h
└── FIveChess.sln

3 directories, 22 files


资源截图

代码片段和文件信息

#include “Common.h“
#include “Define.h“
#include “Head.h“
#include “Tool.h“

vector> g_vcMap;   //地图  
//T_chess g_chess;    // 棋子的坐标和所属的玩家
int g_playerIdx = 1;  // 当前玩家
bool g_finishNum = false; // 游戏是否结束

void InitializeGame();  //初始化游戏
long long GetSystemTime(); //时间更新的
void process(); //运行过程
void Update(int x int y); //更新界面棋子
bool victory(int x int y); //胜利条件

int main()
{
HideConCursor();//隐藏光标
long long  time = GetSystemTime();
while (1) {
InitializeGame();//初始化游戏
long long timeTim = GetSystemTime();
while (timeTim - time >= 1000 / frame_NUM)
{
process();// 运行过程
time += 1000 / frame_NUM;
}
}
return 0;
}

void process()
{
for (int i = 0; i < MAP_HEIGHT; ++i) {
for (int j = 0; j < MAP_WIDTH; ++j) {
if (Preserve(g_vcMap[i][j].t)) {

if (g_vcMap[i][j].playerId != 0) {
break;
}
else
{
Update(i j);// 更新界面
g_finishNum = victory(i j); //游戏是否结束
if (g_finishNum == true)
{
system(“pause“);
};
g_playerIdx = (g_playerIdx == 1 ? 2 : 1);
}
}

}
}

}

void InitializeGame()//初始化游戏
{
for (int i = 0; i < MAP_HEIGHT; ++i) {
vector vc;
T_chess chess;
for (int j = 0; j < MAP_WIDTH; ++j) {
chess.playerId = 0;
chess.pos = { ij };
chess.t = NewButton(i j 6 “○“);  //1   深蓝色   12  浅红色   2是绿色 
vc.push_back(chess);
}
g_vcMap.push_back(vc);
}
}

void Update(int x int y)//更新界面棋子
{
g_vcMap[x][y].playerId = g_playerIdx;
if (g_playerIdx==1)
{
g_vcMap[x][y].t = NewButton(x y 10 “●“);
}
else
{
g_vcMap[x][y].t = NewButton(x y 30 “●“);
}

}

bool victory(int x int y) //胜利条件
{
int n1 = 0; //左右方向 
int n2 = 0; //上下方向 
int n3 = 0; //左上到右下方向 
int n4 = 0; // 右上到左下方向y

 //先从点击的位置向左寻找,相同颜色的棋子n1自加,直到不是相同颜色的棋子,则跳出循环 
for (int i = y; i >= 0; i--) {
if (g_vcMap[x][i].playerId != g_playerIdx) {
break;
}
n1 += 1;
}
//然后从点击的位置向右位置寻找,相同颜色的棋子n1自加,直到不是相同颜色的棋子,则跳出循环 
for (int i = y + 1; i < MAP_HEIGHT; i++) {
if (g_vcMap[x][i].playerId != g_playerIdx) {
break;
}
n1 += 1;
}
//****************上下方向************ 
for (int i = x; i >= 0; i--) {
if (g_vcMap[i][y].playerId != g_playerIdx) {
break;
}
n2 += 1;
}
for (int i = x + 1; i < MAP_WIDTH; i++) {
if (g_vcMap[i][y].playerId != g_playerIdx) {
break;
}
n2 += 1;
}
//****************右上到左下斜方向*********** 
for (int i = x j = y; i >= 0 j < MAP_WIDTH; i-- j++) {
if (i < 0 || j >=  MAP_WIDTH || g_vcMap[i][j].playerId != g_playerIdx) {
break;
}
n3 += 1;
}
for (int i = x + 1 j = y - 1; i < MAP_HEIGHT j > 0; i++ j--) {
if (j <= 0 || i > MAP_HEIGHT || g_vcMap[i][j].playerId != g_playerIdx) {
break;
}
n3 += 1;
}
//****************左上到右下斜方向*************
for (int i = x j = y; i >= 0 j >= 0; i-- j--) {
if (i<0||j<0||g_vcMap[i][j].playerId != g_playerIdx) {
break;
}
n4 += 1

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

     文件        377  2020-07-06 09:34  FIveChess\FIveChess\Common.h

     文件        219  2020-12-14 14:33  FIveChess\FIveChess\Debug\FIveChess.log

     文件     325879  2020-12-14 14:33  FIveChess\FIveChess\Debug\FIveChess.obj

     文件       1446  2020-12-14 14:33  FIveChess\FIveChess\Debug\FIveChess.tlog\CL.command.1.tlog

     文件      67138  2020-12-14 14:33  FIveChess\FIveChess\Debug\FIveChess.tlog\CL.read.1.tlog

     文件       1280  2020-12-14 14:33  FIveChess\FIveChess\Debug\FIveChess.tlog\CL.write.1.tlog

     文件        202  2020-12-14 14:33  FIveChess\FIveChess\Debug\FIveChess.tlog\FIveChess.lastbuildstate

     文件       1260  2020-12-14 14:33  FIveChess\FIveChess\Debug\FIveChess.tlog\link.command.1.tlog

     文件       3384  2020-12-14 14:33  FIveChess\FIveChess\Debug\FIveChess.tlog\link.read.1.tlog

     文件        512  2020-12-14 14:33  FIveChess\FIveChess\Debug\FIveChess.tlog\link.write.1.tlog

     文件      66717  2020-07-06 09:38  FIveChess\FIveChess\Debug\Tool.obj

     文件     617472  2020-12-14 14:33  FIveChess\FIveChess\Debug\vc141.idb

     文件     552960  2020-12-14 14:33  FIveChess\FIveChess\Debug\vc141.pdb

     文件        508  2020-07-06 09:31  FIveChess\FIveChess\Define.h

     文件       4080  2020-12-14 14:33  FIveChess\FIveChess\FIveChess.cpp

     文件       7842  2020-07-06 09:38  FIveChess\FIveChess\FIveChess.vcxproj

     文件       1421  2020-07-06 09:38  FIveChess\FIveChess\FIveChess.vcxproj.filters

     文件        165  2020-07-06 09:20  FIveChess\FIveChess\FIveChess.vcxproj.user

     文件        244  2020-07-06 09:35  FIveChess\FIveChess\Head.h

     文件       2823  2020-07-06 09:37  FIveChess\FIveChess\Tool.cpp

     文件        425  2020-07-06 09:38  FIveChess\FIveChess\Tool.h

     文件       1441  2020-07-06 09:20  FIveChess\FIveChess.sln

     目录          0  2020-12-14 14:33  FIveChess\FIveChess\Debug\FIveChess.tlog

     目录          0  2020-12-14 14:33  FIveChess\FIveChess\Debug

     目录          0  2020-12-14 14:33  FIveChess\FIveChess

     目录          0  2020-12-14 14:34  FIveChess

----------- ---------  ---------- -----  ----

              1657795                    26


评论

共有 条评论