时间:2021-05-20
这是大一的时用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 200int 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经典小游戏汇总
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了C++实现走迷宫小游戏的具体代码,供大家参考,具体内容如下源码下载:C++实现走迷宫小游戏主程序代码:#include#include#in
C++猜数字小游戏-通过循环实现,供大家参考,具体内容如下题目:/系统随机生成一个1到100之间的数字,玩家进行猜测,如果猜错提示玩家数字过大或过小,如果猜对恭
C/C++实现扫雷小游戏源代码:github:https://github.com/KamSss/C-Practice/tree/master/Mineswee
本文实例为大家分享了C++实现推箱子小游戏的具体代码,供大家参考,具体内容如下游戏效果简单易懂的推箱子闯关小游戏。游戏代码#include#include#in
使用C语言来实现一个猜数字的小游戏学习C语言有几天的时间了,在这期间对C语言的语法,程序结构有了了解,自己也练习过许多的代码,今天分享一个猜数字的代码。一、猜数