当前位置:网站首页>C語言實現掃雷(簡易版)
C語言實現掃雷(簡易版)
2022-06-24 20:27:00 【AKA.瞳源治】
#define ROW 9
#define COL 9
#define ROWS 2 + ROW
#define COLS 2 + COL
#define shuliang 10
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
#include<Windows.h>
void quyu(char mine[ROWS][COLS], int rows, int cols, char n)
{
int i = 0;
int j = 0;
for (i = 0; i < rows; i++)
{
for (j = 0; j < cols; j++)
{
mine[i][j] = n;
}
}
}
void xianshi(char show[ROWS][COLS], int row, int col)
{
int i = 0;
int j = 0;
for (i = 0; i <= col; i++)
{
printf("%d ", i);
}
printf("\n");
for (i = 1; i <= row; i++)
{
printf("%d ", i);
for (j = 1; j <= col; j++)
{
printf("%c ", show[i][j]);
}
printf("\n");
}
printf("\n");
}
void buzhi(char mine[ROWS][COLS], int row, int col)
{
int m = shuliang;
int x = 0;
int y = 0;
while (m)
{
x = rand() % row + 1;
y = rand() % row + 1;
if (mine[x][y] == '0')
{
mine[x][y] = '1';
m--;
}
}
}
int zhouweilei(char mine[ROWS][COLS], int x, int y)
{
return mine[x - 1][y - 1] +
mine[x - 1][y] +
mine[x - 1][y + 1] +
mine[x][y - 1] +
mine[x][y + 1] +
mine[x + 1][y - 1] +
mine[x + 1][y] +
mine[x + 1][y + 1] -
8 * '0';
}
void play(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{
int x = 0;
int y = 0;
int win = 0;
while (win < row * col - shuliang)
{
printf("請輸入坐標:");
scanf("%d %d", &x, &y);
if (x >= 1 && x <= row && y >= 1 && y <= col)
{
if (mine[x][y] == '1')
{
printf("死\n");
xianshi(mine, ROW, COL);
printf("遊戲結束\n");
break;
}
else
{
int m = zhouweilei(mine, x, y);
show[x][y] = m + '0';
xianshi(show, ROW, COL);
}
}
else
{
printf("請重新輸入\n");
continue;
}
win++;
}
if (win == row * col - shuliang)
{
printf("贏了\n");
xianshi(mine, ROW, COL);
}
}
void meun()
{
Sleep(5000);
char a1[] = "******** 1. play *******";
char a2[] = "******** 0. exit *******";
char a3[] = "######## #######";
char a4[] = "######## #######";
int left1 = 0;
int right1 = strlen(a1) - 1;
int left2 = 0;
int right2 = strlen(a2) - 1;
while (left1 < right1 && left2 < right2)
{
a3[left1] = a1[left1];
a3[right1] = a1[right1];
a4[left2] = a2[left2];
a4[right2] = a2[right2];
printf("%s\n", a3);
printf("%s\n", a4);
left1++;
right1--;
left2++;
right2--;
Sleep(100);
system("cls");
}
printf("%s\n", a3);
printf("%s\n", a4);
}
void game()
{
char mine[ROWS][COLS] = { 0 };
char show[ROWS][COLS] = { 0 };
quyu(mine, ROWS, COLS, '0');
quyu(show, ROWS, COLS, '*');
buzhi(mine, ROW, COL);
xianshi(show, ROW, COL);
play(mine, show, ROW, COL);
}
void saolei()
{
int xuanze = 0;
srand((unsigned int)time(NULL));
do
{
meun();
printf("請輸入:");
scanf("%d", &xuanze);
switch (xuanze)
{
case 1:
printf("開始遊戲\n");
game();
break;
case 0:
printf("退出遊戲\n");
break;
default:
printf("輸入錯誤\n");
break;
}
} while (xuanze);
}
int main()
{
saolei();
return 0;
}边栏推荐
- You can capture fingerprints with a mobile camera?! Accuracy comparable to signature and monogram, expert: you are aggravating discrimination
- Audio and video 2020 2021 2022 basic operation and parameter setting graphic tutorial
- 【CANN文档速递05期】一文让您了解什么是算子
- Bytebase joins Alibaba cloud polardb open source database community
- JVM tuning
- Bytebase joins Alibaba cloud polardb open source database community
- 等等党们的胜利!挖矿退潮后,显卡价格全面暴跌
- Saltstack state state file configuration instance
- Redis error: -bash: redis cli: command not found
- 得物多活架构设计之路由服务设计
猜你喜欢

Error in Android connection database query statement

物聯網?快來看 Arduino 上雲啦

Todesk remote control, detailed introduction and tutorial

Stackoverflow annual report 2022: what are developers' favorite databases?

The agile way? Is agile development really out of date?

Teach you how to view the number of connected people on WiFi in detail how to view the number of connected people on WiFi

Openstack actual installation and deployment tutorial, openstack installation tutorial

云计算发展的 4 个阶段,终于有人讲明白了

对“宁王”边卖边买,高瓴资本“高抛低吸”已套现数十亿

Bytebase joins Alibaba cloud polardb open source database community
随机推荐
UART communication (STM32F103 library function)
Predicate
Stop using system Currenttimemillis() takes too long to count. It's too low. Stopwatch is easy to use!
Two solutions to the problem of 0xv0000225 unable to start the computer
unity之模糊背景(带你欣赏女人的朦胧美)
Coinbase将推出首个针对个人投资者的加密衍生产品
Install the custom module into the system and use find in the independent project_ Package found
Hutool reads large excel (over 10m) files
Clustered index (clustered index), nonclustered index (nonclustered index)
JMeter environment deployment
Database index can improve query efficiency. Ask what will improve, what is the difference between inapplicable index and index use, and what will happen.
16个优秀业务流程管理工具
Saltstack state state file configuration instance
Bytebase 加入阿里云 PolarDB 开源数据库社区
基于SSM的物料管理系统(源码+文档+数据库)
Accurate calculation of task progress bar of lol mobile game
lol手游之任务进度条精准计算
Apple doesn't need money, but it has no confidence in its content
Jd.com: how does redis implement inventory deduction? How to prevent oversold?
苹果不差钱,但做内容“没底气”