C++实现猜牌小游戏

这是大一的时用C写的猜牌小游戏,里面用了easyx图形库,供大家参考,具体内容如下

运行效果

代码

#include<stdio.h>

#include<time.h>

#include<stdlib.h>

#include<Windows.h>

#include<graphics.h>

#include<mmsystem.h>

#pragma comment(lib,"winmm.lib")

#define HANG 4

#define LIE 4

#define SIZE 200

int g_matt[HANG][LIE] = { 0 };

int g_matt_time[HANG][LIE] = { 0 };

int g_matt_mask[HANG*LIE] = { 0 };

IMAGE img[10];

void Put(){

char jpg[50];

for (int i = 0; i <10; i++){

sprintf(jpg, "images\\%d.jpg", i);

loadimage(&img[i], jpg, SIZE, SIZE);

//printf("%s\n", jpg);

}

}

int getNextNumber()

{

char stat[8] = { 0 };

for (int i = 0; i < HANG; i++){

for (int j = 0; j < LIE; j++){

if (g_matt[i][j]>0 && g_matt[i][j]<9)//让数组里面的数不能重复出现3次

stat[g_matt[i][j]-1]++;//

//printf("%c", stat);

}

}

char n = 0;

while (1) {

n = rand() % 8 + 1;//随机1到8

if (stat[n-1] >= 2) {//判断这个数组 里面不能出现2个以上重复的1到8

continue;

} else {

break;

}

}

return n;

}

void Playone(){

for (int i = 0; i < HANG; i++){

for (int j = 0; j < LIE; j++){

g_matt[i][j] = getNextNumber();

printf("%d ", g_matt[i][j]);

}

printf("\n");

}

for (int i = 0; i < HANG; i++){

for (int j = 0; j < LIE; j++){

if (g_matt[i][j] >= 1 && g_matt[i][j] <= 8)

g_matt[i][j] += 20;

printf("%d ", g_matt[i][j]);

}

printf("\n");

}

}

void Plus(){

for (int i = 0; i < HANG; i++){

for (int j = 0; j < LIE; j++){

if (g_matt[i][j] == 1){

putimage(i*SIZE, j*SIZE, &img[1]);

}

else if (g_matt[i][j] == 2){

putimage(i*SIZE, j*SIZE, &img[2]);

}

else if (g_matt[i][j] == 3){

putimage(i*SIZE, j*SIZE, &img[3]);

}

else if (g_matt[i][j] == 4){

putimage(i*SIZE, j*SIZE, &img[4]);

}

else if (g_matt[i][j] == 5){

putimage(i*SIZE, j*SIZE, &img[5]);

}

else if (g_matt[i][j] == 6){

putimage(i*SIZE, j*SIZE, &img[6]);

}

else if (g_matt[i][j] == 7){

putimage(i*SIZE, j*SIZE, &img[7]);

}

else if (g_matt[i][j] == 8){

putimage(i*SIZE, j*SIZE, &img[8]);

}

else if (g_matt[i][j] >= 20 && g_matt[i][j] <= 28){

putimage(i*SIZE, j*SIZE, &img[0]);

}

else if (g_matt[i][j] > 100){

putimage(i*SIZE, j*SIZE, &img[9]);

}

}

}

}

void Play(){

MOUSEMSG msg = { 0 };

msg = GetMouseMsg();

//if (WM_LBUTTONDOWN == matt[msg.x][msg.y] >= 20 || matt[msg.x][msg.y]<=28){

switch (msg.uMsg)

{

case WM_LBUTTONDOWN:

{

int row = msg.y / SIZE;

int col = msg.x / SIZE;

if (g_matt[col][row] >= 20 && g_matt[col][row] <= 28){

g_matt[col][row] -= 20;

//printf("%d ", g_matt[col][row]);

}

//mciSendString("open images\\click.wav", NULL, NULL, NULL);

mciSendString("play images\\click.wav", NULL, NULL, NULL);

Sleep(10);

mciSendString("cloes images\\click.wav", NULL, NULL, NULL);

}

}

//cleardevice();

}

void Over(){

int *p = (int*)g_matt+1;

for (int i = 0; i < HANG*LIE; i++) {

for (int j = i + 1; j < HANG*LIE; j++) {

if(p[i] <= 8 && p[i] >= 1 && p[i] == p[j]){

p[i] += 120;

p[j] += 120;

//mciSendString("open images\\search.wav", NULL, NULL, NULL);

mciSendString("play images\\search.wav", NULL, NULL, NULL);

Sleep(10);

mciSendString("cloes images\\search.wav", NULL, NULL, NULL);

}

}

}

}

void Keep(){

for (int i = 0; i < HANG; i++){

for (int j = 0; j < LIE; j++){

if (g_matt[i][j] >= 1 && g_matt[i][j] <= 8){

g_matt[i][j] += 20;

//printf("%d ", g_matt[i][j]);

}

}

printf("\n");

}

}

int main() {

//int *p1;

mciSendString("open images\\东京不太热.mp3", NULL, NULL, NULL);

mciSendString("play images\\东京不太热.mp3", NULL, NULL, NULL);

srand(time(NULL));

HWND hwnd =initgraph(800, 800);

Put();

Playone();

int frames = 0;

DWORD t1, t2,t3;

t1 = GetTickCount();//程序运行时间

while (1)

{

t2 = GetTickCount();

Plus();//贴图

Play();//鼠标点击

if (t2-t1>=1600){//等于当前时间减去程序运行时间大于等于两秒才运行 也就是卡两秒

Keep();//加密

//continue;

t1 = t2;//当前时间赋给程序运行时间

}

Over();

char ch[16] = { 0 };

char n = 0;

for (int i = 0; i < HANG; i++){

for (int j = 0; j < LIE; j++){

if (g_matt[i][j] >= 120){

ch[g_matt[i][j] - 1]++;

}

}

}

while (n>6) {

if (ch[n - 1] >= 6) {//判断这个数组 里面不能出现2个以上重复的1到8

MessageBox(hwnd, "恭喜你赢了", "", MB_OK);

//continue;

n++;

}

}

}

return 0;

}

更多有趣的经典小游戏实现专题,分享给大家:

C++经典小游戏汇总

python经典小游戏汇总

python俄罗斯方块游戏集合

JavaScript经典游戏 玩不停

java经典小游戏汇总

javascript经典小游戏汇总

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是 C++实现猜牌小游戏 的全部内容, 来源链接: utcz.com/p/245325.html

回到顶部