C语言最简单的扫雷实现(解析加原码)
头文件
#define ROW 9
#define COL 9
#define ROWS ROW+2
#define COLS COL+2
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define numlei 10
do while可以循环玩
两个板子,内板子放0,外板子放*
set函数初始化两个板子
lei函数,x,y随机两数,把内板子某些0改为1
print函数打印内或外板子
board返回周围8个格子雷的个数
#include "game.h"
void set(char arr[ROWS][COLS], int row, int col,char set)
{for (int i = 0;i < ROWS;i++){for (int j = 0;j < COLS;j++){arr[i][j] = set;}}
}
void lei(char arr[ROWS][COLS], int row, int col)
{int count = numlei;while (count){int x = rand() % 9 + 1;int y = rand() % 9 + 1;if (arr[x][y]=='0'){arr[x][y] = '1';count--;}}
}
void print(char arr[ROWS][COLS], int row, int col)
{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 ", arr[i][j]);}printf("\n");}
}
int board(char mine[ROWS][COLS], int x, int y)
{return (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] + mine[x - 1][y + 1]-8*'0');}void game()
{printf("********************\n");printf("**** 1.游戏开始 ****\n");printf("**** 0.退出游戏 ****\n");printf("********************\n");int input;char show[ROWS][COLS];char inside[ROWS][COLS];do{scanf("%d", &input);switch (input){case 1:printf("游戏开始\n");set(show, ROW, COL, '*');print(show, ROW, COL);set(inside, ROW, COL, '0');lei(inside, ROW, COL);int win = 0;while (win<ROW*COL-numlei){int x, y;scanf("%d %d", &x, &y);if (x >= 1 && y >= 1 && x <= ROW && y <= COL){if (inside[x][y] == '1'){printf("你被炸了\n");print(inside, ROW, COL);break;}else{int c = board(inside, x, y);show[x][y] = c + '0';print(show, ROW, COL);win++;}}elseprintf("输入坐标错误,请重新输入\n");}if (win == ROW * COL - numlei){printf("排雷成功\n");print(inside, ROW, COL);}break;case 0:printf("退出游戏\n");break;default:printf("重新输入\n");break;}} while (input);
}int main()
{ srand((unsigned) time(NULL));game();return 0;
}
相关文章:
C语言最简单的扫雷实现(解析加原码)
头文件 #define ROW 9 #define COL 9 #define ROWS ROW2 #define COLS COL2 #include <stdio.h> #include <stdlib.h> #include <time.h> #define numlei 10do while可以循环玩 两个板子,内板子放0,外板子放* set函数初始化两个板子 …...
20. 类模板
一、什么是类模板 类模板用于建立一个通用类,类中的成员数据类型可以不具体指定,用一个虚拟的类型来代替。它的语法格式如下: template<typename T>类模板与函数模板相比主要有两点区别:1) 类模板没有自动类型推导的方式。…...
SSL证书以及实现HTTP反向代理
注意: 本文内容于 2024-11-09 19:20:07 创建,可能不会在此平台上进行更新。如果您希望查看最新版本或更多相关内容,请访问原文地址:SSL证书以及实现HTTP反向代理。感谢您的关注与支持! 之前写的HTTP反向代理工具&…...
多种算法解决组合优化问题平台
🏡作者主页:点击! 🤖编程探索专栏:点击! ⏰️创作时间:2024年11月11日7点12分 点击开启你的论文编程之旅https://www.aspiringcode.com/content?id17302099790265&uidef7618fa204346ff9…...
【笔记】LLC电路工作频点选择 2-1 输出稳定性的限制
LLC工作模式的分析参考了:现代电力电子学,电力出版社,李永东 1.LLC电路可以选择VCS也可以选择ZVS 1.1选择ZCS时,开关管与谐振电感串联后,与谐振电容并联: 1.2选择ZVS时,开关管仅仅安装在谐振电…...
Linux系统程序设计--2. 文件I/O
文件I/O 标准C的I/O FILE结构体 下面只列出了5个成员 可以观察到,有些函数没有FILE类型的结构体指针例如printf主要是一些标准输出,因为其内部用到了stdin,stdout,stderr查找文件所在的位置:find \ -name stat.h查找头文件所…...
右值引用——C++11新特性(一)
目录 一、右值引用与移动语义 1.左值引用与右值引用 2.移动构造和移动赋值 二、引用折叠 三、完美转发 一、右值引用与移动语义 1.左值引用与右值引用 左值:可以取到地址的值,比如一些变量名,指针等。右值:不能取到地址的值…...
JavaScript 观察者设计模式
观察者模式:观察者模式(Observer mode)指的是函数自动观察数据对象,一旦对象有变化,函数就会自动执行。而js中最常见的观察者模式就是事件触发机制。 ES5/ES6实现观察者模式(自定义事件) - 简书 先搭架子 要有一个对象ÿ…...
鸿蒙进阶篇-网格布局 Grid/GridItem(二)
hello大家好,这里是鸿蒙开天组,今天让我们来继续学习鸿蒙进阶篇-网格布局 Grid/GridItem,上一篇博文我们已经学习了固定行列、合并行列和设置滚动,这一篇我们将继续学习Grid的用法,实现翻页滚动、自定义滚动条样式&…...
数据仓库之 Atlas 血缘分析:揭示数据流奥秘
Atlas血缘分析在数据仓库中的实战案例 在数据仓库领域,数据血缘分析是一个重要的环节。血缘分析通过确定数据源之间的关系,以及数据在处理过程中的变化,帮助我们更好地理解数据生成的过程,提高数据的可靠性和准确性。在这篇文章中…...
AndroidStudio-滚动视图ScrollView
滚动视图 滚动视图有两种: 1.ScrollView,它是垂直方向的滚动视图;垂直方向滚动时,layout_width属性值设置为match_parent,layout_height属性值设置为wrap_content。 例如: (1)XML文件中: <?xml ve…...
嵌入式硬件实战基础篇(一)-STM32+DAC0832 可调信号发生器-产生方波-三角波-正弦波
引言:本内容主要用作于学习巩固嵌入式硬件内容知识,用于想提升下述能力,针对学习STM32与DAC0832产生波形以及波形转换,对于硬件的降压和对于前面硬件篇的实际运用,针对仿真的使用,具体如下: 设…...
ElasticSearch的Python Client测试
一、Python环境准备 1、下载Python安装包并安装 https://www.python.org/ftp/python/3.13.0/python-3.13.0-amd64.exe 2、安装 SDK 参考ES官方文档: https://www.elastic.co/guide/en/elasticsearch/client/index.html python -m pip install elasticsearch一、Client 代…...
【eNSP】企业网络架构链路聚合、数据抓包、远程连接访问实验(二)
一、实验目的 网络分段与VLAN划分: 通过实验了解如何将一个大网络划分为多个小的子网(VLAN),以提高网络性能和安全性。 VLAN间路由: 学习如何配置VLAN间的路由,使不同VLAN之间能够通信。 网络设备配置&am…...
独立站 API 接口的性能优化策略
一、缓存策略* 数据缓存机制 内存缓存:利用内存缓存系统(如 Redis 或 Memcached)来存储频繁访问的数据。例如,对于商品信息 API,如果某些热门商品的详情(如价格、库存、基本描述等)被大量请求…...
不一样的CSS(一)
目录 前言: 一、规则图形 1.介绍: 2.正方形与长方形(实心与空心) 2.1正方形: 2.2长方形 3.圆形与椭圆形(空心与实心) 3.1圆形与椭圆形 4.不同方向的三角形 4.1原理 4.2边框属性 5.四…...
题目:Wangzyy的卡牌游戏
登录 - XYOJ 思路: 使用动态规划,设dp[n]表示当前数字之和模三等于0的组合数。 状态转移方程:因为是模三,所以和的可能就只有0、1、2。等号右边的f和dp都表示当前一轮模三等于k的组合数。以第一行为例:等号右边表示 j转…...
国外云服务器高防多少钱一年?
国外云服务器高防多少钱一年?入门级高防云主机:这类主机通常具有较低的防御峰值,如30G或60G,价格相对较低。例如,30G峰值防御的高防云主机年费可能在2490元左右,而60G峰值防御的则可能在5044元左右。中等防…...
架构篇(04理解架构的演进)
目录 学习前言 一、架构演进 1. 初始阶段的网站架构 2. 应用服务和数据服务分离 3. 使用缓存改善网站性能 4. 使用应用服务器集群改善网站的并发处理能力 5. 数据库读写分离 6. 使用反向代理和CDN加上网站相应 7. 使用分布式文件系统和分布式数据库系统 8. 使用NoSQL和…...
【363】基于springboot的高校竞赛管理系统
摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统高校竞赛管理系统信息管理难度大,容错率低&am…...
Czkawka磁盘清理工具:通过多线程哈希技术实现300%扫描效率提升
Czkawka磁盘清理工具:通过多线程哈希技术实现300%扫描效率提升 【免费下载链接】czkawka 一款跨平台的重复文件查找工具,可用于清理硬盘中的重复文件、相似图片、零字节文件等。它以高效、易用为特点,帮助用户释放存储空间。 项目地址: htt…...
毕设「零焦虑」实测:paperzz 四步流水线,把本科毕业论文从 0 写到 12000 字
Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿/期刊论文paperzz - 毕业论文-AIGC论文检测-AI智能降重-ai智能写作https://www.paperzz.cc/dissertation 谁本科毕设没陷入过「选题卡壳→文献凑数→框架乱套→格式崩溃」的死循环?对着万字要求…...
影响采集速度的因素有哪些?提高采集速度的措施又有哪些?
一、常见影响采集速度的情况 1.场景1(以HMI举例) 1)触摸屏与 PLC 的通信延时参数已设置为最优,但画面数据显示仍存在明显滞后。该延迟问题易引发操作不同步,存在较高的安全误操作风险。 2)触摸屏显示数据反应明显迟钝或直接提示…...
UnblockNeteaseMusic完整指南:如何一键解锁网易云音乐灰色歌曲
UnblockNeteaseMusic完整指南:如何一键解锁网易云音乐灰色歌曲 【免费下载链接】UnblockNeteaseMusic Revive unavailable songs for Netease Cloud Music 项目地址: https://gitcode.com/gh_mirrors/un/UnblockNeteaseMusic 还在为网易云音乐里那些灰色的、…...
AI智能体开发全解析:从需求到部署,打造下一代智能应用!
AI智能体(AI Agent)的开发流程已从传统的软件开发生命周期(SDLC)演进为智能体开发生命周期(ADLC, Agentic Development Lifecycle)。其核心逻辑不再是编写确定的逻辑代码,而是构建具备感知、规划…...
从零开始:使用mmsegmentation训练自定义数据集的全流程指南
1. 环境准备与安装指南 第一次接触mmsegmentation时,最头疼的就是环境配置。记得我刚开始用的时候,光是解决CUDA和PyTorch版本兼容问题就折腾了一整天。现在把踩过的坑都总结出来,让你10分钟搞定环境搭建。 核心依赖清单: Python …...
终极指南:如何让AMD和Intel显卡也能享受DLSS级别的AI超分辨率技术
终极指南:如何让AMD和Intel显卡也能享受DLSS级别的AI超分辨率技术 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler Opti…...
Python数据处理实战:无需R语言,用pyreadr+pandas轻松转换rdata到csv/excel(附完整代码)
Python数据科学实战:跨平台RData文件处理全指南 在生物信息学、金融建模和统计研究领域,RData格式文件作为R语言的标准数据存储方式广泛流传。但当团队协作涉及不同技术栈或需要将分析流程整合到Python生态时,传统方案往往要求同时维护R环境—…...
数据恢复与Python环境重建指南
数据恢复前的准备工作确认Anaconda安装路径及删除方式(如回收站清理、命令行删除等),避免覆盖原始数据。列出常用存储位置:C:\Users\<用户名>\Anaconda3(Windows)或/home/<用户名>/anaconda3&a…...
用ESP32和2.13寸墨水屏,我把汉朔电子价签改造成了桌面网络时钟(附完整代码)
用ESP32和2.13寸墨水屏打造极简网络时钟:从电子价签到桌面艺术 在智能硬件爱好者的世界里,总有一些被遗忘的电子元件等待重生。汉朔电子价签的2.13寸墨水屏就是这样一个被低估的宝藏——它低功耗、高对比度的特性,配合ESP32的强大无线功能&am…...
