44.扫雷第二部分、放置随机的雷,扫雷,炸死或成功 C语言
按照教程打完了。好几个bug都是自己打出来的。比如统计周围8个格子时,有一个各自加号填成了减号。我还以为平移了,一会显示是0一会显示是2。结果单纯的打错了。debug的时候断点放在scanf后面会顺畅一些。中间多放一些变量名方便监视。以及mine要多显示,在测试的时候。虽然成品是show,但是拿成品测试累死个人
test.c
#define _CRT_SECURE_NO_WARNINGS#include "game.h"void menu()
{printf("------------------------------------\n"); printf("---------- 1.play ----------------\n");printf("---------- 2.exit ----------------\n");printf("------------------------------------\n");printf("------------------------------------\n");//记得换行符
}void game()
{//存放布置的雷char mine[ROWS][COLS] = { 0 };//存放排查出的雷char show[ROWS][COLS] = { 0 };Initboard(mine, ROWS, COLS, '0');Initboard(show, ROWS, COLS, '*');setmine(mine, ROW, COL);Displayboard(show, ROW, COL);findmine(mine, show, ROW, COL);/*Displayboard(mine, ROW, COL);Displayboard(show, ROW, COL);*/}int main()
{//初始化int input= 0;srand((unsigned int)time(NULL));//生成随机数的最简步骤有哪些?do{menu();printf("请选择:>");scanf("%d", &input);switch(input){case 1:game();//printf("扫雷\n");break;case 2:printf("退出游戏\n");break;default:printf("错误选择\n");break;}} while (input == 2 ? 0 : input);return 0;
}
game.c
#define _CRT_SECURE_NO_WARNINGS
#include "game.h"void Initboard(char board[ROWS][COLS], int rows, int cols, char set)
{int i, j;for (i = 0; i < rows; i++){for (j = 0; j < cols; j++){board[i][j] = set;}}
}void Displayboard(char board[ROWS][COLS], int row, int col)
{int i = 0;int j = 0;printf("---------- 扫雷游戏 -----------\n");//记得换行符for (j = 0; j <= col; j++){printf("%d ", j);}printf("\n");for (i = 1; i <= row; i++){printf("%d ", i);for (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 = EASY_COUNT;while (count){int x = rand() % row + 1;int y = rand() % col + 1;if (board[x][y] == '0'){board[x][y] = '1';count--;}}
}int get_mine_count(char board[ROWS][COLS], int x, int y)
{int i;i=(board[x - 1][y] + board[x - 1][y - 1] + board[x][y - 1] + board[x + 1][y - 1] + board[x + 1][y] + board[x + 1][y + 1] + board[x][y + 1] + board[x - 1][y + 1] - 8 * '0');return i;
}void findmine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{int win = 0;while (win<row*col-EASY_COUNT){printf("请输入要排查的坐标:>");int x = 0;int y = 0;scanf("%d %d", &x, &y);if (x >= 1 && x <= row && y >= 1 && y <= col){if (show[x][y] != '*'){printf("排查过了,换一个\n");}else{if (mine[x][y] == '1'){printf("你被炸死了\n");Displayboard(mine, ROW, COL);break;}else{win++;//周围几个雷int count = get_mine_count(mine, x, y);show[x][y] = count + '0';//转换为数字字符//Displayboard(mine, ROW, COL);Displayboard(show, ROW, COL);}}}else{printf("请重新输入坐标\n");}}//注意这里条件不要写成赋值了if (win == row * col - EASY_COUNT){printf("排雷成功\n");Displayboard(mine, ROW, COL);}}
game.h
#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
//这几个头文件对应的英文意思和内容是什么#define EASY_COUNT 10#define ROW 9
#define COL 9#define ROWS ROW+2
#define COLS COL+2void Initboard(char board[ROWS][COLS], int rows, int cols, char set);
void Displayboard(char board[ROWS][COLS], int row, int col);
void setmine(char board[ROWS][COLS], int row, int col);
void findmine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col);
输出结果:
------------------------------------
---------- 1.play ----------------
---------- 2.exit ----------------
------------------------------------
------------------------------------
请选择:>1
---------- 扫雷游戏 -----------
0 1 2 3 4 5 6 7 8 9
1 * * * * * * * * *
2 * * * * * * * * *
3 * * * * * * * * *
4 * * * * * * * * *
5 * * * * * * * * *
6 * * * * * * * * *
7 * * * * * * * * *
8 * * * * * * * * *
9 * * * * * * * * *
---------- 扫雷游戏 -----------
请输入要排查的坐标:>1 1
---------- 扫雷游戏 -----------
0 1 2 3 4 5 6 7 8 9
1 1 * * * * * * * *
2 * * * * * * * * *
3 * * * * * * * * *
4 * * * * * * * * *
5 * * * * * * * * *
6 * * * * * * * * *
7 * * * * * * * * *
8 * * * * * * * * *
9 * * * * * * * * *
---------- 扫雷游戏 -----------
请输入要排查的坐标:>1 2
---------- 扫雷游戏 -----------
0 1 2 3 4 5 6 7 8 9
1 1 1 * * * * * * *
2 * * * * * * * * *
3 * * * * * * * * *
4 * * * * * * * * *
5 * * * * * * * * *
6 * * * * * * * * *
7 * * * * * * * * *
8 * * * * * * * * *
9 * * * * * * * * *
---------- 扫雷游戏 -----------
请输入要排查的坐标:>2 1
你被炸死了
---------- 扫雷游戏 -----------
0 1 2 3 4 5 6 7 8 9
1 0 0 0 1 0 0 0 0 0
2 1 0 0 0 0 0 0 0 0
3 0 0 0 0 1 0 0 0 1
4 0 0 0 0 0 0 1 0 0
5 0 0 0 0 0 0 0 0 1
6 0 0 0 0 0 0 0 0 0
7 0 1 0 0 0 0 0 0 0
8 1 0 0 0 0 0 0 0 0
9 0 0 0 0 0 0 0 1 1
---------- 扫雷游戏 -----------
------------------------------------
---------- 1.play ----------------
---------- 2.exit ----------------
------------------------------------
------------------------------------
请选择:>2
退出游戏
相关文章:
44.扫雷第二部分、放置随机的雷,扫雷,炸死或成功 C语言
按照教程打完了。好几个bug都是自己打出来的。比如统计周围8个格子时,有一个各自加号填成了减号。我还以为平移了,一会显示是0一会显示是2。结果单纯的打错了。debug的时候断点放在scanf后面会顺畅一些。中间多放一些变量名方便监视。以及mine要多显示&a…...
大语言模型LLM的微调代码详解
代码的摘要说明 一、整体功能概述 这段 Python 代码主要实现了基于 Hugging Face Transformers 库对预训练语言模型(具体为 TAIDE-LX-7B-Chat 模型)进行微调(Fine-tuning)的功能,使其能更好地应用于生成唐诗相关内容的…...
钉钉与企业微信机器人:助力网站定时任务高效实现
钉钉、企业微信机器人在网站定时任务中的应用,主要体现在自动化通知、提醒以及数据处理等方面。 以下是一些具体的应用场景: 1. 自动化通知 项目进度提醒:在蒙特网站所负责的软件开发或网站建设项目中,可以利用机器人设置定时任…...
自然语言处理工具-广告配音工具用于语音合成助手/自媒体配音/广告配音/文本朗读-已经解锁了 全功能的 apk包
Android -「安卓端」 广告配音工具用于语音合成助手/自媒体配音/广告配音/文本朗读。 广告配音工具:让您的文字“说话”,在这个快速发展的数字时代,广告配音工具为各种语音合成需求提供了一站式解决方案。无论是自媒体配音、商业广告配音、…...
深入解析注意力机制
引言随着深度学习的快速发展,注意力机制(Attention Mechanism)逐渐成为许多领域的关键技术,尤其是在自然语言处理(NLP)和计算机视觉(CV)中。其核心思想是赋予模型“关注重点”的能力…...
Unity图形学之雾Fog
1.设置雾化: 2.雾化变化曲线:FogMode (1)线性: (2)一次指数: (3)二次指数: Shader "Custom/FogTest" {Properties{_Color ("Color…...
【大数据学习 | Spark-Core】详解Spark的Shuffle阶段
1. shuffle前言 对spark任务划分阶段,遇到宽依赖会断开,所以在stage 与 stage 之间会产生shuffle,大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。 负责shuffle…...
如何启动 Docker 服务:全面指南
如何启动 Docker 服务:全面指南 一、Linux 系统(以 Ubuntu 为例)二、Windows 系统(以 Docker Desktop 为例)三、macOS 系统(以 Docker Desktop for Mac 为例)四、故障排查五、总结Docker,作为一种轻量级的虚拟化技术,已经成为开发者和运维人员不可或缺的工具。它允许用…...
使用client-go在命令空间test里面对pod进行操作
目录 一、获取使用restApi调用的token信息 二、client-go操作pod示例 1、获取到客户端 2、创建pod 3、获取test命令空间的所有pod 4、获取某个具体pod的详细信息 5、更新pod 6、删除pod 三、总结 官方参考地址:https://kubernetes.io/docs/reference/kuber…...
Linux中网络文件系统nfs使用
一、nfs服务 NFS(Network File System) 是一种用于在网络中共享文件的协议,允许不同操作系统(如 Linux、Unix、MacOS 等)之间进行文件共享。 NFS 的工作原理基于客户端-服务器模型,服务器提供共享文件系统…...
气膜建筑:打造全天候安全作业空间,提升工程建设效率—轻空间
在现代建筑工程中,施工环境的管理和作业效率是决定项目进度和质量的关键因素。然而,施工过程中常常会受到天气变化的影响,诸如大风、雨雪、沙尘等恶劣天气常常延误工期,增加施工难度。为了解决这一问题,气膜建筑以其独…...
【HarmonyOS学习日志(10)】一次开发,多端部署之功能级一多开发,工程级一多开发
功能级一多开发 SysCap机制介绍 HarmonyOS使用SysCap机制(即SystemCapability),可以帮助开发者仅关注设备的系统能力,而不用考虑成百上千种具体的设备类型。 在过去,开发不同设备上的应用就用不同设备的SDK进行开发&…...
dmdba用户资源限制ulimit -a 部分配置未生效
dmdba用户资源限制ulimit -a 部分配置未生效 1 环境介绍2 数据库实例日志报错2.1 mpp01 实例日志报错2.2 mpp02 实例日志报错 3 mpp02 服务器资源限制情况4 关闭SELinux 问题解决4.1 临时关闭 SELinux4.2 永久关闭 SELinux 5 达梦数据库学习使用列表 1 环境介绍 Cpu x86 Os Ce…...
【Code First】.NET开源 ORM 框架 SqlSugar 系列
.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列 …...
如何在谷歌浏览器中切换DNS服务器
在浏览网页时,DNS(域名系统)服务器的作用是将您输入的网址转换为计算机可以理解的IP地址。有时,您可能需要更改默认的DNS服务器以提升网络速度或解决访问问题。本文将详细介绍如何在谷歌浏览器中切换DNS服务器,并在此过…...
Spring Cloud Stream实现数据流处理
1.什么是Spring Cloud Stream? Spring Cloud Stream的核心是Stream,准确来讲Spring Cloud Stream提供了一整套数据流走向(流向)的API, 它的最终目的是使我们不关心数据的流入和写出,而只关心对数据的业务处…...
列表上移下移功能实现
后台管理某列表需实现上移下移功能,并与前端展示列表排序相关。 现将开发完成过程笔记记录下来。 目录 列表增加属性 JQuery脚本 服务端 控制器 服务层 总结 列表增加属性 在循环渲染时,在table表格的tr上增加id和排序的属性值,以便传…...
升级智享 AI 直播三代:领航原生直播驶向自动化运营新航道
在瞬息万变的数字商业世界,直播行业恰似一艘破浪前行的巨轮,原生直播作为初始 “航船”,在历经风雨后,终于迎来智享 AI 直播三代这股强劲 “东风”,校准航向,开启自动化运营的全新航道,驶向一片…...
Llmcad: Fast and scalable on-device large language model inference
题目:Llmcad: Fast and scalable on-device large language model inference 发表于2023.09 链接:https://arxiv.org/pdf/2309.04255 声称是第一篇speculative decoding边缘设备的论文(不一定是绝对的第一篇),不开源…...
Hbase2.2.7集群部署
环境说明 准备三台服务器,分别为:bigdata141(作为Hbase主节点)、bigdata142、bigdata143确保hadoop和zookeeper集群都先启动好我这边的hadoop版本为3.2.0,zookeeper版本为3.5.8 下载安装包 下载链接:In…...
【青牛科技】D1671 75Ω 带4级低通滤波的单通道视频放大电 路芯片介绍
概 述 : D1671是 一 块 带 4级 低 通 滤 波 的 单 通 道 视 频 放 大 电 路 , 可 在3V或5V的 低 电 压 下 工 作 。 该 电 路 用 在 有 TV影 象 输 出 功 能 的 产 品 上 面,比如 机 顶 盒 ,监 控 摄 象 头 ,DVD&#…...
[NeurIPS 2022] Leveraging Inter-Layer Dependency for Post-Training Quantization
Contents IntroductionMethodExperimentsReferences Introduction 作者提出一种端到端的 PTQ 训练策略 Network-Wise Quantization (NWQ),并通过 Annealing Softmax (ASoftmax) 和 Annealing Mixup (AMixup) 改进了 AdaRound,降低了训练收敛难度 Metho…...
ubuntu+ROS推视频流至网络
目录 概述 工具 ros_rtsp 接受流 web_video_server 源码安装 二进制安装 ros接收rtsp视频流 总结 概述 ros_rtsp功能包可以将ros视频流以rtsp形式推送 web_video_server功能包可以将ros视频话题推HTTP流 rocon_rtsp_camera_relay可以接受同一网段下的rtsp视频流输出为…...
PHP 去掉特殊不可见字符 “\u200e“
描述 最近在排查网站业务时,发现有数据匹配失败的情况 肉眼上完全看不出问题所在 当把字符串 【M24308/23-14F】复制出来发现 末尾有个不可见的字符 使用删除键或左右移动时才会发现 最后测试通过 var_dump 打印 发现这个"空字符"占了三个长度 …...
深度学习—BP算法梯度下降及优化方法Day37
梯度下降 1.公式 w i j n e w w i j o l d − α ∂ E ∂ w i j w_{ij}^{new} w_{ij}^{old} - \alpha \frac{\partial E}{\partial w_{ij}} wijnewwijold−α∂wij∂E α为学习率 当α过小时,训练时间过久增加算力成本,α过大则容易造成越过最…...
elasticsearch8.16 docker-compose 多机器集群安装
在网上找了一圈, 发现要么就是单机版的部署了多个节点, 很少有多台机器部署集群的, 有些就拿官网的例子写一写, 没有实战经验, 下面分享一个教程, 实实在在的多台机器, 每台机器部署2个节点的例子 先上.env , docker-compose.yml文件, 这个文件是核心, 里面掺杂太多坑, 已经帮你…...
Flink--API 之 Source 使用解析
目录 一、Flink Data Sources 分类概览 (一)预定义 Source (二)自定义 Source 二、代码实战演示 (一)预定义 Source 示例 基于本地集合 基于本地文件 基于网络套接字(socketTextStream&…...
uniapp在小程序连接webScoket实现余额支付
webScoket文档:uni.connectSocket(OBJECT) | uni-app官网 /plugins/event.js const Dep function() {this.Evens Object.create(null); } class Event {constructor({dep new Dep()} {}) {if (dep.constructor Object && Object.keys(dep).length 0…...
Spring Boot【三】
自动注入 xml中可以在bean元素中通过autowire属性来设置自动注入的方式: <bean id"" class"" autowire"byType|byName|constructor|default" /> byName:按照名称进行注入 byType:按类型进行注入 constr…...
R 因子
R 因子 引言 在金融领域,风险管理和投资策略的优化一直是核心议题。传统的风险度量工具,如波动率、Beta系数等,虽然在一定程度上能够帮助投资者理解市场的波动和资产的相对风险,但它们往往无法全面捕捉到市场动态的复杂性。因此…...
做ppt选小图案的网站/2021年中国关键词
原文地址 你是否曾经也有过这样的问题: 用VS的时候,有时会用到一些非自带的库,例如WTL、Boost、DX等,每次需要用到时都要在项目属性里添加相应的include目录,久而久之觉得有点麻烦。是否有解决办法呢? 于是…...
百度搜索不到自己的网站/微信上如何投放广告
Cookie 1.什么是Cookie 一小段文本,明文的数据,关于网站相关的文本字符串数据.一个客户端状态保持机制~ 存储在客户端的浏览器内存里面或者磁盘(如果不指定过期时间,那么存储在客户端浏览器内存中,如果指定了过期时间,那么存储在客户端的磁盘上.) cookie跟网站有关的,各个网站只…...
建设一个班级网站的具体步骤/如何做网站建设
CCNET配置文件代码1 <cruisecontrol xmlns:cb"urn:ccnet.config.builder">2 <!--项目名称-->3 <name>StartKit</name>4 <!--标示类型,有多种类型。下面为默认标示,作为每次编译时生成的日志文件的名称--&…...
dreamweaver绿色版下载/seo搜索引擎优化推荐
本文刚刚发在51CTO.com网站,文章链接:[url]http://soft.51cto.com/art/200611/34788.htm[/url]11月中旬,CA EXPO 2006分别在上海和北京召开。作为一直与CA保持联系的记者,51CTO老杨受邀参与北京站的会议。我是2000年开始接触和了解…...
网站建设程序的步骤过程/百度官方客服平台
今天看到《银行主数据项目(MDM)的数据持久层,你选择hibernate还是ibatis(MyBatis)》跑到首页来了, 把我最近使用方式分享一下。Hiberante(Spring JDBC freemarker)两次结合,hibernate对简单的数据操作很方便,可以大量减少SQL语句的维护。对于…...
慈溪做网站/女生读网络营销与电商直播
VNCTF2022_Misc_复现 仔细找找 放大图片可以看见有很小的与周围颜色不同的像素点均匀的分布在图片中 先寻找像素点之间的间隔,然后拼接在一起生成新的图片 代码实现 from re import L from PIL import Image import numpy pic Image.open("C:\\Users\\Me…...