扫雷初级版
来源:互联网 发布:刘涛的淘宝店铺 编辑:程序博客网 时间:2024/05/22 02:50
*************************************game.h************************************
#ifndef _GAME_H_
#define _GAME_H_
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#define ROW 9
#define COL 9
#define ROWS ROW+2
#define COLS COL+2
#define COUNT 10
void Setmine(char arr[ROWS][COLS],int row, int col);
void Inintmeun(char arr[ROWS][COLS],int row, int col, char set);
void Output(char arr[ROWS][COLS],int row, int col);
int Clean(char arr[ROWS][COLS],char arr1[ROWS][COLS],int row, int col);
int num(char arr[ROWS][COLS],int x, int y);
#endif
*************************************game.c************************************
#define _CRT_SECURE_NO_WARNINGS 1
#include"game.h"
void Inintmeun(char arr[ROWS][COLS],int row,int col,char set)
{
memset(arr, set, row*col*sizeof(set));
}
void Output(char arr[ROWS][COLS],int row,int col)
{
int x = 1;
int y = 1;
for (x = 1; x <= row; x++)
{
printf(" %d ", x);
for (y = 1; y <= col; y++)
{
printf(" %c ", arr[x][y]);
}
printf("\n");
}
printf("\n");
}
void Setmine(char arr[ROWS][COLS],int row,int col)
{
int x = 0;
int y = 0;
int count = 0;
srand((unsigned)time(NULL));
while (count < COUNT)
{
x = rand() % row + 1;
y = rand() % col+ 1;
if (arr[x][y] =='0')
{
arr[x][y] = '1';
count++;
}
}
}
int num(char arr[ROWS][COLS], int x ,int y)
{
int count = 0;
if (arr[x + 1][y] =='1')
count++;
if (arr[x -1][y] =='1')
count++;
if (arr[x + 1][y+1] =='1')
count++;
if (arr[x + 1][y-1] =='1')
count++;
if (arr[x -1][y+1] =='1')
count++;
if (arr[x - 1][y-1] =='1')
count++;
if (arr[x][y-1] =='1')
count++;
if (arr[x][y+1] =='1')
count++;
return count;
}
int Clean(char arr[ROWS][COLS],char arr1[ROWS][COLS],int row,int col)
{
int x = 0;
int y = 0;
int count = 0;
int sum = 0;
printf("请输入想要清除的坐标");
scanf("%d", &x);
scanf("%d", &y);
while(((x >= 1) &&( x <= 9)) && ((y >= 1) && (y <= 9)))
{
if (arr[x][y] =='1')
{
arr1[x][y] = '1';
Output(arr1, ROW, COL);
printf("被炸死了\n");
return 0;
}
else
{
sum++;
count = num(arr, x, y);
arr1[x][y] = count+'0';
Output(arr1, ROW, COL);
if (sum == ROW*COL - COUNT)
{
printf("扫雷成功\n");
return 0;
}
printf("请输入想要清除的坐标");
scanf("%d", &x);
scanf("%d", &y);
}
}
printf("坐标不合法\n");
return 0;
}
*************************************game.c************************************
#define _CRT_SECURE_NO_WARNINGS 1
#include"game.h"
void menu()
{
printf("*****************************\n");
printf("**1.play game 0.exit **\n");
printf("*****************************\n");
printf("** 请通过键盘进行选择 **\n");
}
int main()
{
int n = 0;
menu();
scanf("%d", &n);
int i = 0;
char menu[ROWS][COLS];
char game[ROWS][COLS];
char set1 = '*';
char set2 = '0';
printf(" ");
for (i = 1; i <= ROW; i++)
{
printf(" %d ", i);
}
printf("\n");
while (n)
{
Inintmeun(menu, ROWS, COLS,set1);
Inintmeun(game, ROWS, COLS, set2);
Output(menu, ROW, COL);
Output(game,ROW, COL);
Setmine(game, ROW, COL);
Output(game, ROW, COL);
Clean(game,menu, ROW, COL);
Output(menu, ROW, COL);
n = 0;
}
system("pause");
}
- 扫雷初级版
- 扫雷(C#版)
- 扫雷 VB.net 版
- c#版扫雷网络版
- 扫雷游戏javascript版
- JS版扫雷
- [原创]JavaScript版扫雷
- 扫雷算法(C#版)
- java版扫雷
- 控制台版扫雷程序
- JavaScript版的扫雷
- java版扫雷小游戏
- C#版扫雷游戏
- Win32简易版扫雷
- java控制台版扫雷
- 扫雷测试版
- 扫雷(java版)
- 简易版扫雷
- 16 OF 100DAYS
- 数据结构中静态顺序表的初始化、尾插、尾删、头插、头删、任意位置的插入及删除
- UVALive3199 Specialized Four-Digit Numbers【进制】
- 算法期中 最近的0
- 记录一下题目
- 扫雷初级版
- 数据类型强制转换
- 图的广度优先搜索算法并生成BFS树
- ubuntu修改时区和时间的方法
- “MacTalk 跨越边界” iBooks.
- 区块链工程师学习路线图
- obhect创建的两种方法
- 算法期中 合并二叉树
- 立即执行函数