C语言编程实现扫雷游戏
2017-10-23 18:06
791 查看
源码:
1.函数头:
#ifndef __GAME_H__
#define __GAME_H__
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define ROWS 10
#define COLS 10
#define DEFAULT_COUNT 10 //默认雷数
void set_mine(char mine[ROWS + 2][COLS + 2], int row, int col); //置雷
void display(char board[ROWS + 2][COLS + 2], int row, int col); //棋盘
int get_mine_count(char board[ROWS + 2][COLS + 2], int row, int col); //统计雷数
void play_game(char mine[ROWS + 2][COLS + 2], char show[ROWS + 2][COLS + 2]); //排雷
#endif //__GAME_H__2.函数体
#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"
int get_random_num(int m, int n)
{
return rand() % (n - m + 1) + m;
}
void set_mine(char mine[ROWS + 2][COLS + 2], int row, int col)
{
int count = DEFAULT_COUNT;
while (count)//雷的个数
{
int x = get_random_num(1, 10);
int y = get_random_num(1, 10);
if (mine[x][y] == '0')
{
mine[x][y] = '1';
count--;
}
}
}
1.函数头:
#ifndef __GAME_H__
#define __GAME_H__
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define ROWS 10
#define COLS 10
#define DEFAULT_COUNT 10 //默认雷数
void set_mine(char mine[ROWS + 2][COLS + 2], int row, int col); //置雷
void display(char board[ROWS + 2][COLS + 2], int row, int col); //棋盘
int get_mine_count(char board[ROWS + 2][COLS + 2], int row, int col); //统计雷数
void play_game(char mine[ROWS + 2][COLS + 2], char show[ROWS + 2][COLS + 2]); //排雷
#endif //__GAME_H__2.函数体
#include "game.h" void game() { char mine[ROWS + 2][COLS + 2]; char show[ROWS + 2][COLS + 2]; srand((unsigned int)time(NULL)); memset(mine, '0', (ROWS + 2)*(COLS + 2)*sizeof(char)); memset(show, '*', (ROWS + 2)*(COLS + 2)*sizeof(char)); set_mine(mine, ROWS + 2, COLS + 2); display(mine, ROWS + 2, COLS + 2); display(show, ROWS + 2, COLS + 2); play_game(mine, show); } void menu() { printf("***************************************\n"); printf("***********1.PLAY 0.EXIT************\n"); printf("***************************************\n"); } enum option { EXIT, PLAY }; int main() { int input = 0; do { menu(); printf("请选择:"); scanf("%d", &input); switch (input) { case PLAY: game(); break; case EXIT: break; default: printf("输入错误!请重新输入:\n"); break; } } while (input); return 0; }3.游戏函数主体:
#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"
int get_random_num(int m, int n)
{
return rand() % (n - m + 1) + m;
}
void set_mine(char mine[ROWS + 2][COLS + 2], int row, int col)
{
int count = DEFAULT_COUNT;
while (count)//雷的个数
{
int x = get_random_num(1, 10);
int y = get_random_num(1, 10);
if (mine[x][y] == '0')
{
mine[x][y] = '1';
count--;
}
}
}
void display(char board[ROWS + 2][COLS + 2], int row, int col) { int i = 0; int j = 0; printf(" "); for (i = 1; i <= 10; i++) { printf("%d ", i); } printf("\n"); for (i = 1; i <= 10; i++) { printf("---"); } printf("\n"); for (i = 1; i<row - 1; i++) { printf("%2d| ", i); for (j = 1; j<col - 1; j++) { printf("%c ", board[i][j]); } printf("\n"); } } int get_mine_count(char board[ROWS + 2][COLS + 2], int x, int y) { return (board[x - 1][y - 1] - '0') + (board[x][y - 1] - '0') + (board[x + 1][y - 1] - '0') + (board[x + 1][y] - '0') + (board[x + 1][y + 1] - '0') + (board[x][y + 1] - '0') + (board[x - 1][y + 1] - '0') + (board[x - 1][y - 1] - '0'); } void play_game(char mine[ROWS + 2][COLS + 2], char show[ROWS + 2][COLS + 2]) { while (1) { int x = 0; int y = 0; int win = 0; printf("请输入坐标>:"); scanf("%d%d", &x, &y); if (((x >= 1) && (x <= 10)) && ((y >= 1) && (y <= 10))) { if (mine[x][y] == '1') { printf("被炸死\n"); display(mine, ROWS + 2, COLS + 2); break; } else { int ret = 0; win++; ret = get_mine_count(mine, x, y); show[x][y] = ret + '0'; display(show, ROWS + 2, COLS + 2); if (win == COLS*ROWS - DEFAULT_COUNT) { printf("雷排完了\n"); display(mine, ROWS + 2, COLS + 2); break; } } } else { printf("坐标输入有误\n"); } } }
相关文章推荐
- 简易小游戏扫雷——C语言编程实现
- c语言编程 :模拟实现简单扫雷游戏
- 一步一步实现扫雷游戏(C语言实现)(三)
- c语言编程实现简单三子棋游戏
- 简单扫雷游戏中的编程方法学 - python实现
- C语言二维数组实现扫雷游戏
- C语言实现简易版扫雷游戏
- 用c语言实现的扫雷游戏
- C语言二维数组实现扫雷游戏
- C语言实现经典游戏——扫雷!
- C语言实现扫雷游戏
- C语言二维数组实现扫雷游戏
- 用C语言实现扫雷游戏
- C语言+二维数组+非递归实现扫雷游戏(代码贴过来后无缩进,尽请谅解,工程完成度:85%)
- c语言实现扫雷游戏
- 扫雷游戏的C语言实现
- 基于C语言实现的扫雷游戏
- 扫雷游戏(C语言实现)
- 用C语言实现(扫雷游戏)
- 【C语言】简易扫雷游戏——C语言实现