easyx官网:
#include<stdio.h>(c语言的头文件)
#include<graphics.h>(easyx的)
#include<mmsystem.h>(音乐播放的)
#pragma comment(lib,"winmm.lib")(链接上音乐播放器的库)
int main(int argc,char *argv[])
{
}
int main(int argc,char *argv[])
{
initgraph(WIN_WIDTH, WIN_HEIGHT);// (第三个参数SHOWCONSOLE控制控制台窗口的显示与否)
}
-
所以我们需要阻塞窗口
:while (1) { ; }
或者:
getchar();
#define INTERVAL 50 //前面的间隔
#define CHESS_GRID_SIZE 70//格子宽度
#define ROW 10
#define COL 9
#define WIN_WIDTH ((COL-1)*CHESS_GRID_SIZE+INTERVAL*2+250)
//窗口宽度计算得出
#define WIN_HEIGHT ((ROW-1)*CHESS_GRID_SIZE+INTERVAL*2)
//窗口高度计算得出
IMAGE img_chessBoard;(定义背景图)
void loadImg()(加载背景图)
{
loadimage(&img_chessBoard, "./res/Chess.jpg", 650, 700);
}
enum Pieces //棋子
{
SPACE = -1,
車, 馬, 象, 士, 将, 砲, 卒,
俥, 马, 相, 仕, 帥, 炮, 兵,
BEGIN, END,
};
//给id赋值
int redChess[] = { 車, 馬, 象, 士, 将, 砲, 卒 };
int blackChess[] = { 俥, 马, 相, 仕, 帥, 炮, 兵 };
//绘制时转化成字符串
const char* ChessName[] = { "車","馬","象","士","将","砲","卒","俥", "马", "相", "仕", "帥", "炮", "兵" };
struct Chess
{
int id;//棋子名称
int type;//棋子类型,红棋,还是黑棋
int x;//坐标
int y;
bool river;//是否过了河
}map[ROW][COL];
POINT begin = { -1, -1 }, end = { -1, -1 };//记录前后两次点击的下标
int state = BEGIN;
int whereMove = RED;
void GameInit()
{
loadImg();
//遍历二维数组
for (int i = 0; i < ROW; i++)
{
int temp = 0, temp1 = 0, temp2 = 1;
for (int k = 0; k < COL; k++)
{
int chessname = SPACE;
int mcolor = BLACK;//black黑色
//黑棋初始化
if (i <= 4)
{
mcolor = BLACK;
if (i == 0)//第1行
{
if (temp <= 4)
{
temp++;
}
else
{
temp1 = 4 - temp2;
temp2++;
}
chessname = blackChess[temp1];
temp1++;
}
//设置炮
if (i == 2 && (k == 1 || k == 7))
{
chessname = blackChess[5];
}
//设置小兵
if (i == 3 && k % 2 == 0)
{
chessname = blackChess[6];
}
}
else//红旗初始化
{
mcolor = RED;
if (i == 9)//最后一行
{
if (temp <= 4)
{
temp++;
}
else
{
temp1 = 4 - temp2;