如何用C语言写出简易的扫雷程序
来源:互联网 发布:vm虚拟机安装mac 编辑:程序博客网 时间:2024/06/07 09:35
简易扫雷
重点内容:用C语言实现简易扫雷
要求:怎么也得有个图形界面吧,随机雷区。
1.头部分
#ifndef AA__AA#define AA__AA#define _CRT_SECURE_NO_WARNINGS 1#define ROW 11#define COL 11#define DEFAULT 10#include <stdio.h>#include <string.h>#include <stdlib.h>#include<time.h>#include <Windows.h>void menu();void init_board(char mine[ROW][COL], char show[ROW][COL]); void display_board(char show[ROW][COL]);void set_mine(char mine[ROW][COL]); int get_mine(char mine[ROW][COL], int x, int y);void mine_sweep(char mine[ROW][COL],char show[ROW][COL]); void game();#endif
2.函数部分
void menu(){ printf("****************扫雷**************\n"); printf(" 1:玩游戏 0: 退出 \n"); printf("**********************************\n");}void init_board(char mine[ROW][COL], char show[ROW][COL]){ int i = 0; int j = 0; for (i = 1; i <ROW - 1; i++) { for (j = 1; j < COL - 1; j++) { mine[i][j] = '0'; } } for (i = 1; i <ROW - 1; i++) { for (j = 1; j < COL - 1; j++) { show[i][j] = '*'; } }}void display_board(char show[ROW][COL]){ int i, j; printf(" "); for (i = 1; i < COL - 1; i++) printf("%d ", i); printf("\n"); for (i = 1; i < ROW - 1; i++) { printf("%d ", i); for (j = 1; j < COL - 1; j++) { printf("%c ", show[i][j]); } printf("\n"); }}void set_mine(char mine[ROW][COL]){ int x = 0; int y = 0; int count = DEFAULT; srand((unsigned)time(NULL)); while (count) { x = rand() % (ROW - 2) + 1; y = rand() % (COL - 2) + 1; if (mine[x][y] == '0') { mine[x][y] = '1'; count--; } }}int get_mine(char mine[ROW][COL], int x, int y){ int count = 0; if (mine[x - 1][y - 1] == '1') count++; if (mine[x - 1][y] == '1') count++; if (mine[x - 1][y + 1] == '1') count++; if (mine[x][y - 1] == '1') count++; if (mine[x][y + 1] == '1') count++; if (mine[x + 1][y - 1] == '1') count++; if (mine[x + 1][y] == '1') count++; if (mine[x + 1][y + 1] == '1') count++; return count;}void mine_sweep(char mine[ROW][COL], char show[ROW][COL]){ int x = 0; int y = 0; int count = 0; while (count != (ROW - 2)*(COL - 2) - DEFAULT) { printf("请输入坐标:"); scanf("%d%d", &x, &y); if (x <= 9 && y <=9) { if (mine[x][y] == '1') { printf("踩到雷了:\n"); printf("地雷在棋盘的位置:\n"); display_board(mine); return; } else { int ret = 0; ret = get_mine(mine, x, y); if (ret == 0) { show[x - 1][y - 1] = ' '; show[x-1 ][y] = ' '; show[x-1][y + 1] = ' '; show[x][y]=' '; show[x][y -1] = ' '; show[x][y +1] = ' '; show[x +1][y - 1] = ' '; show[x+1][y] = ' '; show[x +1][y+1] = ' '; x++; y++; } else show[x][y] = ret + '0'; display_board(show); } printf("扫雷成功\n"); } else printf("输入错误,请重新输入:\n"); count++; continue; }}void game(){ char mine[ROW][COL]; char show[ROW][COL]; init_board(mine, show); display_board(show); set_mine(mine); display_board(mine); mine_sweep(mine, show);}
3.执行部分
int main(){ int input = 1; menu(); while (input) { printf("开始游戏:\n"); printf("请选择:"); scanf("%d", &input); switch (input) { case 0: printf("退出程序\n"); break; case 1: game(); break; default: printf("错误指令请重新选择:\n"); break; } } return 0;}
附上库函数使用注意事项
阅读全文
1 0
- 如何用C语言写出简易的扫雷程序
- 如何用c写出面向对像的程序
- 如何用 OS X 的 Xcode 写 C 语言程序
- 如何用 OS X 的 Xcode 写C语言程序
- well,c语言简易扫雷
- C语言扫雷程序
- c语言扫雷程序
- 【扫雷】C语言编写的小程序扫雷
- 控制台的扫雷程序(C语言)
- C语言写的扫雷小程序
- C语言:9*9>简易扫雷
- C语言实现简易版扫雷游戏
- C语言实现简易版扫雷
- 如何用JAVA写出无副作用的代码
- c语言中,如何用多个文件编写程序
- 如何用VisualStudio2013、VisualStudioTools命令行 编写C语言程序
- 如何用MATLAB调用C语言程序,,MATLAB mex -setup
- 请教大侠如何用c语言编写搬家的简单程序
- Android混合开发之WebView使用总结
- Linux安装Jdk
- Ajax请求中的async:false/true的作用
- 那些曾经励志过我们的话都被玩坏了。
- linux启动tomcat服务
- 如何用C语言写出简易的扫雷程序
- mysql索引简介
- Mysql CPU占用高的问题解决方法小结
- 消息预取限制:activeMQ 消息量限制 与 性能
- 如何拥有一个属于自己的网站
- js删除数组中指定的值
- 高并发基础之同步容器(七)
- PHP连接两个数据库,连接另一个数据库
- volatile的使用