扫雷
扫雷是我接触最早的一款游戏,小时候一直以为这是一个碰运气瞎点的游戏,长大后才逐渐会玩,到了今天,我才有能力将他用我所学的C语言实现。这里是微软扫雷的效果图:
1.设计游戏界面
int main()
{
srand((unsigned int)time(NULL));
int input = 0;
do
{
printf("******************\n");
printf("***** 1.play *****\n");
printf("***** 0.exit *****\n");
printf("******************\n");
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏!\n");
break;
default:
printf("输入错误!\n");
break;
}
} while (input);
return 0;
}
2.布置并初始化棋盘
//初始化棋盘
void InitBoard(char board[ROWS][COLS], int rows, int cols, char a)
{
int i = 0;
for (i = 0; i < rows; i++)
{
int j = 0;
for (j = 0; j < cols; j++)
{
board[i][j] = a;
}
}
}
3.打印棋盘
//打印棋盘
void ShowBoard(char board[ROWS][COLS], int rows, int cols)
{
printf("--------扫雷---------\n");
int i = 0;
for (i = 0; i < cols-1; i++)
{
printf("%d ", i);
}
printf("\n");
for (i = 1; i < rows-1; i++)
{
printf("%d ", i);
int j = 0;
for (j = 1; j < cols-1; j++)
{
printf("%c ", board[i][j]);
}
printf("\n");
}
printf("--------扫雷---------\n");
}
4.布置雷
//布置雷
void SetMine(char board[ROWS][COLS], int rows, int cols)
{
int count = MINE;
while (count)
{
int x = rand() % ROW + 1;
int y = rand() % COL + 1;
if (board[x][y] != '1')
{
board[x][y] = '1';
count--;
}
}
}
5.排雷
//排雷
void FindMine(char board[ROWS][COLS], char show[ROWS][COLS], int rows, int cols)
{
int x = 0;
int y = 0;
int wine = 0;
while (wine < ROW*COL-MINE)
{
printf("请输入坐标:>");
scanf("%d %d", &x, &y);
if (x >= 1 && x <= ROW && y >= 1 && y <= COL)
{
if (board[x][y] != '1')
{
int ret = show_mine(board, x, y);
show[x][y] = ret + '0';
ShowBoard(show, ROWS, COLS);
wine++;
}
else
{
printf("很遗憾,炸死了!\n");
ShowBoard(board, ROWS, COLS);
break;
}
}
else
{
printf("输入错误!\n");
}
}
if (wine == ROW * COL - MINE)
{
printf("排雷成功!\n");
}
}
总结
这是我写的第一个比较简单的程序,希望大家看到后可以在下方留言或者私信我,帮我修改完善这个扫雷的小程序,帮我提升自己。总体过程是快乐的,很享受解决每一个问题的过程,我盼望着有一天可以像那些大佬一样可以完全自己设计程序,也希望每一个程序员可以在编程中找到乐趣,爱上编程,永远不头秃!