这是小编自己写的一个简单地五子棋代码,还有点错误,欢迎大家来指正我的错误
这是我项目的源码:
#include <stdio.h> //方便我们输入输出
#include <conio.h> //getch
#include <Windows.h>
#pragma comment(lib, "winmm.lib") //包含静态库文件
//Windows 90%代码是用C语言开发
//C和C 开发
int g_ckeckboard[15][15]; //棋盘
int g_currentGamer; //当前玩家 1:黑子;2:白子
int g_cursorX, g_cursorY; //代表光标位置(下子的位置)
//运行游戏
int PlayGame();
//初始化
void Init();
//绘制棋盘
void PrintCheckboard();
//下子
int Put();
int main()
{
//设置控制台窗口的标题
SetConsoleTitle(L"五子棋大战游戏");
//设置控制台界面颜色
system("color E0"); //其他颜色
//播放音乐
//mciSendString(L"open bkmusic.mp3 alias music", 0,0,0);
//mciSendString(L"play music repeat",0, 0, 0);
//死循环
while (1)
{
//不断的执行游戏
PlayGame();
}
//应该等待一下不能让程序退出
//getchar();
//system("pause");
return 0;//立刻马上退出程序了
}
//运行游戏
int PlayGame()
{
//首先先完成初始化
Init();
while (1)
{
//绘制棋盘
PrintCheckboard();
char ch = getch();
switch (ch)
{
case 32://空格键
if (1 == Put())
{
g_currentGamer = 3 - g_currentGamer;
}
break;
case 72://往上
g_cursorX--; if (g_cursorX < 0) g_cursorX = 14;
break;
case 80://往下
g_cursorX ; if (g_cursorX > 14) g_cursorX = 0;
break;
case 75://往左
g_cursorY--; if (g_cursorY < 0) g_cursorY = 14;
break;
case 77://往右
g_cursorY ; if (g_cursorY > 14) g_cursorY = 0;
break;
}
}
return 1;
}
//初始化
void Init()
{
//1、空棋盘
memset(g_ckeckboard, 0, sizeof(g_ckeckboard));
//2、玩家谁先
g_currentGamer = 1; //黑子先
//3、光标居中
g_cursorX = g_cursorY = 15 / 2;
}
//绘制棋盘
void PrintCheckboard()
{
//清屏
system("cls");
for (int i = 0; i < 15; i )
{
for (int j = 0; j < 15; j )
{
if (i == g_cursorX && j == g_cursorY)
{
printf("╬");
}
else if (g_ckeckboard[i][j] == 1)
{
printf("●");
}
else if (g_ckeckboard[i][j] == 2)
{
printf("○");
}
else if (i == 0 && j == 0)
{
printf("┏");
}
else if (i == 0 && j == 14)
{
printf("┓");
}
else if (i == 14 && j == 0)
{
printf("┗");
}
else if (i == 14 && j == 14)
{
printf("┛");
}
else if (i == 0)
{
printf("┳");
}
else if (i == 14)
{
printf("┻");
}
else if (j == 0)
{
printf("┣");
}
else if (j == 14)
{
printf("┫");
}
else
{
printf("┼");
}
}
printf("\n");
}
}
//下子
int Put()
{
//什么时候下子失败
//下子的本质 :不是就是 改变二维数组,里面的值
//根据二维数组里面的值不同而打印不同的东西
if (g_ckeckboard[g_cursorX][g_cursorY] == 0)
{
g_ckeckboard[g_cursorX][g_cursorY] = g_currentGamer;
return 1;
}
else
return 0;
}
C/C 学习交流群:1083020561
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved