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

C語(yǔ)言代碼實(shí)現(xiàn)簡(jiǎn)易掃雷

 更新時(shí)間:2021年01月19日 08:15:20   作者:幽沫沫  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言代碼實(shí)現(xiàn)簡(jiǎn)易掃雷,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語(yǔ)言代碼實(shí)現(xiàn)簡(jiǎn)易掃雷的具體代碼,供大家參考,具體內(nèi)容如下

源.c代碼如下:

#define _CRT_SECURE_NO_WARNINGS

#include"Game.h"

void Game()
{
 //創(chuàng)建兩個(gè)雷區(qū),一個(gè)記錄雷,一個(gè)展示給玩家
 char mine[ROWS][COLS] = { 0 };
 char show[ROWS][COLS] = { 0 };
 //初始化兩個(gè)雷區(qū)
 Init_board(mine, ROWS, COLS, '0');
 Init_board(show, ROWS, COLS, '*');
 //打印雷區(qū)
 Prin_board(show, ROW, COL);
 //布置地雷
 PlaceMine(mine, ROWS, COLS);
 //開(kāi)始掃雷
 FoundMine(mine, show, ROW, COL);
}
int main()
{
 srand((unsigned int)time(NULL));
 //打印菜單
 int input = 0;
 printf("**********************************\n");
 printf("******* 1.play   0.exit *******\n");
 printf("**********************************\n");
 do
 {
 printf("請(qǐng)選擇:\n");
 scanf("%d", &input);
 switch(input)
 {
 case 1:
  Game();
  printf("再來(lái)一局請(qǐng)輸入1,退出請(qǐng)按0\n");
  break;
 case 0:
  printf("退出游戲\n");
  break;
 default:
  printf("請(qǐng)輸入1或0:\n");
  break;
 }
 } while (input);
 return 0;
}

Game.h代碼如下:

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

#define ROWS 11
#define COLS 11
#define ROW ROWS - 2 
#define COL COLS - 2
#define EASY 10

void Init_board(char board[ROWS][COLS], int rows, int cols, char set);
void Prin_board(char board[ROWS][COLS], int row, int col);
void PlaceMine(char board[ROWS][COLS], int row, int col);
void FoundMine(char board1[ROWS][COLS], char board2[ROWS][COLS], int row, int col);

Game.c代碼如下:

#define _CRT_SECURE_NO_WARNINGS

#include"Game.h"

int Sum(char board[ROWS][COLS], int x, int y)
{
 int tem = y;//備份y的值,方便循環(huán)中初始化y值
 //(x-1,y-1) (x-1,y) (x-1,y+1)
 //(x,y-1)  (x,y)  (x,y+1)
 //(x+1,y-1) (x+1,y) (x+1,y+1)
 int i = 0, j = 0;
 int sum = 0;
 for (i = 0; i < 3; i++, x++)
 {
 for (j = 0, y = tem; j < 3; j++, y++)
 {
  sum += board[x - 1][y - 1];
 }
 }
 sum = sum - 8 * (int)'0';
 return sum;
}
void Init_board(char board[ROWS][COLS], int rows, int cols, char set)
{
 int i = 0, j = 0;
 for (i = 0; i < rows; i++)
 {
 for (j = 0; j < cols; j++)
 {
  board[i][j] = set;
 }
 }
}
void Prin_board(char board[ROWS][COLS], int row, int col)
{
 int i = 0, j = 0;
 //打印列號(hào)
 for (i = 0; i < 10; i++)
 {
 printf("%d ", i);
 if (i == 0)
  printf(" ");
 }
 printf("\n\n");
 for (i = 1; i <= row; i++)
 {
 printf("%d  ", i);//打印行號(hào)
 for (j = 1; j <= col; j++)
 {
  printf("%c ", board[i][j]);
 }
 printf("\n");
 }
}
void PlaceMine(char board[ROWS][COLS], int row, int col)
{
 int count = 20;
 while (count)//控制地雷個(gè)數(shù)
 {
 int x = 0, y = 0;
 x = rand() % 9 + 1;
 y = rand() % 9 + 1;
 board[x][y] = '1';
 count--;
 }
}
void FoundMine(char board1[ROWS][COLS], char board2[ROWS][COLS], int row, int col)
{
 int x = 0, y = 0;
 //判斷輸入坐標(biāo)是否合法
 while (1)
 {
 printf("請(qǐng)輸入排雷的坐標(biāo):\n");
 scanf("%d%d", &x, &y);
 if (x >= 1 && x <= row && y >= 1 && y <= col)
 {
  if (board1[x][y] == '1')
  {
  printf("游戲結(jié)束,你踩雷了\n");
  break;
  }
  else
  {
  board2[x][y] = Sum(board1, x, y);
  Prin_board(board2, ROW, COL);
  }
 }
 else
  printf("坐標(biāo)非法\n");
 }
 if (board1[x][y] != '1')
 printf("恭喜你完成游戲!\n");
}

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

相關(guān)文章

  • 手把手帶你學(xué)習(xí)C++的數(shù)據(jù)類型

    手把手帶你學(xué)習(xí)C++的數(shù)據(jù)類型

    這篇文章主要為大家介紹了C++的數(shù)據(jù)類型,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助,希望能夠給你帶來(lái)幫助
    2021-11-11
  • C++中4種類型轉(zhuǎn)換方式 cast操作詳解

    C++中4種類型轉(zhuǎn)換方式 cast操作詳解

    static_cast,支持子類指針到父類指針的轉(zhuǎn)換,并根據(jù)實(shí)際情況調(diào)整指針的值,反過(guò)來(lái)也支持,但會(huì)給出編譯警告,它作用最類似C風(fēng)格的“強(qiáng)制轉(zhuǎn)換”,一般來(lái)說(shuō)可認(rèn)為它是安全的
    2013-10-10
  • 老生常談C++中實(shí)參形參的傳遞問(wèn)題

    老生常談C++中實(shí)參形參的傳遞問(wèn)題

    下面小編就為大家?guī)?lái)一篇老生常談C++中實(shí)參形參的傳遞問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • C語(yǔ)言小程序 如何判斷兩個(gè)日期之差

    C語(yǔ)言小程序 如何判斷兩個(gè)日期之差

    輸入兩個(gè)日期,計(jì)算之間相差多少天。 用了兩種方法實(shí)現(xiàn),第二種利用結(jié)構(gòu)體,代碼比較清晰,其余的都一樣
    2013-07-07
  • C++讀入

    C++讀入"N,X,Y,Z"格式文本文件到Eigen3 Matrix

    這篇文章主要介紹了C++讀入"N,X,Y,Z"格式文本文件到Eigen3 Matrix,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • C++實(shí)現(xiàn)單詞管理系統(tǒng)

    C++實(shí)現(xiàn)單詞管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)單詞管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++之list容器模擬實(shí)現(xiàn)方式

    C++之list容器模擬實(shí)現(xiàn)方式

    這篇文章主要介紹了C++之list容器模擬實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C++如何調(diào)用簡(jiǎn)單的python程序

    C++如何調(diào)用簡(jiǎn)單的python程序

    這篇文章主要介紹了C++如何調(diào)用簡(jiǎn)單的python程序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C語(yǔ)言使用libZPlay錄制聲音并寫(xiě)到文件的方法

    C語(yǔ)言使用libZPlay錄制聲音并寫(xiě)到文件的方法

    這篇文章主要介紹了C語(yǔ)言使用libZPlay錄制聲音并寫(xiě)到文件的方法,實(shí)例分析了C語(yǔ)言操作音頻文件的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • c++中string類型和int類型相互轉(zhuǎn)換的幾種常用方法

    c++中string類型和int類型相互轉(zhuǎn)換的幾種常用方法

    我們?cè)诰帉?xiě)程序時(shí),經(jīng)常涉及到int與string之間的類型轉(zhuǎn)換,本文主要介紹了c++中string類型和int類型相互轉(zhuǎn)換的幾種常用方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08

最新評(píng)論