当前位置: 首页 > news >正文

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可以循环玩 两个板子&#xff0c;内板子放0&#xff0c;外板子放* set函数初始化两个板子 …...

20. 类模板

一、什么是类模板 类模板用于建立一个通用类&#xff0c;类中的成员数据类型可以不具体指定&#xff0c;用一个虚拟的类型来代替。它的语法格式如下&#xff1a; template<typename T>类模板与函数模板相比主要有两点区别&#xff1a;1) 类模板没有自动类型推导的方式。…...

SSL证书以及实现HTTP反向代理

注意&#xff1a; 本文内容于 2024-11-09 19:20:07 创建&#xff0c;可能不会在此平台上进行更新。如果您希望查看最新版本或更多相关内容&#xff0c;请访问原文地址&#xff1a;SSL证书以及实现HTTP反向代理。感谢您的关注与支持&#xff01; 之前写的HTTP反向代理工具&…...

多种算法解决组合优化问题平台

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月11日7点12分 点击开启你的论文编程之旅https://www.aspiringcode.com/content?id17302099790265&uidef7618fa204346ff9…...

【笔记】LLC电路工作频点选择 2-1 输出稳定性的限制

LLC工作模式的分析参考了&#xff1a;现代电力电子学&#xff0c;电力出版社&#xff0c;李永东 1.LLC电路可以选择VCS也可以选择ZVS 1.1选择ZCS时&#xff0c;开关管与谐振电感串联后&#xff0c;与谐振电容并联&#xff1a; 1.2选择ZVS时&#xff0c;开关管仅仅安装在谐振电…...

Linux系统程序设计--2. 文件I/O

文件I/O 标准C的I/O FILE结构体 下面只列出了5个成员 可以观察到&#xff0c;有些函数没有FILE类型的结构体指针例如printf主要是一些标准输出&#xff0c;因为其内部用到了stdin&#xff0c;stdout&#xff0c;stderr查找文件所在的位置:find \ -name stat.h查找头文件所…...

右值引用——C++11新特性(一)

目录 一、右值引用与移动语义 1.左值引用与右值引用 2.移动构造和移动赋值 二、引用折叠 三、完美转发 一、右值引用与移动语义 1.左值引用与右值引用 左值&#xff1a;可以取到地址的值&#xff0c;比如一些变量名&#xff0c;指针等。右值&#xff1a;不能取到地址的值…...

JavaScript 观察者设计模式

观察者模式:观察者模式&#xff08;Observer mode&#xff09;指的是函数自动观察数据对象&#xff0c;一旦对象有变化&#xff0c;函数就会自动执行。而js中最常见的观察者模式就是事件触发机制。 ES5/ES6实现观察者模式(自定义事件) - 简书 先搭架子 要有一个对象&#xff…...

鸿蒙进阶篇-网格布局 Grid/GridItem(二)

hello大家好&#xff0c;这里是鸿蒙开天组&#xff0c;今天让我们来继续学习鸿蒙进阶篇-网格布局 Grid/GridItem&#xff0c;上一篇博文我们已经学习了固定行列、合并行列和设置滚动&#xff0c;这一篇我们将继续学习Grid的用法&#xff0c;实现翻页滚动、自定义滚动条样式&…...

数据仓库之 Atlas 血缘分析:揭示数据流奥秘

Atlas血缘分析在数据仓库中的实战案例 在数据仓库领域&#xff0c;数据血缘分析是一个重要的环节。血缘分析通过确定数据源之间的关系&#xff0c;以及数据在处理过程中的变化&#xff0c;帮助我们更好地理解数据生成的过程&#xff0c;提高数据的可靠性和准确性。在这篇文章中…...

AndroidStudio-滚动视图ScrollView

滚动视图 滚动视图有两种: 1.ScrollView&#xff0c;它是垂直方向的滚动视图;垂直方向滚动时&#xff0c;layout_width属性值设置为match_parent&#xff0c;layout_height属性值设置为wrap_content。 例如&#xff1a; &#xff08;1&#xff09;XML文件中: <?xml ve…...

嵌入式硬件实战基础篇(一)-STM32+DAC0832 可调信号发生器-产生方波-三角波-正弦波

引言&#xff1a;本内容主要用作于学习巩固嵌入式硬件内容知识&#xff0c;用于想提升下述能力&#xff0c;针对学习STM32与DAC0832产生波形以及波形转换&#xff0c;对于硬件的降压和对于前面硬件篇的实际运用&#xff0c;针对仿真的使用&#xff0c;具体如下&#xff1a; 设…...

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划分&#xff1a; 通过实验了解如何将一个大网络划分为多个小的子网&#xff08;VLAN&#xff09;&#xff0c;以提高网络性能和安全性。 VLAN间路由&#xff1a; 学习如何配置VLAN间的路由&#xff0c;使不同VLAN之间能够通信。 网络设备配置&am…...

独立站 API 接口的性能优化策略

一、缓存策略* 数据缓存机制 内存缓存&#xff1a;利用内存缓存系统&#xff08;如 Redis 或 Memcached&#xff09;来存储频繁访问的数据。例如&#xff0c;对于商品信息 API&#xff0c;如果某些热门商品的详情&#xff08;如价格、库存、基本描述等&#xff09;被大量请求…...

不一样的CSS(一)

目录 前言&#xff1a; 一、规则图形 1.介绍&#xff1a; 2.正方形与长方形&#xff08;实心与空心&#xff09; 2.1正方形&#xff1a; 2.2长方形 3.圆形与椭圆形&#xff08;空心与实心&#xff09; 3.1圆形与椭圆形 4.不同方向的三角形 4.1原理 4.2边框属性 5.四…...

题目:Wangzyy的卡牌游戏

登录 - XYOJ 思路&#xff1a; 使用动态规划&#xff0c;设dp[n]表示当前数字之和模三等于0的组合数。 状态转移方程&#xff1a;因为是模三&#xff0c;所以和的可能就只有0、1、2。等号右边的f和dp都表示当前一轮模三等于k的组合数。以第一行为例&#xff1a;等号右边表示 j转…...

国外云服务器高防多少钱一年?

国外云服务器高防多少钱一年&#xff1f;入门级高防云主机&#xff1a;这类主机通常具有较低的防御峰值&#xff0c;如30G或60G&#xff0c;价格相对较低。例如&#xff0c;30G峰值防御的高防云主机年费可能在2490元左右&#xff0c;而60G峰值防御的则可能在5044元左右。中等防…...

架构篇(04理解架构的演进)

目录 学习前言 一、架构演进 1. 初始阶段的网站架构 2. 应用服务和数据服务分离 3. 使用缓存改善网站性能 4. 使用应用服务器集群改善网站的并发处理能力 5. 数据库读写分离 6. 使用反向代理和CDN加上网站相应 7. 使用分布式文件系统和分布式数据库系统 8. 使用NoSQL和…...

【363】基于springboot的高校竞赛管理系统

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统高校竞赛管理系统信息管理难度大&#xff0c;容错率低&am…...

GoMCP框架:用Go快速构建AI工具集成服务器

1. 项目概述&#xff1a;GoMCP&#xff0c;一个为Go语言打造的MCP服务器框架如果你正在用Go语言开发AI应用&#xff0c;并且想让你的Claude Desktop、Cursor或者VS Code Copilot能够调用你写的工具、读取你的数据源&#xff0c;那么你很可能已经接触过Model Context Protocol&a…...

AIKit:基于容器的一站式开源大语言模型部署与微调平台

1. AIKit项目概述&#xff1a;一站式开源大语言模型部署与微调平台 如果你和我一样&#xff0c;在尝试将Llama、Mistral这类开源大语言模型&#xff08;LLM&#xff09;真正用起来时&#xff0c;被复杂的依赖、环境配置和性能优化搞得焦头烂额&#xff0c;那么AIKit的出现&…...

射频非线性建模:从S参数到X参数与NVNA的工程实践

1. 非线性星期三&#xff1a;一场射频工程师的“大信号”狂欢如果你是一名射频或微波电路设计工程师&#xff0c;对S参数、负载牵引、谐波失真这些词感到既熟悉又头疼&#xff0c;那么十多年前在巴尔的摩举行的国际微波研讨会&#xff08;IMS 2011&#xff09;上&#xff0c;有…...

构建本地AI编码助手分析工具:数据监控与可视化实践

1. 项目概述&#xff1a;一个本地优先的AI编码助手分析工具如果你和我一样&#xff0c;日常开发重度依赖Cursor、Windsurf、Zed这些内置了AI能力的编辑器&#xff0c;或者频繁使用GitHub Copilot、Claude Code这类AI编码助手&#xff0c;那你肯定有过这样的困惑&#xff1a;这些…...

ARM GICv4.1 GICD_TYPER2寄存器详解与虚拟化应用

1. GICD_TYPER2寄存器概述 GICD_TYPER2是ARM GICv4.1架构中引入的关键寄存器&#xff0c;属于中断控制器类型寄存器家族。作为GIC Distributor的一部分&#xff0c;它专门用于增强虚拟化场景下的中断管理能力。这个32位寄存器位于内存映射地址Dist_base 0x000C处&#xff0c;仅…...

电子设计协同:跨团队互联规划工具的应用与优化

1. 跨团队互联规划&#xff1a;电子设计协同的破局之道在当今高度复杂的电子系统设计中&#xff0c;芯片(IC)、封装(Package)和印刷电路板(PCB)三大设计团队的协同工作已成为决定产品成败的关键因素。传统设计流程中&#xff0c;这三个团队往往各自为政&#xff0c;通过Excel表…...

本地优先 Web 应用开发:React/SQLite 前端、Supabase 后端与 PowerSync 同步引擎实践

本地优先 Web 应用开发&#xff1a;React/SQLite 前端、Supabase 后端与 PowerSync 同步引擎的实践与优势并非每天都会出现全新架构&#xff0c;如今浏览器内的 SQLite 结合响应式 SQL 和自动同步功能出现了&#xff0c;它能让前端即时交互&#xff0c;还能保持与后端数据一致&…...

OpenClaw-Zulip桥接器:实现AI Agent与团队协作工具的无缝集成

1. 项目概述&#xff1a;一个为AI Agent打造的Zulip消息桥梁如果你正在构建一个基于OpenClaw的AI Agent系统&#xff0c;并且你的团队恰好使用Zulip作为内部沟通工具&#xff0c;那么你很可能面临一个痛点&#xff1a;如何让Agent无缝地融入团队的日常对话流&#xff1f;是让团…...

Shoelace自动加载器:终极懒加载Web组件完整指南 [特殊字符]

Shoelace自动加载器&#xff1a;终极懒加载Web组件完整指南 &#x1f680; 【免费下载链接】shoelace Shoelace is now Web Awesome. Come see what’s new! 项目地址: https://gitcode.com/gh_mirrors/sh/shoelace Shoelace自动加载器是Shoelace Web组件库中一个革命性…...

ARM HCR_EL2寄存器解析与虚拟化控制

1. ARM HCR_EL2寄存器架构解析HCR_EL2&#xff08;Hypervisor Configuration Register&#xff09;是ARMv8/v9架构中用于控制虚拟化行为的关键系统寄存器。作为Hypervisor的主要控制接口&#xff0c;它定义了EL2对低特权级&#xff08;EL1/EL0&#xff09;执行环境的监控策略。…...