欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言版掃雷小游戲

 更新時(shí)間:2021年08月01日 10:03:36   作者:℡小男孩  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言版的掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語(yǔ)言版掃雷小游戲的具體代碼,供大家參考,具體內(nèi)容如下

一、游戲功能

1、顯示該點(diǎn)周?chē)椎膫€(gè)數(shù)
2、第一次下子,不炸死
3、坐標(biāo)周?chē)鷽](méi)雷,可以實(shí)現(xiàn)展開(kāi)

二、效果展示

三、設(shè)計(jì)思路

這里由于博主目前能力有限,所以這里就用輸入坐標(biāo)的形式來(lái)進(jìn)行排雷。
要想實(shí)現(xiàn)上方游戲功能其實(shí)也不難,總體思路就是:我們用幾個(gè)算法模塊來(lái)模擬游戲規(guī)則,實(shí)現(xiàn)上方的功能,然后用函數(shù)來(lái)調(diào)用各個(gè)模塊使游戲跑起來(lái)。
接下來(lái)我們就來(lái)看看如何用C語(yǔ)言代碼來(lái)實(shí)現(xiàn)游戲吧!

四、游戲?qū)崿F(xiàn)步驟

1、游戲菜單

首先我們需要打印一份游戲菜單界面,讓玩家進(jìn)行選擇是否開(kāi)始游戲,這里我們使用do…while循環(huán)語(yǔ)句,使的玩家不至于玩玩一次之后直接退出。

主函數(shù)部分:

int main()
{
 int input = 0;
 do
 {
  menu();//打印菜單的函數(shù)
  printf("請(qǐng)選擇:>");
  scanf("%d", &input);
  switch (input)
  {
  case 1:
   printf("開(kāi)始游戲\n");
   game();//游戲主體
   break;
  case 2:
   system("cls");//清屏選項(xiàng)
   break;
  case 0:
   printf("退出游戲\n");
   break;
  default:
   printf("輸入錯(cuò)誤,請(qǐng)重新選擇\n");
   Sleep(1000);//1000毫秒--一秒
   system("cls");
   break;
  }
 
 } while (input);
 return 0;
}

這里我們用了Windows庫(kù)函數(shù)清屏,如果屏幕上顯示的東西太多了,我們可以選擇2來(lái)清屏,還有一個(gè)睡眠函數(shù),如果輸出錯(cuò)誤會(huì)短暫的提示你一秒,告訴你選擇錯(cuò)誤了,然后清屏。

菜單函數(shù):

void menu()
{
 printf("**************************************************\n");
 printf("*******       Welcome to Minesweeper       *******\n");
 printf("**********          1. 開(kāi)始游戲         **********\n");
 printf("**********          2. 清空屏幕         **********\n");
 printf("**********          0. 退出游戲         **********\n");
 printf("**************************************************\n");
}

效果如圖:

2、創(chuàng)建初始化棋盤(pán)

我們?cè)谟螒虿藛物@示出來(lái)后,就可以進(jìn)行選擇開(kāi)始游戲啦!
想玩掃雷就必須得有一個(gè)棋盤(pán),這樣我們就可以在上面進(jìn)行排雷。
在這里我們需要用二維數(shù)組來(lái)創(chuàng)建兩個(gè)棋盤(pán),一個(gè)用于展示給玩家,并儲(chǔ)存排雷信息;一個(gè)用于在后臺(tái)隨機(jī)生成雷并儲(chǔ)存。假如我們要打印9X9的棋盤(pán),那我們的二維數(shù)組大小也是9X9的嗎?,不能,因?yàn)槲覀冊(cè)谠O(shè)計(jì)算法時(shí)需要統(tǒng)計(jì)該坐標(biāo)周?chē)?個(gè)方位雷的個(gè)數(shù),假如要統(tǒng)計(jì)邊界坐標(biāo)周?chē)椎膫€(gè)數(shù),那么就會(huì)有數(shù)組越界的問(wèn)題,那我們就要在9X9的邊界多上一圈元素,也就要定義11X11的數(shù)組元素,這些多出來(lái)的一圈元素我們?cè)诖蛴∑灞P(pán)的時(shí)候進(jìn)行限制不要打印出來(lái)就行,如下圖:

創(chuàng)建棋盤(pán):

#define ROW 9
#define COL 9
#define ROWS ROW+2
#define COLS COL+2

char mine[ROWS][COLS] = { 0 };//存放雷的信息
char show[ROWS][COLS] = { 0 };//存放排查出的雷的信息

在創(chuàng)建完棋盤(pán)后,我們就要對(duì)兩個(gè)棋盤(pán)進(jìn)行初始化:

1、對(duì)于存放布置雷的棋盤(pán)我們用 字符 ' 1 ' 表示雷,用字符 ‘ 0 ' 表示非雷,這里我們首先全部初始化為非雷,雷的排布我們?cè)诓祭椎牡胤街v。
2、對(duì)于展示給玩家,并儲(chǔ)存排雷信息的棋盤(pán)我們用 ‘ * ' 來(lái)初始化。

初始化棋盤(pán)函數(shù):

InitBoard(mine, ROWS,COLS,'0');
InitBoard(show, ROWS,COLS,'*');

函數(shù)的定義:

void InitBoard(char board[ROWS][COLS], int rows, int cols,char set)
{
 int i = 0;
 for (i = 0; i < rows; i++)
 {
  int j = 0;
  for (j = 0; j < cols; j++)
  {
   board[i][j] = set;
  }
 }
}

3、布雷

我們將棋盤(pán)初始化完后,我們就要進(jìn)行布雷的操作了。

雷的分布位置:我們?cè)谕鎾呃讜r(shí)知道,每次雷的分布的位置是不一樣的,是隨機(jī)分布的,所以我們?cè)诓祭撞僮鞯臅r(shí)候要調(diào)用隨機(jī)函數(shù)rand(),在使用隨機(jī)函數(shù)之前,我們要先在主函數(shù)中使用srand()函數(shù)生成隨機(jī)起點(diǎn),這樣就可以保證每次雷的位置不一樣了。關(guān)于這兩個(gè)函數(shù)的使用,可以去MSDN或者cplusplus中去查詢其作用。

然后就是雷的個(gè)數(shù):每次分布一個(gè)就減少一個(gè)。

接著就是布雷的范圍:因?yàn)槲覀兺婕疫M(jìn)行排雷是在9X9的棋盤(pán)內(nèi)進(jìn)行的,所以我們需限定布雷的范圍也在9X9的范圍內(nèi)。

接下來(lái)我們來(lái)看看到底如何實(shí)現(xiàn)的吧!

主函數(shù):

int main()
{
 int input = 0;
 srand((unsigned int)time(NULL));
 do
 {
  menu();//打印菜單
  printf("請(qǐng)選擇:>");
  scanf("%d", &input);
  switch (input)
  {
  case 1:
   game();//游戲主體
   break;
  case 2:
   system("cls");//清屏選項(xiàng)
   break;
  case 0:
   printf("退出游戲\n");
   break;
  default:
   printf("輸入錯(cuò)誤,請(qǐng)重新選擇\n");
   Sleep(1000);
   system("cls");
   break;
  }
 
 } while (input);
 return 0;
}

布雷函數(shù):

#define EASY_COUNT 10  //雷的個(gè)數(shù)

SetMine(mine, ROW, COL);

函數(shù)的定義:

void SetMine(char board[ROWS][COLS], int row, int col)
{
 int x = 0;
 int y = 0;
 int count = EASY_COUNT;//雷的個(gè)數(shù)
 while (count)
 {
  //生成隨機(jī)下標(biāo)(1~9)
  x = rand() % row + 1;
  y = rand() % col + 1;
 
  if (board[x][y] != '1')
  {
   board[x][y] = '1';
   count--;
  }

 }
}

4、打印棋盤(pán)

我們將上方操作完成之后,就需要在屏幕上打印出棋盤(pán)了,但這里一共有兩個(gè)棋盤(pán),我們需要打印的棋盤(pán)是專(zhuān)門(mén)展示給玩家,并儲(chǔ)存排雷信息的棋盤(pán)即用 ‘ * ' 初始化的棋盤(pán)。
還有就是我們需打印的大小是9X9的范圍,而不是全部范圍11X11的。
還有我們需要打印棋盤(pán)的行數(shù)和列數(shù),以便玩家看坐標(biāo)。

打印棋盤(pán)函數(shù):

DisplayBoard(show, ROW, COL);

函數(shù)定義:

void DisplayBoard(char board[ROWS][COLS], int row, int col)
{
 int i = 0;
 printf("----------------\n");
 for (i = 0; i <= 9; i++)
 {
  printf("%d ", i);//打印列標(biāo)
 }
 printf("\n");
 for (i = 1; i <= row; i++)
 {
  int j = 0;
  printf("%d ", i);//打印行標(biāo)
  for (j = 1; j <= col; j++)
  {
   printf("%c ", board[i][j]);
   
  }
  printf("\n");
 }
 printf("----------------\n");
}

5、排雷

完成上方所有操作后,就到我們最精彩,也是最重要的部分了。
要求:
1、輸入排查坐標(biāo)要在打印的棋盤(pán)范圍內(nèi);
2、統(tǒng)計(jì)排查坐標(biāo)周邊八個(gè)位置的雷的個(gè)數(shù);
3、保證第一次輸入坐標(biāo)絕對(duì)安全,不炸死;
4、坐標(biāo)周?chē)鸁o(wú)雷則進(jìn)行自動(dòng)展開(kāi)

排雷主邏輯函數(shù):

FindMine(mine, show, ROW, COL);

統(tǒng)計(jì)排查坐標(biāo)周邊八個(gè)位置的雷的個(gè)數(shù)的函數(shù):

GetMineCount(char mine[ROWS][COLS], int x, int y)

第一次安全函數(shù):

safe(char mine[ROWS][COLS], int row,int col,int x, int y)

展開(kāi)函數(shù)

OpenMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col, int x, int y)

函數(shù)定義(從上往下):

排雷主邏輯函數(shù):

//主邏輯函數(shù)
void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{
 int x = 0;
 int y = 0;
 int win = 0;//統(tǒng)計(jì)排雷的個(gè)數(shù)
 int count = 0;// 統(tǒng)計(jì)雷的個(gè)數(shù)
 while (win<row*col-EASY_COUNT)
 {
  printf("請(qǐng)輸入要排查的坐標(biāo)");
  scanf("%d %d", &x, &y);
  if (x >= 1 && x <= row && y >= 1 && y <= col)  //輸入坐標(biāo)是否合法
  {
   if (mine[x][y] == '1')
   {
    if (0 == win)//第一次踩到雷,重新布雷
    {
     safe(mine, ROW,COL,x, y);
     //DisplayBoard(mine, ROW, COL);
     count = GetMineCount(mine, x, y);

     if (count == 0)
     {
      show[x][y] = ' ';
      win++;
      OpenMine(mine, show, ROW, COL, x, y,&win);//如果周?chē)鷽](méi)有雷,進(jìn)行擴(kuò)展
      DisplayBoard(show, row, col);
     }
     else
     {
      show[x][y] = count + '0';
      DisplayBoard(show, row, col);
     }
    }
    else
    {
     printf("很遺憾,你被炸死了\n");
     DisplayBoard(mine, ROW, COL);
     break;
    }
    
   }
   else
   {
    count = GetMineCount(mine, x, y);
    if (count == 0)
    {
     show[x][y] = ' ';
    }
    else
    {
     show[x][y] = count + '0';
    }
    win++;
    OpenMine(mine, show, ROW, COL, x, y,&win);
    DisplayBoard(show, ROW, COL); 
   }
  }
  else
  {
   printf("坐標(biāo)不在范圍內(nèi),請(qǐng)重新輸入\n");
  }
 }
 if (win == row*col - EASY_COUNT)
 {
  printf("恭喜你,排雷成功\n");
 }
}

統(tǒng)計(jì)周?chē)椎膫€(gè)數(shù):

//統(tǒng)計(jì)排查坐標(biāo)周邊八個(gè)位置的雷的個(gè)數(shù)
int GetMineCount(char mine[ROWS][COLS], int x, int y)
{
 return (mine[x - 1][y] +
  mine[x - 1][y - 1] +
  mine[x][y - 1] +
  mine[x + 1][y - 1] +
  mine[x + 1][y] +
  mine[x + 1][y + 1] +
  mine[x][y + 1] +
  mine[x - 1][y + 1] - 8 * '0');
}

第一次下子,不炸死,則重新布雷:

//第一次安全
void safe(char mine[ROWS][COLS], int row,int col,int x, int y)  
{
 mine[x][y] = '0';
 int count = 1;
 while (count)
 {
  //生成隨機(jī)下標(biāo)(1~9)
  int i = rand() % row + 1;
  int j = rand() % col + 1;
  if ((mine[i][j] != '1') && i != x && j != y)
  {
   mine[i][j] = '1';
   count--;
  }
 }
}

坐標(biāo)周?chē)鷽](méi)雷,可以實(shí)現(xiàn)展開(kāi):

//展開(kāi)函數(shù)
void OpenMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col, int x, int y,int* p)
{
 int i = -1;
 int j = -1;
 for (i = -1; i < 2; i++)//邊界
 {
  for (j = -1; j < 2; j++)
  {
   if (i != 0 || j != 0) // 避免排到自己注意此處的邏輯關(guān)系
   {
    if (x + i >= 1 && x + i <= row && y + j >= 1 && y + j <= col)
    {
     if (show[x + i][y + j] == '*' && mine[x + i][y + j] != '1')
     {
      int count = GetMineCount(mine, x + i, y + j);
      if (count != '0')
      {
       show[x + i][y + j] = count + '0';
       (*p)++;
      }
      else
      {
       show[x + i][y + j] = ' ';
       (*p)++;
       OpenMine(mine, show,ROW,COL, x + i, y + j, p);
      }
     }
    }
   }
  }
 }
}

五、總結(jié)

和三子棋一樣,將整個(gè)工程分為game.c,game.h和test.c三個(gè)文件。如下圖

1、在頭文件game.h主要包括各個(gè)函數(shù)的聲明還有調(diào)用庫(kù)函數(shù)所需的頭文件以及棋盤(pán)行數(shù)列數(shù)的宏定義,方便以后我們?nèi)绻胄薷男谢蛘吡袛?shù)目,直接修改宏定義的內(nèi)容即可。
2、源文件game.c中則包括各種函數(shù)的實(shí)現(xiàn),該文件中要引用頭文件game.h
3、test.c中則包括游戲開(kāi)始菜單的打印和調(diào)用game.c中的函數(shù)

game.h內(nèi)容

#pragma once

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<Windows.h>

#define ROW 9
#define COL 9
#define ROWS ROW+2
#define COLS COL+2


//雷的個(gè)數(shù)
#define EASY_COUNT 10

//初始化棋盤(pán)
void InitBoard(char board[ROWS][COLS], int rows, int cols,char set);

//布置雷
void SetMine(char board[ROWS][COLS], int row, int col);

//打印棋盤(pán)
void DisplayBoard(char board[ROWS][COLS], int row, int col);

//排查雷
void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col);

//第一次安全
void safe(char mine[ROWS][COLS], int row, int col, int x, int y);

//統(tǒng)計(jì)排查坐標(biāo)周邊八個(gè)位置的雷的個(gè)數(shù)
int GetMineCount(char mine[ROWS][COLS], int x, int y);

//坐標(biāo)周?chē)归_(kāi)函數(shù)
void OpenMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col, int x, int y,int* p);

game.c內(nèi)容

#include "game.h"
//初始化棋盤(pán)
void InitBoard(char board[ROWS][COLS], int rows, int cols,char set)
{
 int i = 0;
 for (i = 0; i < rows; i++)
 {
  int j = 0;
  for (j = 0; j < cols; j++)
  {
   board[i][j] = set;
  }
 }
}

//布置雷
void SetMine(char board[ROWS][COLS], int row, int col)
{
 int x = 0;
 int y = 0;
 int count = EASY_COUNT;
 while (count)
 {
  //生成隨機(jī)下標(biāo)(1~9)
  x = rand() % row + 1;
  y = rand() % col + 1;

  if (board[x][y] != '1')
  {
   board[x][y] = '1';
   count--;
  }

 }
}

//打印棋盤(pán)
void DisplayBoard(char board[ROWS][COLS], int row, int col)
{
 int i = 0;
 printf("----------------\n");
 for (i = 0; i <= 9; i++)
 {
  printf("%d ", i);
 }
 printf("\n");
 for (i = 1; i <= row; i++)
 {
  int j = 0;
  printf("%d ", i);
  for (j = 1; j <= col; j++)
  {
   printf("%c ", board[i][j]);
   
  }
  printf("\n");
 }
 printf("----------------\n");
}

//排雷主邏輯
void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{
 int x = 0;
 int y = 0;
 int win = 0;//統(tǒng)計(jì)排雷的個(gè)數(shù)
 int count = 0;// 統(tǒng)計(jì)雷的個(gè)數(shù)
 while (win<row*col-EASY_COUNT)
 {
  printf("請(qǐng)輸入要排查的坐標(biāo)");
  scanf("%d %d", &x, &y);
  if (x >= 1 && x <= row && y >= 1 && y <= col)  //輸入坐標(biāo)是否合法
  {
   if (mine[x][y] == '1')
   {
    if (0 == win)//第一次踩到雷,重新布雷
    {
     safe(mine, ROW,COL,x, y);
     //DisplayBoard(mine, ROW, COL);
     count = GetMineCount(mine, x, y);

     if (count == 0)
     {
      show[x][y] = ' ';
      win++;
      OpenMine(mine, show, ROW, COL, x, y,&win);//如果周?chē)鷽](méi)有雷,進(jìn)行擴(kuò)展
      DisplayBoard(show, row, col);
     }
     else
     {
      show[x][y] = count + '0';
      DisplayBoard(show, row, col);
     }
    }
    else
    {
     printf("很遺憾,你被炸死了\n");
     DisplayBoard(mine, ROW, COL);
     break;
    }
    
   }
   else
   {
    count = GetMineCount(mine, x, y);
    if (count == 0)
    {
     show[x][y] = ' ';
    }
    else
    {
     show[x][y] = count + '0';
    }
    win++;
    OpenMine(mine, show, ROW, COL, x, y,&win);
    DisplayBoard(show, ROW, COL); 
   }
  }
  else
  {
   printf("坐標(biāo)不在范圍內(nèi),請(qǐng)重新輸入\n");
  }
 }
 if (win == row*col - EASY_COUNT)
 {
  printf("恭喜你,排雷成功\n");
 }
}

//統(tǒng)計(jì)排查坐標(biāo)周邊八個(gè)位置的雷的個(gè)數(shù)
int GetMineCount(char mine[ROWS][COLS], int x, int y)
{
 return (mine[x - 1][y] +
  mine[x - 1][y - 1] +
  mine[x][y - 1] +
  mine[x + 1][y - 1] +
  mine[x + 1][y] +
  mine[x + 1][y + 1] +
  mine[x][y + 1] +
  mine[x - 1][y + 1] - 8 * '0');
}

//保證第一次下子安全
void safe(char mine[ROWS][COLS], int row,int col,int x, int y)  
{
 mine[x][y] = '0';
 int count = 1;
 while (count)
 {
  //生成隨機(jī)下標(biāo)(1~9)
  int i = rand() % row + 1;
  int j = rand() % col + 1;
  if ((mine[i][j] != '1') && i != x && j != y)
  {
   mine[i][j] = '1';
   count--;
  }
 }
}

//展開(kāi)函數(shù)
void OpenMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col, int x, int y,int* p)
{
 int i = -1;
 int j = -1;
 for (i = -1; i < 2; i++)//邊界
 {
  for (j = -1; j < 2; j++)
  {
   if (i != 0 || j != 0) // 避免排到自己注意此處的邏輯關(guān)系
   {
    if (x + i >= 1 && x + i <= row && y + j >= 1 && y + j <= col)
    {
     if (show[x + i][y + j] == '*' && mine[x + i][y + j] != '1')
     {
      int count = GetMineCount(mine, x + i, y + j);
      if (count != '0')
      {
       show[x + i][y + j] = count + '0';
       (*p)++;
      }
      else
      {
       show[x + i][y + j] = ' ';
       (*p)++;
       OpenMine(mine, show,ROW,COL, x + i, y + j, p);
      }
     }
    }
   }
  }
 }
}

test.c內(nèi)容

#include "game.h"
void menu()
{
 printf("**************************************************\n");
 printf("*******       Welcome to Minesweeper       *******\n");
 printf("**********          1. 開(kāi)始游戲         **********\n");
 printf("**********          2. 清空屏幕         **********\n");
 printf("**********          0. 退出游戲         **********\n");
 printf("**************************************************\n");
}

void game()
{
 char mine[ROWS][COLS] = { 0 };//存放雷的信息
 char show[ROWS][COLS] = { 0 };//存放排查出的雷的信息
 //初始化一下棋盤(pán)
 InitBoard(mine, ROWS,COLS,'0');
 InitBoard(show, ROWS,COLS,'*');

 //布置雷
 SetMine(mine, ROW, COL);
 //打印棋盤(pán)
 //DisplayBoard(mine, ROW, COL);
 DisplayBoard(show, ROW, COL);
 //排查雷
 FindMine(mine, show, ROW, COL);

}

int main()
{
 int input = 0;
 srand((unsigned int)time(NULL));
 do
 {
  menu();//打印菜單
  printf("請(qǐng)選擇:>");
  scanf("%d", &input);
  switch (input)
  {
  case 1:
   game();游戲主體
   break;
  case 2:
   system("cls");//清屏選項(xiàng)
   break;
  case 0:
   printf("退出游戲\n");
   break;
  default:
   printf("輸入錯(cuò)誤,請(qǐng)重新選擇\n");
   Sleep(1000);
   system("cls");
   break;
  }
 
 } while (input);
 return 0;
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 匯編語(yǔ)言常見(jiàn)錯(cuò)誤信息中文注解

    匯編語(yǔ)言常見(jiàn)錯(cuò)誤信息中文注解

    這篇文章主要介紹了匯編語(yǔ)言常見(jiàn)錯(cuò)誤信息中文注解,本文收集大部分匯編中常見(jiàn)錯(cuò)誤信息及對(duì)應(yīng)的中文注解,需要的朋友可以參考下
    2014-09-09
  • C語(yǔ)言Make命令用法講解

    C語(yǔ)言Make命令用法講解

    本文詳細(xì)講解了C語(yǔ)言Make命令用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • C++ 數(shù)據(jù)結(jié)構(gòu)二叉樹(shù)(前序/中序/后序遞歸、非遞歸遍歷)

    C++ 數(shù)據(jù)結(jié)構(gòu)二叉樹(shù)(前序/中序/后序遞歸、非遞歸遍歷)

    這篇文章主要介紹了C++ 數(shù)據(jù)結(jié)構(gòu)二叉樹(shù)(前序/中序/后序遞歸、非遞歸遍歷)的相關(guān)資料,這里提供實(shí)例代碼來(lái)幫助大家理解掌握二叉樹(shù),需要的朋友可以參考下
    2017-07-07
  • C語(yǔ)言實(shí)現(xiàn)靜態(tài)鏈表

    C語(yǔ)言實(shí)現(xiàn)靜態(tài)鏈表

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)靜態(tài)鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • c++中nlohmann?json的基本使用教程

    c++中nlohmann?json的基本使用教程

    nlohmann/json 是一個(gè)C++實(shí)現(xiàn)的JSON解析器,使用非常方便直觀,下面這篇文章主要給大家介紹了關(guān)于c++中nlohmann?json基本使用的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Qt線程池QThreadPool的使用詳解

    Qt線程池QThreadPool的使用詳解

    本文主要介紹了Qt線程池QThreadPool的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • C語(yǔ)言三子棋小游戲的實(shí)現(xiàn)

    C語(yǔ)言三子棋小游戲的實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言三子棋小游戲的實(shí)現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 純c實(shí)現(xiàn)異常捕獲try-catch組件教程示例

    純c實(shí)現(xiàn)異常捕獲try-catch組件教程示例

    這篇文章主要為大家介紹了純c實(shí)現(xiàn)異常捕獲try-catch組件教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • C語(yǔ)言進(jìn)階:指針的進(jìn)階(2)

    C語(yǔ)言進(jìn)階:指針的進(jìn)階(2)

    這篇文章主要介紹了C語(yǔ)言指針詳解及用法示例,介紹了其相關(guān)概念,然后分享了幾種用法,具有一定參考價(jià)值。需要的朋友可以了解下
    2021-09-09
  • C++基于easyx圖形庫(kù)實(shí)現(xiàn)推箱子游戲

    C++基于easyx圖形庫(kù)實(shí)現(xiàn)推箱子游戲

    這篇文章主要為大家詳細(xì)介紹了C++基于easyx圖形庫(kù)實(shí)現(xiàn)推箱子游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06

最新評(píng)論