#define _CRT_SECURE_NO_WARNINGS 1
#define ROW 11//控制棋盘的行
#define COL 11//控制棋盘的列
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
void ResetBoard(char Board[ROW][COL], int row, int col)
{
int i, j = 0;
for (i = 1; i <= row - 2; i++)
{
for (j = 1; j <= col - 2; j++)
{
Board[i][j] = ' ';
printf(" %c ", Board[i][j]);
if (j < col - 2)
{
printf("|");
}
}
printf("\n");
for (j = 1; j <= col - 2; j++)
{
if (i < col - 2)
{
printf("---");
if (j < col - 2)
{
printf("|");
}
}
}
printf("\n");
}
}
void Mine(char Board[ROW][COL], int row, int col)
{
int x, y = 0;
x = rand() % (row - 2) + 1;
y = rand() % (col - 2) + 1;
for (int i = 0; i <= 9; i++)
{
if (Board[x][y] == ' ')
{
Board[x][y] = '*';
}
}
}
int Play(char Board[ROW][COL], int row, int col)
{
int x = 0;
int y = 0;
int Boom = 0;
int count = 0;
printf("输入坐标:");
scanf("%d%d", &x, &y);
if (Board[x][y] == '*')
{
return 0;
}
for (int i = 1; i <= row - 2; i++)
{
for (int j = 1; j <= col - 2; j++)
{
if (Board[i][j] == ' ')
{
count++;
if (count == 0)
{
return 1;
}
}
}
}
for (int i = x - 1; i <= x + 1; i++)
{
for (int j = y - 1; j <= j + 1; j++)
{
if (Board[i][j] == '*')
{
Boom++;
}
}
}
if (Board[x][y] == ' ')
{
Board[x][y] = Boom;
}
}
void PlayBoard(char Board[ROW][COL], int row, int col)
{
int i, j = 0;
for (i = 1; i <= row - 2; i++)
{
for (j = 1; j <= col - 2; j++)
{
printf(" %c ", Board[i][j]);
if (j < col - 2)
{
printf("|");
}
}
printf("\n");
for (j = 1; j <= col - 2; j++)
{
if (i < col - 2)
{
printf("---");
if (j < col - 2)
{
printf("|");
}
}
}
printf("\n");
}
}
void menu()
{
printf("**************************\n");
printf("***** 1.play 0.exit *****\n");
printf("**************************\n");
printf("输入1开始游戏 输入0退出游戏:\n");
}
void game()
{
char Board[ROW][COL] = { 0 };
ResetBoard(Board, ROW, COL);
while (1)
{
int back = 0;
Mine(Board, ROW, COL);
printf("请输入坐标:\n");
Play(Board, ROW, COL);
PlayBoard(Board, ROW, COL);
back = Play(Board, ROW, COL);
if (back == 0)
{
printf("BOOOOOOOM!!!\n");
break;
}
if (back == 1)
{
printf("获胜!\n");
break;
}
}
}
int main()//自建扫雷游戏
{
int input = 0;
srand((unsigned int)time(NULL));//这个用的是 stdlib.h,而不是string.h
do
{
menu();
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 2:
printf("退出游戏!\n");
break;
default:
printf("输入错误,请重新输入!\n");
break;
}
} while (input);
}
我写了个扫雷程序,调试总提示没有memset.asm,百度了下也没有结果,你们知道吗
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- qzjhjxj 2022-01-17 12:58关注
修改如下,供参考:
#define _CRT_SECURE_NO_WARNINGS 1 #define ROW 11//控制棋盘的行 #define COL 11//控制棋盘的列 #include <stdio.h> #include <time.h> #include <string.h> #include <stdlib.h> void ResetBoard(char Board[ROW][COL], int row, int col) { int i, j = 0; for (i = 1; i <= row - 2; i++) { for (j = 1; j <= col - 2; j++) { Board[i][j] = ' '; printf(" %c ", Board[i][j]); if (j < col - 2) { printf("|"); } } printf("\n"); for (j = 1; j <= col - 2; j++) { if (i < col - 2) { printf("---"); if (j < col - 2) { printf("|"); } } } printf("\n"); } } void Mine(char Board[ROW][COL], int row, int col) { int x, y = 0; x = rand() % (row - 2) + 1; y = rand() % (col - 2) + 1; for (int i = 0; i <= 9; i++) { if (Board[x][y] == ' ') { Board[x][y] = '*'; } } } int Play(char Board[ROW][COL], int row, int col) { int x = 0; int y = 0; int Boom = 0; int count = 0; printf("输入坐标:"); scanf("%d%d", &x, &y); if (Board[x][y] == '*') { return 0; } for (int i = 1; i <= row - 2; i++) { for (int j = 1; j <= col - 2; j++) { if (Board[i][j] == ' ') { count++; if (count == 0) { return 1; } } } } for (int i = x - 1; i <= x + 1; i++) { for (int j = y - 1; j <= y + 1; j++) //for (int j = y - 1; j <= j + 1; j++) { if (Board[i][j] == '*') { Boom++; } } } if (Board[x][y] == ' ') { Board[x][y] = Boom; } } void PlayBoard(char Board[ROW][COL], int row, int col) { int i, j = 0; for (i = 1; i <= row - 2; i++) { for (j = 1; j <= col - 2; j++) { printf(" %c ", Board[i][j]); if (j < col - 2) { printf("|"); } } printf("\n"); for (j = 1; j <= col - 2; j++) { if (i < col - 2) { printf("---"); if (j < col - 2) { printf("|"); } } } printf("\n"); } } void menu() { printf("**************************\n"); printf("***** 1.play 2.exit *****\n"); printf("**************************\n"); printf("输入1开始游戏 输入2退出游戏:\n"); } void game() { char Board[ROW][COL] = { 0 }; ResetBoard(Board, ROW, COL); while (1) { int back = 0; Mine(Board, ROW, COL); printf("请输入坐标:\n"); Play(Board, ROW, COL); PlayBoard(Board, ROW, COL); back = Play(Board, ROW, COL); if (back == 0) { printf("BOOOOOOOM!!!\n"); break; } if (back == 1) { printf("获胜!\n"); break; } } } int main()//自建扫雷游戏 { int input = 1; //修改 srand((unsigned int)time(NULL));//这个用的是 stdlib.h,而不是string.h do { menu(); scanf("%d", &input); switch (input) { case 1: game(); break; case 2: input = 0; //修改 printf("退出游戏!\n"); break; default: input = 1; //修改 printf("输入错误,请重新输入!\n"); break; } } while (input); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效
- ¥15 悬赏!微信开发者工具报错,求帮改
- ¥20 wireshark抓不到vlan
- ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
- ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持