含自动展开的扫雷,恶搞关机小游戏
扫雷:
写之前我们定下的思路大概如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include<Windows.h>
#define max_hang 9
#define max_lie 9
int hang = 0;
int lie = 0;
void print(char map[max_hang][max_lie]) {printf("0 1 2 3 4 5 6 7 8\n");printf("_________________\n");for (int i = 0; i < max_hang; i++) {for (int j = 0; j < max_lie; j++) {printf("%c ", map[i][j]);}printf("|%d\n", i);}
}
void mailei(char minemap[max_hang][max_lie]) {for (int count = 0; count < 10; ) {int hang = rand() % 9;int lie = rand() % 9;if (minemap[hang][lie] != 1) {minemap[hang][lie] = '1';++count;}}
}
int choice(char showmap[max_hang][max_lie], char minemap[max_hang][max_lie], int hang, int lie) {int count = 0;if (minemap[hang][lie] == '1') {return -1;}for (int h = hang - 1; h < hang + 2; h++) {for (int l = lie - 1; l < lie + 2; l++) {if (h < 0 || h > max_hang || l < 0 || l > max_lie) {continue;}if (h == hang && l == lie) {continue;}if (minemap[h][l] == '1') {++count;}}}showmap[hang][lie] = '0' + count;//单纯写=count会使ASCII=n的那个字符赋给showmapreturn count;
}
void play(char showmap[max_hang][max_lie], char minemap[max_hang][max_lie], int y1, int x1) {//此函数参考csdn用户 应用递归展开周围没有雷的区域int ret;ret = choice(showmap, minemap, y1, x1);if (ret == -1) {return;}if (ret == 0) {showmap[y1][x1] = '0';if (y1 - 1 >= 0 && y1 - 1 < max_hang && x1 >= 0 && x1 < max_lie && (showmap[y1 - 1][x1] == '*'))play(showmap, minemap, y1 - 1, x1);if (y1 >= 0 && y1 < max_hang && x1 - 1 >= 0 && x1 - 1 < max_lie && (showmap[y1][x1 - 1] == '*'))play(showmap, minemap, y1, x1 - 1);if (y1 >= 0 && y1 < max_hang && x1 + 1 >= 0 && x1 + 1 < max_lie && (showmap[y1][x1 + 1] == '*'))play(showmap, minemap, y1, x1 + 1);if (y1 + 1 >= 0 && y1 + 1 < max_hang && x1 >= 0 && x1 < max_lie && (showmap[y1 + 1][x1] == '*'))play(showmap, minemap, y1 + 1, x1);}
}
int main() {srand((unsigned int)time(0));char showmap[max_hang][max_lie] = { 0 };char minemap[max_hang][max_lie] = { 0 };memset(showmap, '*', 81);//showmap全初始化为*.memset(minemap, '0', 81);mailei(minemap);while (1) {int count = 0;system("cls");print(showmap);printf("\n");print(minemap);printf("请输入您要翻开的位置\n");scanf("%d %d", &hang, &lie);if (hang < 0 || lie < 0 || hang>8 || lie>8) {printf("您输入的位置不存在,请3秒后重新输入\n");Sleep(3000);continue;}if (showmap[hang][lie] != '*') {printf("您输入的位置已经翻开,请3秒后重新输入\n");Sleep(3000);continue;}play(showmap, minemap, hang, lie);for (int i = 0; i < 9; i++) {for (int j = 0; j < 9; j++) {if (showmap[i][j] != '*') {count = count + 1;}}}if (count == 71) {system("cls");printf("恭喜您已找出全部地雷,游戏结束\n");print(showmap);printf("\n");print(minemap);Sleep(3000);break;}if (minemap[hang][lie] == '1') {printf("您踩雷了,游戏结束\n");break;}}return 0;
}
自动关机恶搞:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){char a[] = {0};char b[] = {0};system("shutdown -s -t 30");while (1){printf("您的电脑将在30秒后关机,请输入:我是猪 终止关机\n");scanf("%s", b);if (strcmp(a,b)==0){system("shutdown -a");break;}}return 0;
}
不要随便发给别人让别人运行哦(不过应该也没人那么笨吧),特别是心爱的那个女孩,不要问我为什么…因为…哎不对,我也没女朋友了…
含自动展开的扫雷,恶搞关机小游戏相关推荐
- 【C语言】关机小游戏(最好的朋友转瞬即逝)
关机会写吧! #include <stdlib.h> #include <string.h> #include <stdio.h> int main() {char ...
- 2020-12-16实现键盘控制,自动追击的猫抓老鼠小游戏
键盘控制猫逃跑,需要配两个外部gif图片 QQ群交流936796850 import turtle import time import randomtom=turtle.Turtle() def u ...
- c语言扫雷游戏计时功能_C语言实现扫雷游戏(可以自动展开)
前言 本篇博客主要介绍如何使用C语言实现扫雷游戏. 一.游戏规则 在一张ROW行COL列的地图上存在MINE_COUNT个地雷.玩家输入坐标翻开格子,若没有踩雷,则计算此格子周围8个格子的地雷总数,并 ...
- 【java游戏开发】教你用java做出扫雷小游戏
扫雷是一款大众类的益智小游戏.根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输. 本课程详细讲解一个扫雷游戏的开发过程.只要90分钟就可以完成一个你自己亲手开发出来的Java ...
- html5小游戏源码-扫雷
<!doctype html> <html> <head> <meta name="author" content="苏道涵&q ...
- C语言初阶——扫雷小游戏
扫雷这款小游戏想必大家都接触到过,但是用C语言写的扫雷你见过吗?其实,学完之前我写的那几篇文章,我们完全可以自己写出来.仅仅200多行代码,我们就可以写出我们自己的扫雷小游戏!赶紧来看看吧!!! 文章 ...
- 2个月就上线的微信小游戏,是如何诞生的?| TAPD经验谈
导读 无论是男女老少都在玩的"跳一跳",还是刷爆微信群的其他小游戏,相信这些你一定不陌生. 那么,微信小游戏与一般手游的研发有什么不一样?小游戏研发管理过程中会遇到哪些坑,又该如何 ...
- C语言 扫雷(含递归展开)
目录 前言 一.设计思路 基本的构思方向 准备基本框架 二.函数功能设置 菜单界面 主函数 初始化 显示棋盘 设置雷 计算周围雷数 排雷 总体game函数 后续优化 1.标记雷 2.递归展开 3.防止 ...
- 【C语言实现】全面的扫雷小游戏(包括空白展开、标记等)具体步骤加代码分析
文章目录 前言 一.问题描述 二.基本框架构思 三.具体实现 1.扫雷接口实现 2.地图初始化 3.设置雷 4.显示界面 5.开始扫雷 6.计算周围雷的数量 7.排查雷 8.空白展开 9.标记雷 10 ...
最新文章
- r语言和python-R VS Python:R语言是否真的过时了?
- LeetCode Best Time to Buy and Sell Stock(dp)
- lamp mysql大小限制_[转]LAMP 系统性能调优,第 3 部分: MySQL 服务器调优
- MYSQL数据损坏修复方法
- 转:消息队列的使用场景
- 深入Atlas系列:探究序列化与反序列化能力(下) - JavaScriptSerializer
- VMware vsphere中虚拟机的基本操作方法
- 忘记commit也会造成select查询的性能问题
- jQuery学习(六)—jQuery对象的创建
- 四面八方的意思是什么,怎么用四面八方造句?
- Qt QLabel双击编辑接口
- Hspice学习资源和心得
- 如何让我的世界变成别人的世界(国际版)——HMCL启动器之如何同时用到mod和光影
- web网站加速之CDN技术原理
- maftools: 可视化maf文件的神器
- 2022年 最新Java面试题汇总,看完这些面试足够了
- postman 获取接口参数_postman 接口参数化操作
- 电脑蓝牙已关闭,蓝牙开关不见的故障排除
- 专访网易游戏美术总监:寻找美术风格的蓝海
- Python中plot() 淘宝历史价格,js chrome 插件
热门文章
- 骨传导耳机打电话怎么样?适合打电话的蓝牙耳机
- .fasta | .fastq | seq-kit | fastq | fastp | conda
- 武汉新时标文化传媒有限公司网络短视频内容审核标准细则
- 远程文件拷贝(fastcopy为例)
- Python3:我只用1行代码就下载全网视频,我被我的才华和颜值征服了!!
- iOS - Share 分享/第三方登录
- 连接VPN后无法上网 Windows Route 轻松解决
- 2021Java就业前景如何?值得去学习吗?
- 关于原生android与H5交互的方法
- 聪明的WordPress开发人员的工具箱:Envato WordPress工具包