扫雷(用C语言编写扫雷游戏)
来源:互联网 发布:mac怎么qq远程控制 编辑:程序博客网 时间:2024/06/05 09:27
用C语言编写扫雷游戏是很有趣的哦,在学习中游戏,在游戏中学习^_^
game.h文件
#ifndef __GAME_H__#define __GAME_H__enum OPTION{PLAY,EXIT};#include<stdio.h>#include <string.h>#include <stdlib.h>#include<time.h>#define ROW 11 #define COL 11#define SUIJI 10void 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]);#endif
game.c 文件
#include"game.h"void menu(){printf("########################\n"); printf("######进入扫雷游戏######\n"); printf("####1:play 0:exit####\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 = SUIJI; srand((unsigned int)time(NULL)); while (count) { int x = rand() % (ROW-2) + 1; int 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) - SUIJI) { printf("请输入坐标:"); scanf("%d%d", &x, &y); if (mine[x][y] == '1') { printf("很遗憾,踩到雷了:\n"); printf("棋盘中雷的分布:\n"); display_board(mine); return; } else { int ret = get_mine(mine, x, y); show[x][y] = ret + '0'; display_board(show); } } printf("恭喜你,扫雷成功\n");}
test.c文件
#include "game.h"void game()//玩游戏{int x = 0;int y = 0; char mine[ROW][COL]; char show[ROW][COL]; init_board(mine, show); display_board(show); set_mine(mine);get_mine( mine,x,y); mine_sweep(mine, show);}int main(){ int input = 1; do { menu(); printf("请选择:\n"); scanf("%d", &input); switch (input) { case 1: game(); break;case 0: break; default: printf("选择错误,请重新选择:\n"); break; } }while(input); return 0;}
让我们一起来玩游戏吧
2 0
- 扫雷(用C语言编写扫雷游戏)
- 用C语言实现(扫雷游戏)
- c语言编写扫雷
- C语言-扫雷游戏
- c语言扫雷游戏
- c语言扫雷游戏
- 用c语言实现的扫雷游戏
- 用C语言实现扫雷游戏
- 扫雷游戏(C语言实现)
- C语言编写扫雷小游戏
- 扫雷游戏 C语言实现
- c语言的扫雷游戏
- 【C语言】扫雷游戏基础
- C语言实现扫雷游戏
- C语言实现扫雷游戏
- c语言—扫雷游戏
- 用VC++编写扫雷游戏
- 用Java编写扫雷游戏
- 51nod1278
- java SimpleDateFormat和Calendar的转换
- 【Treap/非旋转Treap】BZOJ1503 [NOI2004]郁闷的出纳员
- UESTC
- cpu占用过高
- 扫雷(用C语言编写扫雷游戏)
- 字符串扩展
- 正交信号的理解
- java 开始小结
- CSRF攻击
- onmouseenter 和 onmouseover 的不同,innerHTML
- Hololens相关数据文档
- Mybatis insert 验证(2)
- 461. Hamming Distance