扫雷(下)

2024-09-03 16:44
文章标签 扫雷

本文主要是介绍扫雷(下),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

扫雷游戏的代码完整版放在这里啦

分为三个部分,game.h , game.c ,还有main.c

其中game.c是进行函数实现的功能,main.c是主要的流程

game.h

#pragma once#include <stdio.h>
#include <time.h>#define ROW 9
#define COL 9
#define ROWS ROW+2
#define COLS COL+2//初始化棋盘的声明
void Initboard(char board[ROWS][COLS], int row, int col, char set);
void Initboard(char board[ROWS][COLS], int row, int col, char set);//打印棋盘
void Displayboard(char board[ROWS][COLS], int row, int col);//设置雷的棋盘
void Setmine(char board[ROWS][COLS], int row ,int col);//排雷
int Findmine(char mine[ROWS][COLS], int row, int col);

main.c 

#define _CRT_SECURE_NO_WARNINGS 1#include "game.h"void static menu()
{printf("---------------------\n");printf("-----  1. play  -----\n");printf("-----  0 . exit -----\n");printf("---------------------\n");}void static game()
{char mine[ROWS][COLS] = { 0 };char show[ROWS][COLS] = { 0 };//初始化棋盘Initboard(mine, ROWS, COLS, '0');Initboard(show, ROWS, COLS, '*');//打印棋盘//Displayboard(mine, ROW, COL);Displayboard(show, ROW, COL);//布置雷Setmine(mine, ROW, COL);Displayboard(mine, ROW, COL);int flag = 1;while (flag) {printf("请输入坐标:");int a = 0, b = 0;scanf("%d %d", &a, &b);if (a  > 9 || a  < 1 || b  > 9 || b  < 1)printf("请重新输入坐标!\n");//排雷if (mine[a][b] == '1') {printf("炸死了\n");show[a][b] = '#';Displayboard(show, ROW, COL);flag = 0;}else {int Mine = Findmine(mine, a, b);show[a][b] = Mine + '0';Displayboard(show, ROW, COL);}}
}int main()
{int choose = 1;while (choose){menu();scanf("%d", &choose);srand((unsigned int)time(NULL));switch (choose){case 1:game();break;case 0:printf("exit\n");break;default:printf("choose error,please again\n");break;}} return 0;
}

game.c 

#define _CRT_SECURE_NO_WARNINGS 1#include "game.h"//初始化棋盘
void Initboard(char board[ROWS][COLS], int row, int col, char set)
{for (int i = 0; i < ROWS; i++){for (int j = 0; j < COLS; j++) {board[i][j] = set;}}
}//打印棋盘
void Displayboard(char board[ROWS][COLS], int row, int col)
{printf("------- 扫雷 -------\n");for (int i = 0; i <= row; i++) {printf("%d ", i);}printf("\n");for (int i = 1; i <= row; i++) {printf("%d ", i );for (int j = 1; j <= col; j++) {printf("%c ", board[i][j]);}printf("\n");}printf("------- 扫雷 -------\n");}//布置雷
void Setmine(char board[ROWS][COLS], int row, int col) {int count = 10;while (count) {int x = rand() % 10;int y = rand() % 10;if (board[x][y] != '1' && x >= 1 && y >= 1 && x <= 9 && y <= 9) {board[x][y] = '1';count--;}}
}//排雷
int Findmine(char mine[ROWS][COLS], int row, int col) {return mine[row - 1][col] + mine[row + 1][col] + mine[row][col - 1]+ mine[row][col + 1] + mine[row - 1][col - 1] + mine[row + 1][col + 1]+ mine[row - 1][col + 1]+ mine[row + 1][col - 1] - 8 * '0';
}

拜拜~~~ 

 

 

 

这篇关于扫雷(下)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133485

相关文章

hihocoder1114 小Hi小Ho的惊天大作战:扫雷·一

1114 : 小Hi小Ho的惊天大作战:扫雷·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 故事背景:密室、监视器与充满危机的广场 “我们还是循序渐进,先来考虑这样一个简单化问题:”小Hi思索片刻,道:“在一个大小为2*N的广场,其中第一行里的某一些格子里可能会有至多一个地雷,而第二行的格子里全都为数字,表示第一行中距离与这个格子不超过2的格子里总共有多少个

扫雷游戏(上)

开学快乐 今天我们来写扫雷的代码 一、了解扫雷是怎么玩儿的 首先这里放一个扫雷游戏的链接扫雷游戏网页版 - Minesweeper 然后我们点进去耍了一阵,发现扫雷首先要有一个棋盘,然后在玩家不知道的情况下设置雷在不同的格子,玩家点到雷就炸死了,如果没点到雷,那么点到的格子要显示周围一圈雷的个数 这是扫雷最基本的玩儿法,我们先来实现它 二、扫雷代码初步完成 1.游戏菜单 毕竟扫

dfs 解决 部分矩阵洪流/floodfill算法题(水流问题、扫雷游戏、衣橱整理、C++)

文章目录 前言1. 什么是FloodFill问题2. 用什么方法解决FloodFill问题 算法题417.太平洋大西洋水流问题529.扫雷游戏LCR130.衣橱整理 前言 1. 什么是FloodFill问题 一般floodfill问题可以描述为:给定一个二维矩阵,其中每个元素代表一个像素点,并给定一个起始点、目标颜色和填充颜色。问题要求将以起始点为中心,与其相邻且具有相同颜色

手把手带你实现C语言扫雷进阶(1)(接上回基础版扫雷,附上源码)

文章目录 一、扫雷进阶留下的问题二.非雷扩展周围不是雷函数三、标记雷函数四.查看排雷总时间五、扫雷进阶源码及总结 一、扫雷进阶留下的问题 我们先来看看之前讲扫雷基础的时候留下的一些问题: 是否可以选择游戏难度     ◦ 简单 9 * 9 棋盘,10个雷     ◦ 中等 16 * 16棋盘,40个雷     ◦ 困难 30 * 16棋盘,99个雷 如果排查位置不是雷,周围

C语言实现扫雷游戏教程

Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C语言 🚀本系列文章为个人学习笔记,在这里撰写成文一为巩固知识,二为展示我的学习过程及理解。文笔、排版拙劣,望见谅。 目录 C语言实现扫雷游戏教程介绍步骤1. 创建游戏地图2. 初始化地图3. 游戏主循环4. 显示地图、揭示方块和检查胜利条件

【扫雷游戏】C语言实现

机器学习:Transformer框架理论详解和代码实现>Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C语言 🚀本系列文章为个人学习笔记,在这里撰写成文一为巩固知识,二为展示我的学习过程及理解。文笔、排版拙劣,望见谅。 目录 C语言实现扫雷游戏教程介绍步骤1. 创建游戏地图2. 初始化

C语言——扫雷小游戏

扫雷小游戏: 游戏最终效果: 1.先写一下游戏开始的简单界面。 用一个函数来写一下 void menu(){printf(" ---------------------------- \n");printf("| 1.play |\n");printf("| 0.exit |\

c语言——扫雷游戏(简易版)

目录 前言游戏设计 前言 什么是扫雷游戏? 游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。 这个游戏对于c语言的初学者来说难度还是挺大的,那我就实现一个初学者也能快速学会的初级版扫雷游戏。 游戏设计 我们先创建三个文件 game.h、game.c(游戏逻辑的实现) 2.test.c(游戏功能测试) 这些是我们需要

Python 扫雷游戏【含Python源码 MX_010期】

简介: 游戏开始时,玩家会看到一个方格矩阵,其中一些方格下面藏有地雷,而其他方格则是空的。玩家可以通过输入坐标来选择方格,以揭开方格下隐藏的内容。如果揭开的方格下有地雷,则游戏失败;否则,揭开的方格会显示出周围有多少颗地雷。根据揭开的方格周围地雷的数量,玩家可以推断出哪些方格是安全的,哪些方格可能有地雷。玩家可以标记可能有地雷的方格,以防止误触。如果玩家标记的方格确实有地雷,则游戏会给予反馈。

【C语言训练题库】扫雷->简单小游戏!

🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 目录 1. 题目 2. 解析 3. 代码 4. 小结 1. 题目 小sun上课的时候非常喜欢玩扫雷。他现小sun有一个初始的雷矩阵,他希望你帮他生成一个扫雷矩阵。 扫雷矩阵的每一行每一列都是一个数字,每个数字的含义是与当前位置相邻的8个方向中,有多少个雷(在下图中,雷用*表示);如果当