欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門(mén)教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

C語(yǔ)言實(shí)現(xiàn)掃雷小游戲

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊: 次

本文實(shí)例為大家分享了C語(yǔ)言?huà)呃仔∮螒虻木唧w實(shí)現(xiàn)代碼,供大家參考,具體內(nèi)容如下

一、分析游戲步驟:

具體步驟如圖:

二、代碼實(shí)現(xiàn):

游戲步驟想好之后,就是用代碼把步驟一步一步的實(shí)現(xiàn)。具體代碼如下:

1、游戲主要實(shí)現(xiàn): game.c

#define _CRT_SECURE_NO_WARNINGS 1
 
#include"game.h"
 
void game()
{
 char mine[ROW + 2][COL + 2];         //記錄地雷的數(shù)組
 char show[ROW + 2][COL + 2];         //展示給玩家的數(shù)組
 
 Init(mine, show, ROW + 2, COL + 2);        //初始化
 set_mine(mine, MINE_NUM);           //布雷
 
 //print_show(mine, ROW, COL);           //打印布雷的棋盤(pán)
 
 print_show(show, ROW, COL);            //打印棋盤(pán)
 
 int ret = -1;                  //用于游戲中判斷是否是第一步
 
 while (1)                    //玩家進(jìn)行游戲
 {
 int x, y;
 int num = -1;
 printf("請(qǐng)輸入坐標(biāo)< x y >:\n");
 scanf("%d%d", &x, &y);
 if (x < 1 || x>10 || y < 1 || x>10)
 {
  printf("輸入的坐標(biāo)有誤,請(qǐng)重新輸入:\n");
 }
 else
 {
  if (ret == -1 && mine[x][y] == '1')      //第一步踩雷
  {
  mine[x][y] = '0';           //除掉這個(gè)雷
  set_mine(mine, 1);          // 再布一顆雷
  }
 
  if (mine[x][y] == '0')    //沒(méi)有踩雷 
  {
  ret = 0;
  num = get_round_mine(mine, x, y);
  if (num != 0)
  {
   show[x][y] = num + '0';
  }
  else       //周?chē)蝗Χ紱](méi)有雷
  {
   open_show(mine, show, x, y); //展開(kāi)函數(shù) (連續(xù)展開(kāi))
  }
  print_show(show, ROW, COL);           //打印棋盤(pán)
  }
 
  else                        // 踩雷了
  {
  printf("少俠,你踩到雷了!?。n");
  print_show(mine, ROW, COL);           //打印棋盤(pán)
  return;
  }
 }
 
 if (Is_win(show))
 {
  printf("恭喜?。?!您勝利啦!!!\n");
  break;
 }
 }
}
 
 
void Init(char mine[ROW + 2][COL + 2], char show[ROW + 2][COL + 2], int row, int col)
{
 memset(mine, '0', row*col * sizeof(mine[0][0]));
 memset(show, '*', row*col * sizeof(show[0][0]));
}
 
void print_show(char show[ROW + 2][COL + 2], int row, int col)      //打印棋盤(pán)
{
 
 int i;
 int j;
 printf("  ");
 for (i = 1; i <= col; i++)
 {
 printf("%2d", i);
 }
 printf("\n  ");
 for (i = 0; i < col; i++)
 {
 printf("--");
 }
 printf("\n");
 for (i = 1; i <= row; i++)
 {
 printf("%2d|", i);
 for (j = 1; j <= col; j++)
 {
  printf("%2c", show[i][j]);
 }
 printf("\n");
 }
 printf("\n");
}
 
void set_mine(char mine[ROW + 2][COL + 2], int mineNumber)     //布雷
{
 int x = -1;
 int y = -1;
 while (mineNumber)
 {
 x = rand() % ROW + 1;
 y = rand() % COL + 1;
 if (mine[x][y] == '0')
 {
  mine[x][y] = '1';
  --mineNumber;
 }
 }
}
 
int get_round_mine(char mine[ROW + 2][COL + 2], int x, int y) //獲取周?chē)椎膫€(gè)數(shù);
{
 return (mine[x - 1][y - 1]) + (mine[x - 1][y]) + (mine[x - 1][y + 1]) +
 (mine[x][y + 1]) + (mine[x + 1][y + 1]) + (mine[x + 1][y]) +
 (mine[x + 1][y - 1]) + (mine[x][y - 1]) - 8 * '0';
}
 
void open_show(char mine[ROW + 2][COL + 2], char show[ROW + 2][COL + 2], int x, int y)  //展開(kāi)函數(shù)
{
 if (x >= 1 && x <= 10 && y >= 1 && y <= 10 && (mine[x][y] != 1) && (show[x][y] == '*'))
 {
 if (get_round_mine(mine, x, y) > 0)
 {
  show[x][y] = get_round_mine(mine, x, y) + '0';
 }
 else
 {
  show[x][y] = ' ';
  open_show(mine, show, x - 1, y - 1);
  open_show(mine, show, x - 1, y);
  open_show(mine, show, x - 1, y + 1);
  open_show(mine, show, x, y + 1);
  open_show(mine, show, x, y - 1);
  open_show(mine, show, x + 1, y - 1);
  open_show(mine, show, x + 1, y);
  open_show(mine, show, x + 1, y + 1);
 }
 }
}
 
int Is_win(char show[ROW + 2][COL + 2])   //判贏
{
 int count = MINE_NUM;
 int i;
 int j;
 for (i = 1; i <= ROW; i++)
 {
 for (j = 1; j <= ROW; j++)
 {
  if (show[i][j] == '*')
  {
  count--;
  }
 }
 }
 if (count == 0)    //雷全部找到
 {
 return 1;
 }
 else
 {
 return 0;
 }
}

2、游戲源文件:main.c

代碼如下:

#define _CRT_SECURE_NO_WARNINGS 1
 
#include"game.h"
 
void menu()      //菜單
{
 printf("###################################\n");
 printf("############# 1.play ############\n");
 printf("############# 0.exit ############\n");
 printf("###################################\n");
 
}
 
int main()
{
 srand((unsigned int)time(NULL));
 int input = 1;
 printf("請(qǐng)選擇游戲進(jìn)程: \n");
 do {
 menu();
 scanf("%d", &input);
 switch (input) {
 case 1:
  game();        //主游戲 
  break;
 case 0:
  break;
 default:
  printf("選擇錯(cuò)誤,客官請(qǐng)重新選擇:\n");
  break;
 }
 } while (input);
 
 
 system("pause");
 return 0;
}

3、游戲頭文件:game.h

代碼如下:

#pragma once
 
#ifndef _GAME_H_
#define _GAME_H_
 
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>
 
 
#define ROW 10        //棋盤(pán)大小
#define COL 10
#define MINE_NUM 10     //雷的個(gè)數(shù)
 
void game();
 
void Init(char mine[ROW + 2][COL + 2], char show[ROW + 2][COL + 2], int row, int col); //初始化
void print_show(char show[ROW + 2][COL + 2], int row, int col);         //打印棋盤(pán)
void set_mine(char mine[ROW + 2][COL + 2], int mineNumber);           //布雷
int get_round_mine(char mine[ROW + 2][COL + 2], int x, int y);      //獲取周?chē)椎膫€(gè)數(shù);
void open_show(char mine[ROW + 2][COL + 2], char show[ROW + 2][COL + 2], int x, int y); //展開(kāi)函數(shù)
int Is_win(char show[ROW + 2][COL + 2]);      //判贏
 
#endif

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

上一篇:C語(yǔ)言實(shí)現(xiàn)素因子分解

欄    目:C語(yǔ)言

下一篇:C語(yǔ)言實(shí)現(xiàn)紙牌計(jì)算24點(diǎn)小游戲

本文標(biāo)題:C語(yǔ)言實(shí)現(xiàn)掃雷小游戲

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/171.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有