扫雷游戏

羊蹓狼  金牌会员 | 2023-11-11 09:18:18 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 901|帖子 901|积分 2703

一、扫雷游戏分析关键步骤:两个二维数组的大小为11*11,但实际上操作的只有中心的9*9的棋盘,创建另外两行的原因是方便统计一个坐标周围3*3的雷的个数
1.创建两个二维数组一个存放布置好的雷(1号),另外一个存放空的棋盘(2号)
2.选手选出来的坐标传到1号棋盘上对坐标进行分析如果是雷就返回被炸死了,不是雷就算一下这个坐标周边一圈
有多少雷,并在2号棋盘上显示出来
结束标志:没被炸死,且棋盘上还剩下雷的个数的位置没被探索
二、代码
game.h
  1. #define _CRT_SECURE_NO_WARNINGS 1
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #define ROW 9
  6. #define COL 9
  7. #define ROWS ROW+2
  8. #define COLS COL+2
  9. #define MINES 10
  10. //初始化
  11. void InitBoard(char board[ROWS][COLS], int rows, int cols, char ch);
  12. //展示
  13. void DisPlay(char board[ROWS][COLS], int row, int col);
  14. //布置雷
  15. void LayMine(char board[ROWS][COLS], int row, int col);
  16. //开始游戏
  17. void Play(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col);
复制代码
game.c
[code]#define _CRT_SECURE_NO_WARNINGS 1#include "game.h"//初始化void InitBoard(char board[ROWS][COLS], int rows, int cols, char ch){    for (int i = 0; i < rows; i++)    {        for (int j = 0; j < cols; j++)        {            board[j] = ch;        }    }}//展示void DisPlay(char board[ROWS][COLS], int row, int col){    for (int i = 0; i
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

羊蹓狼

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表