⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ztscards.h

📁 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 + -