成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

使用c語言制作掃雷游戲的代碼

今天小編給大家分享的是使用c語言制作掃雷游戲的代碼,相信很多人都不太了解,為了讓大家更加了解c語言制作掃雷游戲的代碼,所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。一定會有所收獲的哦。

目前創(chuàng)新互聯(lián)已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、鐵山網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

使用c語言制作掃雷游戲的代碼

c語言簡單小游戲-掃雷

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

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <windows.h>
#include <time.h>
/*
 用 C 語言寫一個簡單的掃雷游戲
*/
// 1.寫一個游戲菜單 Menu()
// 2.開始游戲
 // 1.初始化二維數(shù)組 Init_Interface()
 // 2.打印游戲界面 Print_Interface()
 // 3.玩家掀起指定位置 Play() --> 指定輸入坐標(biāo)(判斷合法性)
 // 1.判斷該位置是否是雷
 // 2.判斷是否掀掉所有空地
 // 3.如果掀開的是空地,則判斷該空地周圍是否有雷
  // 1.如果周圍有雷,則統(tǒng)計周圍雷的個數(shù)
  // 2.如果周圍沒有雷,則掀開周圍除了雷的所有空地,并且統(tǒng)計所掀開空地周圍雷的個數(shù)
 // 4.更新地圖
 // 5.繼續(xù) 3 的循環(huán)
 
//定義全局變量:
//定義掃雷地圖的長和寬
#define MAX_ROW 9
#define MAX_COL 9
//定義默認(rèn)的雷數(shù)
#define DEFAULT_MINE 9
//定義兩個二維數(shù)組,分別存放初始地圖和雷陣
char show_map[MAX_ROW + 2][MAX_COL + 2];
char mine_map[MAX_ROW + 2][MAX_COL + 2];
 
//寫一個游戲菜單
int Menu() {
 printf("=========\n");
 printf("1.開始游戲\n");
 printf("0.結(jié)束游戲\n");
 printf("=========\n");
 printf("請選擇游戲菜單選項:");
 int choice = 0;
 while (1) {
 scanf("%d", &choice);
 if (choice != 0 && choice != 1) {
  printf("您的輸入有誤, 請重新輸入\n");
  continue;
 }
 break;
 }
 return choice;
}
 
//開始游戲
//初始化數(shù)組
void Init_Interface() {
 for (int row = 0; row < MAX_ROW + 2; row++) {
 for (int col = 0; col < MAX_COL + 2; col++) {
  show_map[row][col] = '*';
 }
 }
 for (int row = 0; row < MAX_ROW + 2; row++) {
 for (int col = 0; col < MAX_COL + 2; col++) {
  mine_map[row][col] = '0';
 }
 }
 int mine_count = DEFAULT_MINE;
 while (mine_count > 0) {
 int row = rand() % MAX_ROW + 1;
 int col = rand() % MAX_COL + 1;
 if (mine_map[row][col] == '1') { //將雷設(shè)置為 1
  //此處已經(jīng)有雷
  continue;
 }
 mine_count--;
 mine_map[row][col] = '1';
 }
}
//打印初始界面
void Print_Interface(char map[MAX_ROW + 2][MAX_COL + 2]) {
 printf("  ");
 for (int col = 1; col <= MAX_COL; col++) {
 printf("%d ", col);
 }
 printf("\n  ");
 for (int col = 1; col <= MAX_COL; col++) {
 printf("--");
 }
 printf("\n");
 for (int row = 1; row <= MAX_ROW ; row++) {
 printf("%02d |", row);
 for (int col = 1; col <= MAX_COL; col++) {
  printf("%c ", map[row][col]);
 }
 printf("\n");
 }
}
//寫一個統(tǒng)計周圍雷數(shù)個數(shù)的函數(shù)
int Around_Mine_count(int row, int col) {
 return (mine_map[row - 1][col - 1] - '0'
 + mine_map[row - 1][col] - '0'
 + mine_map[row - 1][col + 1] - '0'
 + mine_map[row][col - 1] - '0'
 + mine_map[row][col + 1] - '0'
 + mine_map[row + 1][col - 1] - '0'
 + mine_map[row + 1][col] - '0'
 + mine_map[row + 1][col + 1] - '0');
}
//寫一個判斷該位置周圍是否有雷的函數(shù)
int No_Mine(int row, int col) {
 if (Around_Mine_count(row, col) == 0) {
 return 1;
 }
 return 0;
}
//寫一個掀開該位置周圍空地的函數(shù)
void Open_Blank(int row, int col) {
 show_map[row - 1][col - 1] = '0' + Around_Mine_count(row - 1, col - 1);
 show_map[row - 1][col] = '0' + Around_Mine_count(row - 1, col);
 show_map[row - 1][col + 1] = '0' + Around_Mine_count(row - 1, col + 1);
 show_map[row][col - 1] = '0' + Around_Mine_count(row, col - 1);
 show_map[row][col + 1] = '0' + Around_Mine_count(row, col + 1);
 show_map[row + 1][col - 1] = '0' + Around_Mine_count(row + 1, col - 1);
 show_map[row + 1][col] = '0' + Around_Mine_count(row + 1, col);
 show_map[row + 1][col + 1] = '0' + Around_Mine_count(row + 1, col + 1);
}
//寫一個判斷游戲結(jié)束的函數(shù)
int Success_Sweep(char show_map[MAX_ROW + 2][MAX_COL + 2]) {
 int count = 0;
 for (int row = 1; row <= MAX_ROW; row++) {
 for (int col = 1; col <= MAX_COL; col++) {
  if (show_map[row][col] == '*') {
  count++;
  }
 }
 }
 if (count == DEFAULT_MINE) {
 return 1;
 }
 return 0;
}
//開始游戲
void StartGame() {
 while (1) {
 printf("請輸入您要掀開的坐標(biāo):");
 int row = 0;
 int col = 0;
 while (1) {
  scanf("%d %d", &row, &col);
  if (row < 1 || row > MAX_ROW || col < 1 || col > MAX_COL) {
  printf("您的輸入有誤,請重新輸入!\n");
  continue;
  }
  if (show_map[row][col] != '*') {
  printf("該位置已被掀開,請重新選擇\n");
  continue;
  }
  break;
 }
 //判斷該地方是否有雷
 if (mine_map[row][col] == '1') {
  Print_Interface(mine_map);
  printf("該地方有雷,游戲結(jié)束!!!\n");
  break;
 }
 if (No_Mine(row, col)) {
  show_map[row][col] = '0';
  Open_Blank(row, col);
 }
 show_map[row][col] = '0' + Around_Mine_count(row, col);
 //判斷是否掀開所有空地
 if (Success_Sweep(show_map) == 1) {
  Print_Interface(mine_map);
  printf("您已成功掃雷!!!\n");
  break;
 }
 system("cls");
 //更新地圖
 Print_Interface(show_map);
 }
}
 
int main() {
 if (Menu() == 0) {
 exit(0);
 }
 srand((unsigned int)time(NULL));
 Init_Interface();
 Print_Interface(show_map);
 StartGame();
 
 system("pause");
 return 0;
}

效果圖:

使用c語言制作掃雷游戲的代碼

數(shù)字代表周圍雷的個數(shù)

關(guān)于使用c語言制作掃雷游戲的代碼就分享到這里了,當(dāng)然并不止以上和大家分析的辦法,不過小編可以保證其準(zhǔn)確性是絕對沒問題的。希望以上內(nèi)容可以對大家有一定的參考價值,可以學(xué)以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

新聞名稱:使用c語言制作掃雷游戲的代碼
URL標(biāo)題:http://jinyejixie.com/article0/pocpoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、面包屑導(dǎo)航網(wǎng)站營銷、網(wǎng)站設(shè)計公司、域名注冊、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
吉隆县| 安阳市| 南川市| 云霄县| 保山市| 盱眙县| 进贤县| 吉林省| 盱眙县| 漾濞| 西青区| 青浦区| 新巴尔虎左旗| 陇西县| 筠连县| 太湖县| 称多县| 安塞县| 高平市| 丰都县| 沁阳市| 五河县| 渭南市| 东丰县| 阳江市| 宣威市| 沾化县| 崇信县| 平谷区| 富锦市| 太康县| 荆州市| 祁阳县| 达州市| 泸水县| 阿拉善左旗| 榕江县| 同仁县| 东乡族自治县| 宁国市| 原平市|