📄 ztscards.h
字号:
#include "windows.h"
#include "stdlib.h"
#include "time.h"
#include "Mmsystem.h"
#include "digitalv.h"
#include "resource.h"
#include "Cards.h"
#define x_Logo 298 //中间头像的 x 和 y 坐标
#define y_Logo 20
#define dxCard 7 //扑克间的 x 间距和 y 间距
#define dyCard 18
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
BOOL CALLBACK DlgSelectNumProc (HWND, UINT, WPARAM, LPARAM); //“选择游戏号”对话框过程
BOOL CALLBACK DlgScoreProc (HWND, UINT, WPARAM, LPARAM); //“战况”对话框过程
BOOL CALLBACK DlgOptionProc (HWND, UINT, WPARAM, LPARAM); //“选项”对话框过程
BOOL CALLBACK DlgMoveProc (HWND, UINT, WPARAM, LPARAM); //“移动到空当”对话框过程
BOOL CALLBACK DlgLoseProc (HWND, UINT, WPARAM, LPARAM); //“输了”对话框过程
BOOL CALLBACK DlgWinProc (HWND, UINT, WPARAM, LPARAM); //“赢了”对话框过程
int GenerateNum (); //产生随机牌局号
void SetCardsOrder (int); //根据随机牌局号计算发牌顺序
void DrawLogo (HDC, int); //绘制中间的头像
void DrawSpaceLeft (HDC); //绘制左边空当
void DrawSpaceRight (HWND, HDC); //绘制右边空当
void DrawColumn (HDC, int, BOOL); //绘制某一列牌
int CalcSpaceAll (BOOL); //计算可移动的牌的最大数目
int CalcColumnCards (int); //计算某一列的牌数
BOOL IsMatch (int, int); //判断后一张牌是否能够放在前一张牌上面
BOOL IsNoUseCards (int); //判断是不是一张废牌
void PutInSpaceRight (HWND, int); //把某一列(包括空当)的最后一张牌收进右边空当
BOOL CollectNoUseCards (HWND); //把没有了利用价值的牌收集到右边空当
BOOL IsWin (HWND); //判断是否赢了牌局
BOOL IsLose (HWND); //判断是否输掉了当前局
void SweepWar (HWND); //清扫战场,看有没有废牌可以回收,赢了还是输了等等
void OnCreate (HWND); //处理 WM_CREATE 消息
void OnPaint (HWND, HDC); //处理 WM_PAINT 消息
void OnMouseMove (HWND, int, int); //处理 WM_MOUSEMOVE 消息
void OnLbuttonDown (HWND, int, int); //处理 WM_LBUTTONDOWN 消息
void OnLbuttonDblclk (HWND, int, int); //处理 WM_LBUTTONDBLCLK 消息
void OnRbuttonDown (HWND, int, int); //处理 WM_RBUTTONDOWN 消息
void OnRbuttonUp (HWND); //处理 WM_RBUTTONUP 消息
HINSTANCE hInst;
int nCardWidth, nCardHeight;//每张扑克的大小
int nNum; //牌局号
int Cards[8][21]; //发牌顺序,表示 8 列牌,每列可能的最大值为 21
int SpaceLeft[4]; //左边空当中的牌号,如果没牌就设为 0
int SpaceRight[4]; //右边空当中的牌号,顺序从右往左,SpaceRight[0] 表示最右边的一张牌,如果没牌就设为 0
int ColumnSelected; //当前选中的列,-1 表示没有选中任何列
int nRX, nRY; //记录鼠标右键按下处的牌在 Cards 数组中的位置
BOOL bErrorMessage; //移牌违规时显示信息?
BOOL bQuickMoveCard; //快速玩法(无动画)?
BOOL bCanMouseDblclk; //双击鼠标将牌移到空白档?
BOOL bPlaying; //正在游戏中?
BOOL bRbuttonDown; //鼠标右键按下?
HPEN hPen_Green;
HBRUSH hBrush_Bground;
HBITMAP hBmpSpace; //表示空当
char iniFile[MAX_PATH]; //ini 文件名
int lost, won; //总的输赢次数
int losses, wins; //连续输赢最多的次数
int streak, stype; //连续输或者赢的次数,当前是赢(1)还是输(0)
int cur_losses, cur_wins; //本局的输赢次数
char BkgroundMusic[MAX_PATH];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -