1. 程式人生 > 程式設計 >C++實現猜牌小遊戲

C++實現猜牌小遊戲

這是大一的時用C寫的猜牌小遊戲,裡面用了easyx圖形庫,供大家參考,具體內容如下

執行效果

C++實現猜牌小遊戲

C++實現猜牌小遊戲

程式碼

#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,&img[2]);
  }
  else if (g_matt[i][j] == 3){
  putimage(i*SIZE,&img[3]);
  }
  else if (g_matt[i][j] == 4){
  putimage(i*SIZE,&img[4]);
  }
  else if (g_matt[i][j] == 5){
  putimage(i*SIZE,&img[5]);
  }
  else if (g_matt[i][j] == 6){
  putimage(i*SIZE,&img[6]);
  }
  else if (g_matt[i][j] == 7){
  putimage(i*SIZE,&img[7]);
  }
  else if (g_matt[i][j] == 8){
  putimage(i*SIZE,&img[8]);
  }
  else if (g_matt[i][j] >= 20 && g_matt[i][j] <= 28){
  putimage(i*SIZE,&img[0]);
  }
  else if (g_matt[i][j] > 100){
  putimage(i*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);
  mciSendString("play images\\click.wav",NULL);
  Sleep(10);
  mciSendString("cloes images\\click.wav",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);
  mciSendString("play images\\search.wav",NULL);
  Sleep(10);
  mciSendString("cloes images\\search.wav",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);
 mciSendString("play images\\東京不太熱.mp3",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經典小遊戲彙總

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。