当前位置:网站首页>C language to realize mine sweeping (simple version)
C language to realize mine sweeping (simple version)
2022-06-24 20:27:00 【AKA. Tong Yuan Zhi】
#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(" Please enter the coordinates :");
scanf("%d %d", &x, &y);
if (x >= 1 && x <= row && y >= 1 && y <= col)
{
if (mine[x][y] == '1')
{
printf(" die \n");
xianshi(mine, ROW, COL);
printf(" Game over \n");
break;
}
else
{
int m = zhouweilei(mine, x, y);
show[x][y] = m + '0';
xianshi(show, ROW, COL);
}
}
else
{
printf(" Please re-enter \n");
continue;
}
win++;
}
if (win == row * col - shuliang)
{
printf(" Win. \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(" Please enter :");
scanf("%d", &xuanze);
switch (xuanze)
{
case 1:
printf(" Start the game \n");
game();
break;
case 0:
printf(" Quit the game \n");
break;
default:
printf(" Input error \n");
break;
}
} while (xuanze);
}
int main()
{
saolei();
return 0;
}边栏推荐
- Fundamentals of performance testing -- definitions of common terms
- 实现基于Socket自定义的redis简单客户端
- [go language questions] go from 0 to entry 4: advanced usage of slice, elementary review and introduction to map
- Implement the redis simple client customized based on socket
- 图像PANR
- VXLAN 与 MPLS:从数据中心到城域以太网
- Some small requirements for SQL Engine for domestic database manufacturers
- 物聯網?快來看 Arduino 上雲啦
- 【CANN文档速递04期】揭秘昇腾CANN算子开发
- 托管服务与SASE,纵享网络与安全融合 | 一期一会回顾
猜你喜欢

Five day summary of software testing

得物多活架构设计之路由服务设计

Test drive citus 11.0 beta (official blog)

Apache+PHP+MySQL环境搭建超详细!!!

二叉树的基本性质与遍历

Two solutions to the problem of 0xv0000225 unable to start the computer

实现基于Socket自定义的redis简单客户端

What about the Golden Angel of thunder one? Golden Angel mission details

Application practice | massive data, second level analysis! Flink+doris build a real-time data warehouse scheme

建立自己的网站(14)
随机推荐
Data backup and recovery of PgSQL
Bytebase 加入阿里云 PolarDB 开源数据库社区
Digital twin industry case: Digital Smart port
Win7 10 tips for installing Office2010 five solutions for installing MSXML components
Clustered index (clustered index), nonclustered index (nonclustered index)
RF_DC系统时钟设置GEN1/GEN2
Behind Tiantian Jianbao storm: tens of millions in arrears, APP shutdown, and the founder's premeditated plan to run away?
Ribbon源码分析之@LoadBalanced与LoadBalancerClient
Full link service tracking implementation scheme
苹果、微软、谷歌不再掐架,今年要合力干一件大事
Cooking business experience of young people: bloggers are busy selling classes and bringing goods, and the organization earns millions a month
【CANN文档速递05期】一文让您了解什么是算子
Two fellow countrymen from Hunan have jointly launched a 10 billion yuan IPO
Where are Xiaomi mobile phone's favorite SMS and how to delete them
Bytebase joins Alibaba cloud polardb open source database community
字节、腾讯也下场,这门「月赚3000万」的生意有多香?
两位湖南老乡,联手干出一个百亿IPO
Q1: error in JMeter filename must not be null or empty
R for Data Science (notes) -- data transformation (used by filter)
史上最全DPU厂商大盘点(上)