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

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

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

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

一.基本實現(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;
  }
 }
}

三.小結

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

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

相關文章

  • QT編寫地圖實現(xiàn)獲取區(qū)域邊界

    QT編寫地圖實現(xiàn)獲取區(qū)域邊界

    區(qū)域邊界是一些坐標點集合,而且不同的行政區(qū)劃得到的區(qū)域邊界點數(shù)組集合個數(shù)不同。本文將具體介紹QT在編寫地圖時如何實現(xiàn)獲取區(qū)域邊界,需要的可以參考一下
    2022-01-01
  • C語言函數(shù)棧幀的創(chuàng)建與銷毀原理圖解

    C語言函數(shù)棧幀的創(chuàng)建與銷毀原理圖解

    我們知道c語言中函數(shù)都是被調用的,main函數(shù)里面能調用其他函數(shù),其實main函數(shù)也是被別的函數(shù)調用的,下面通過本文給大家分享c語言函數(shù)棧幀的創(chuàng)建和銷毀過程,一起看看吧
    2022-05-05
  • C++ List鏈表的介紹和使用

    C++ List鏈表的介紹和使用

    list是可以在常數(shù)范圍內在任意位置進行插入和刪除的序列式容器,并且該容器可以前后雙向迭代,這篇文章主要介紹了C++ List鏈表的介紹和使用,需要的朋友可以參考下
    2023-03-03
  • C++ stack與queue模擬實現(xiàn)詳解

    C++ stack與queue模擬實現(xiàn)詳解

    這篇文章主要給大家介紹了關于c++stack與queue模擬實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面跟著小編來一起學習學習吧
    2021-08-08
  • C++實現(xiàn)快捷店會員管理系統(tǒng)

    C++實現(xiàn)快捷店會員管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)快捷店會員管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • c語言實現(xiàn)通訊錄管理系統(tǒng)詳細實例

    c語言實現(xiàn)通訊錄管理系統(tǒng)詳細實例

    這篇文章主要給大家介紹了關于c語言實現(xiàn)通訊錄管理系統(tǒng)的相關資料,通訊錄管理系統(tǒng)是一種常見的應用程序,可以用來管理聯(lián)系人的信息,包括姓名、電話號碼、地址等,需要的朋友可以參考下
    2023-07-07
  • 解析C++中不能重載為友元函數(shù)的四個運算符

    解析C++中不能重載為友元函數(shù)的四個運算符

    以下是對C++中不能重載為友元函數(shù)的四個運算符進行了詳細的分析介紹,需要的朋友可以過來參考下
    2013-07-07
  • C語言實現(xiàn)順序表的全操作詳解

    C語言實現(xiàn)順序表的全操作詳解

    順序表,全名順序存儲結構,是線性表的一種,線性表用于存儲邏輯關系為“一對一”的數(shù)據(jù),順序表自然也不例外,不僅如此,順序表對數(shù)據(jù)的物理存儲結構也有要求,跟隨下文來具體了解吧
    2022-04-04
  • C語言數(shù)據(jù)結構之隊列算法詳解

    C語言數(shù)據(jù)結構之隊列算法詳解

    這篇文章介紹了C語言數(shù)據(jù)結構之隊列的算法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • 深入理解void以及void指針的含義

    深入理解void以及void指針的含義

    本篇文章對小編void以及void指針的含義進行了詳細的分析和介紹。需要的朋友參考下
    2013-05-05

最新評論