最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實現(xiàn)掃雷游戲小項目

 更新時間:2021年11月25日 15:33:13   作者:XATU的弟中之弟  
這篇文章主要為大家詳細介紹了C語言實現(xiàn)掃雷游戲小項目,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C語言實現(xiàn)掃雷游戲的具體代碼,供大家參考,具體內(nèi)容如下

一.基本實現(xiàn)功能

1.建立一個游戲菜單

2.創(chuàng)建游戲盤,一個埋雷,一個顯示。

3.打印游戲盤。

4.翻開坐標如若沒踩到雷顯示周圍一圈8個有幾個雷。

5.判斷勝利 翻開的格子數(shù)等于沒埋雷的個數(shù)。

二.源代碼展示

1.頭文件? minesweep.h

#pragma once
#include <stdio.h>
#include <Windows.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
#define _CRT_SECURE_NO_WARNINGS
#define ROW 12
#define COL 12
#define NUM 10
#define BOOM '1'
void Game();
int Login();

2.游戲邏輯 game.c

#include "minesweep.h"
void Menu() {
 printf("*------------------*\n");
 printf("|    1.開始游戲    |\n");
 printf("|    2.退出游戲    |\n");
 printf("*------------------*\n");
 printf("請輸入你的選擇:");
}
int main()
{
 int flag = 0;
 int sclect = 0;
 srand((unsigned long)time(NULL));
 Menu();
 while (!flag) {
  scanf_s("%d", &sclect);
  switch (sclect) {
  case 1:
   Game();
   break;
  case 2:
   flag = 1;
   break;
  default:
   printf("你輸入的數(shù)據(jù)不合法,請重新輸入!");
   break;
  }
 }
 printf("下次再來玩吧!再見!");
 return 0;
}

3.實現(xiàn)函數(shù) mysweep.c

#include "minesweep.h"
void SetBoom(char board[][COL],int row,int col) {//埋雷
 int i = 0;
 while (i < NUM) {
  int _x = rand() % 10 + 1;                //我們的棋盤是10*10 那就模10+1 xy 對應放雷
  int _y = rand() % 10 + 1;
  if (board[_x][_y] == BOOM) {             //可能隨機是重復那就不放了
   continue;
  }
  board[_x][_y] = BOOM;
  i++;
 }
}
 
void Showboard(char board[][COL], int row, int col) {//棋盤的打印
 printf("     ");
 for (int i = 1; i < col - 1; i++)
 {
  printf("%d ", i);
 }
 printf("\n");
 for (int j = 1; j < row - 1; j++)
 {
  printf("%2d  ", j);
  printf("|");
  for (int k = 1; k < col - 1; k++)
  {
   printf("%c|", board[j][k]);
  }
  printf("\n");
 }
 printf("\n");
}
 
int CountSweeps(char board[][COL], int x, int y) {  //我們存的是字符數(shù)組哦 
 return board[x - 1][y - 1] + board[x - 1][y] + \
  board[x - 1][y + 1] + board[x][y - 1] + \
  board[x][y + 1] + board[x + 1][y - 1] + \
  board[x + 1][y] + board[x + 1][y + 1] - 8 * '0';
}
 
void Game() {
 char show_board[ROW][COL];
 char sweep_board[ROW][COL];
 int clear = 0;
 int sum = (ROW - 2) * (COL - 2) - NUM;
 memset(show_board, '*', sizeof(show_board));
 memset(sweep_board, '0', sizeof(sweep_board));
 SetBoom(sweep_board, ROW, COL);
 while (1) {
  int x = 0;
  int y = 0;
  system("cls");
  Showboard(show_board,ROW,COL);
  printf("請輸入你要翻開的坐標:");
  scanf_s("%d %d", &x, &y);
  if (!(x >= 1 && x <= ROW - 2 && y >= 1 && y <= COL - 2)) {
   printf("你輸入的數(shù)據(jù)不合法!請重新輸入!");
  }
  if (show_board[x][y] != '*') {
   printf("掃雷的位置已經(jīng)被排除!\n");
   continue;
  }
  if (sweep_board[x][y] == '1') {
   printf("對不起,你被炸死了!\n");
   break;
  }
  else {
   int count = CountSweeps(sweep_board,x,y);//翻開沒有被炸死而且合法那就根據(jù)判斷勝利因數(shù)咱就空白++
   show_board[x][y] = count + '0';
   clear++;
  }
  if (clear >= sum) {    //++=就是原本設置除雷剩下的剛好相等就勝利
   printf("恭喜你,你贏了!\n");
   break;
  }
 }
}

三.小結(jié)

這次的掃雷還是很初階的沒有圖形操作界面 而且和我們老xp上面的掃雷不一樣很多功能還沒有實現(xiàn)比如插旗排雷 還有點開一個·周圍還能展開很多格子,還是有待提高希望各路大神前來指證謝謝?。?!

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++超詳細講解構(gòu)造函數(shù)

    C++超詳細講解構(gòu)造函數(shù)

    C++的構(gòu)造函數(shù)的作?:初始化類對象的數(shù)據(jù)成員。即類的對象被創(chuàng)建的時候,編譯系統(tǒng)對該對象分配內(nèi)存空間,并?動調(diào)?構(gòu)造函數(shù),完成類成員的初始化。構(gòu)造函數(shù)的特點:以類名作為函數(shù)名,?返回類型
    2022-06-06
  • C語言詳細分析講解多文件的程序設計

    C語言詳細分析講解多文件的程序設計

    所謂的C語言多文件編程就是,將代碼實現(xiàn)模塊化。比如說一個項目的一項功能放在一個一個文件里,然后將實現(xiàn)這個功能的函數(shù)放在一個c文件<BR>
    2022-04-04
  • c語言如何輸出一個n行m列的圖形

    c語言如何輸出一個n行m列的圖形

    這篇文章主要介紹了c語言如何輸出一個n行m列的圖形問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • C++入門教程之引用與指針

    C++入門教程之引用與指針

    初學C++時,很容易把指針和引用的用法混在一起,下面這篇文章主要給大家介紹了關(guān)于C++入門教程之引用與指針的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • 全面解析設計模式中的建造者模式及相關(guān)C++實現(xiàn)

    全面解析設計模式中的建造者模式及相關(guān)C++實現(xiàn)

    這篇文章主要介紹了設計模式中的建造者模式及相關(guān)C++實現(xiàn),需要的朋友可以參考下
    2016-03-03
  • C語言詳細講解常用字符串處理函數(shù)

    C語言詳細講解常用字符串處理函數(shù)

    在日常編程中,對于字符串的操作中我們都很習慣的使用一些C庫中自帶的函數(shù),并且關(guān)于字符串的操作函數(shù)基本都在 string.h 這個頭文件中。關(guān)于C庫字符串常用處理函數(shù)也是平時面試或者考試過程中非常喜歡考的,本文將帶大家手動來實現(xiàn)這些常用函數(shù)
    2022-05-05
  • C語言數(shù)據(jù)結(jié)構(gòu)中二分查找遞歸非遞歸實現(xiàn)并分析

    C語言數(shù)據(jù)結(jié)構(gòu)中二分查找遞歸非遞歸實現(xiàn)并分析

    這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)中二分查找遞歸非遞歸實現(xiàn)并分析的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • C語言數(shù)據(jù)結(jié)構(gòu)深入探索順序表

    C語言數(shù)據(jù)結(jié)構(gòu)深入探索順序表

    大家好,今天給大家?guī)淼氖琼樞虮?,我覺得順序表還是有比較難理解的地方的,于是我就把這一塊的內(nèi)容全部整理到了一起,希望能夠給剛剛進行學習數(shù)據(jù)結(jié)構(gòu)的人帶來一些幫助,或者是已經(jīng)學過這塊的朋友們帶來更深的理解,我們現(xiàn)在就開始吧
    2022-05-05
  • C語言直接插入排序算法

    C語言直接插入排序算法

    大家好,本篇文章主要講的是C語言直接插入排序算法,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • 關(guān)于C++友元類的實現(xiàn)講解

    關(guān)于C++友元類的實現(xiàn)講解

    今天小編就為大家分享一篇關(guān)于關(guān)于C++友元類的實現(xiàn)講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12

最新評論

菏泽市| 焉耆| 扶沟县| 灵台县| 浦江县| 无锡市| 怀化市| 高州市| 南阳市| 瑞安市| 温泉县| 阳曲县| 萨迦县| 浦江县| 喀什市| 南和县| 宜良县| 宜阳县| 河东区| 沐川县| 满洲里市| 鹤壁市| 太谷县| 丹棱县| 集贤县| 红原县| 天祝| 建德市| 五华县| 白沙| 库伦旗| 肇源县| 海安县| 全椒县| 靖西县| 彭阳县| 桓台县| 龙南县| 如皋市| 尚志市| 泾源县|