本代码在VS2019中调试
1.主文件:

#include "1.h"void menu(void){printf("*****************************************\n");printf("*****    1.---------->开始          *****\n");printf("*****    0.---------->结束          *****\n");printf("*****************************************\n");}void game(void){//1.埋雷棋盘char ml[ROWS][COLS] = { 0 };//2.找雷棋盘 char zl[ROWS][COLS] = { 0 };//初始化csh(ml,ROWS,COLS,'0');//11*11csh(zl,ROWS,COLS,'*');//打印棋盘/=//display(ml, ROW, COL);//9*9display(zl, ROW, COL);//埋雷mailei(ml, ROW, COL);//打印棋盘/*display(ml, ROW, COL);*///找雷finemine(ml,zl,ROW,COL);}void text(void){ int num;srand((unsigned int)time(NULL));do{menu();printf("请输入数字用以确定是否进入游戏:(1/0)");scanf_s("%d", &num);switch (num){case 1:printf("即将进入游戏:----->\n");game();break;case 0:printf("即将退出游戏------->\n");Sleep(1000);system("cls");break;default:printf("输入错误,请重新输入\n");break;}} while (num);}int main(){text();return 0;}

2.调用函数文件:

#include "1.h"//棋盘初始化void csh(char ml[ROWS][COLS], int rows, int  cols, char m){int i, j;for (i=0;i<ROWS;i++){j = 0;for (j=0;j<COLS;j++){ml[i][j] = m;}}}//棋盘打印void display(char ml[ROWS][COLS], int row, int  col){int i, j;//打印行标for (i = 0; i <= row; i++){printf(" %d ", i);}printf("\n");for (i=1;i<=row;i++){printf(" %d ", i);j = 0;for (j=1;j<=col;j++){printf(" %c ", ml[i][j]);}printf("\n");}}void mailei(char ml[ROWS][COLS], int row, int col){int a, b;int count = EASY_LEI;while (count){a = rand() % row + 1;b = rand() % col + 1;if (ml[a][b] == '0'){ml[a][b] = '1';count--;}}}int hjkjj(char ml[ROWS][COLS], int x, int y){return ml[x - 1][y] + ml[x - 1][y - 1] + ml[x - 1][y + 1] + ml[x][y - 1] + ml[x][y + 1] + ml[x + 1][y - 1] + ml[x + 1][y] + ml[x + 1][y + 1] - 8 * '0';}void finemine(char ml[ROWS][COLS],char  zl[ROWS][COLS], int  row, int  col){int a, b;int num;num = 0;//输入值用以判断是否超过while (num < ROW * COL - EASY_LEI){printf("请输入要走的位置(例子:1 2一行二列):");scanf_s("%d %d", &a, &b);if(a>=1&&a<=ROW&&b>=1&&b<=COL){if (ml[a][b] == '1'){printf("不好意思你被炸死了\n");display(ml, ROW, COL);break;}else{int f = 0;//没被炸死;f = hjkjj(ml, a, b);zl[a][b] = f+'0';display(zl, ROW, COL);}num++;}else{printf("输入坐标非法,请重新输入!\n");}}if (num == ROW * COL - EASY_LEI){printf("You WIN!\n");}}

3.定义文件:(头文件)

#pragma once#include <stdio.h>#include <string.h>#include <math.h>#include <stdlib.h>#include <time.h>#include <windows.h>#define EASY_LEI 10        //定义埋雷的数量#define ROW 9#define COL 9#define ROWS ROW+3#define COLS COL+3void text(void);void menu(void);void game(void);void csh(char ml[ROWS][COLS],int rows,int  cols,char m);void display(char ml[ROWS][COLS], int row, int  col);void mailei(char ml[ROWS][COLS], int row, int col);void finemine(char ml[ROWS][COLS],char zl[ROWS][COLS],int  row,int  col);int hjkjj(char ml[ROWS][COLS], int x, int y);


©著作权归作者所有:来自51CTO博客作者防.的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. input输入框相关事件整理
  2. Linux网站部署——从零到一部署一个自己的电商网站
  3. 云计算入门从零到一成为云计算/运维工程师——如何部署自己的论
  4. 猜数小游戏设计
  5. 路飞学城-python开发集训-第1章
  6. 三级菜单和购物车
  7. 一淘邀请码JAG42一淘密令的输入方法
  8. 4-20ma模拟量转无线wifi采集传输0-10v模拟量输入输出远距离免布
  9. VsCode常用设置,新手必备!

随机推荐

  1. 几个Android控件属性笔记
  2. 译:Android(安卓)N不再支持通过Intent传递
  3. Finished with error: ProcessException:
  4. Android(安卓)NDK 错误解决方法(持续更新
  5. 手把手教你搞懂 Android 反编译
  6. Android Studio中如何隐藏顶部状态栏和标
  7. 《Android经验分享》周刊第1期
  8. 【源码分享下载】每日更新之Android项目
  9. Android 平台上应用的赚钱模式
  10. Android界面编程——Android布局组件(二)