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

基于C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的掃雷游戲

 更新時(shí)間:2021年10月29日 14:49:27   作者:weixin_46114879  
這篇文章主要為大家詳細(xì)介紹了基于C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

掃雷游戲的實(shí)現(xiàn),必須要考慮其中包含的功能。

首先是在游戲開(kāi)始時(shí)的初始界面,規(guī)定用戶輸入1則游戲開(kāi)始,輸入2則游戲結(jié)束,再去創(chuàng)建兩個(gè)二維數(shù)組,一個(gè)存放用戶看到的界面,一個(gè)存放埋雷的雷盤(pán),在進(jìn)行初始化兩個(gè)二維數(shù)組,用戶界面展示為一個(gè)10*10的界面,首行和首列存儲(chǔ)'0'-'9',給用戶直觀的可以尋找想要搜索的元素,雷區(qū)初始化為' 0 ',用戶界面初始化為'?'。

在進(jìn)行雷位置的初始化,使用數(shù)字幀表示,用  數(shù)字幀%9+1  得到一個(gè)1-9的數(shù)字,可以取得一個(gè)[1-9][1-9]的坐標(biāo),建立一個(gè) i == 0 ,i是小于等于10的, 創(chuàng)建一個(gè)循環(huán)次數(shù)為10的循環(huán),在判斷此坐標(biāo)是否為' 0 ',若是' 0 ',則將其賦為'1',在進(jìn)行i++   ,再將如果不是'0',則直接退出本次循環(huán),直到1==10,則循環(huán)中止,一共在其中埋10顆雷。

接下來(lái)用戶輸入想要搜索的坐標(biāo),因?yàn)?*9的雷盤(pán)一共有81個(gè)元素,其中存在10顆雷,所以如果搜索71個(gè)元素都沒(méi)有雷,則可以判定掃雷成功,所以創(chuàng)建一個(gè)71次的循環(huán),如果為71的話,則游戲成功,每次掃雷的時(shí)候,需要將用戶看到界面的此次掃雷位置賦為此位置周圍雷的數(shù)量,,則創(chuàng)建一個(gè)函數(shù),此函數(shù)返回值為雷盤(pán)上對(duì)應(yīng)的坐標(biāo)周圍存的元素-8*'0',得到一個(gè)數(shù)字,再將此數(shù)字進(jìn)行+'0',將其轉(zhuǎn)為字符型;傳入用戶界面的對(duì)應(yīng)坐標(biāo).在進(jìn)行下次循環(huán).如果循環(huán)次數(shù)為71是,則判定掃雷成功。

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#define Row 11
#define Col 11
#define Rows 10
#define Cols 10
void print() {
 printf("**************************************\n");
 printf("************1.開(kāi)始游戲****************\n");
 printf("************2.退出游戲****************\n");
 printf("**************************************\n");
}
//初始化棋盤(pán)
void init(char board[Row][Col], char c) {
 for (int i = 0; i < Row; i++) {
  for (int j = 0; j < Col; j++) {
   board[i][j] = c;   
  }
 }
}
//打印用戶看到的界面
void printboard(char board[Row][Col]) {
 for (int i = 0; i < Rows; i++) {
  printf("%d ", i);
 }
 printf("\n");
 for (int i = 1; i < Rows; i++) {
  printf("%d ", i);
  for (int j = 1; j < Cols; j++) {
   printf("%c ", board[i][j]);
  }
  printf("\n");
 }
}
//打印雷盤(pán)
void print_mineboard(char board[Row][Col]) {
 for (int i = 0; i < Row; i++) {
  for (int j = 0; j < Col; j++) {
   printf("%c ", board[i][j]);
  }
  printf("\n");
 }
}
 
//初始化10個(gè)雷的位置
void set_mine(char mine_board[Row][Col]) {
 int i = 0;
 do {
  int row = rand() % 9 + 1;
  int col = rand() % 9 + 1;
  if (mine_board[row][col] == '0') {
   mine_board[row][col] = '1';
   i++;
  }
  else {
   continue;
  }
 } while (i <= 10);
 
}
int player_enter(char board[Row][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';
 
}
//游戲函數(shù) 
void game() {
 char human_board[Row][Col];
 char mine_board[Row][Col];
 //2.初始化兩個(gè)棋盤(pán)
 char one = '?';
 char two = '0';
 init(human_board, one);
 init(mine_board, two);
 //3.棋盤(pán)2 雷的位置初始化
 set_mine(mine_board);
 //4.打印棋盤(pán)
 printf("\n");
 //5.玩家輸入坐標(biāo)位置
 for (int i = 1; i <= 71; i++) {
  printboard(human_board);
  int x = 0;
  int y = 0;
  printf("請(qǐng)輸入你要尋找的坐標(biāo)(x,y):");
  scanf("%d %d", &x, &y);
  //判斷坐標(biāo)是否正確
  if (x > 0 && x < 10 && y>0 && y < 10 && human_board[x][y] == '?') {
   //判斷坐標(biāo)處是否有雷
   if (mine_board[x][y] == '1') {
    printf("你被炸死了!\n");
    //給他死個(gè)明白
    print_mineboard(mine_board);
    break;
   }
   else {
    //輸出雷子數(shù)量
    human_board[x][y] = player_enter(mine_board, x, y) + '0';
    system("cls");
   }
  }
  else {
   printf("坐標(biāo)有誤,請(qǐng)重新輸入!\n");
   i--;
  }
  if (i == 71) {
   printf("你真牛逼,這都能贏!\n");
  }
 
 }
 
 
}
int main() {
 srand((unsigned int)time(0));
 //1.創(chuàng)建登錄界面
 print();
 int i = 0;
 //用戶選擇接下來(lái)的操作
 while (1) {
  int choose = 0;
  if (i == 0) {
   printf("請(qǐng)選擇你接下來(lái)想要進(jìn)行的操作:");
   i++;
  }
  else {
   printf("還要玩嗎?\n");
   printf("1  yes   2   no\n");
  }
  scanf("%d", &choose);
  if (choose == 1) {
   game();
  }
  else {
   if (choose == 2) {
    break;
   }
   else {
    printf("輸入錯(cuò)誤,請(qǐng)重新輸入!\n");
    continue;
   }
  }
 }
 return 0;
}

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

相關(guān)文章

最新評(píng)論