C 언어 는 지뢰 제거 게임 에 주석 을 붙 입 니 다.

개술
소 뇌 는 대중 류 의 지혜 로 운 작은 게임 이다.게임 목 표 는 클릭 칸 에 나타 난 숫자 에 따라 모든 비 레이 칸 을 찾 는 동시에 레이 를 밟 지 않 고 레이 를 밟 으 면 모든 판 을 지 는 것 이다.
실현 과정
1.사용자 대화 메뉴 만 들 기
2.브 레 함수
3.지뢰 해제 행렬 표시
4,유저 정의 좌표
5.배 뢰 수 계산
다 중 파일 구현
헤더 파일  clear_mine.h

#pragma once  //          
 
#define _CRT_SECURE_NO_WARNINGS 1   //   scanf     
 
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
 
#define ROW 8              
#define COL 8           
 
#define STYLE '?'        //   
#define NUM 20           //   
 
extern void Game();
원본 파일 main.c
플레이어 에 게 메뉴 표시 줄 보이 기

#include "clear_mine.h"
 
static void Menu()          //      
{
 printf("########################
"); printf("# 1. Play 0.Exit #
"); printf("########################
"); } int main() { int quit = 0; int select = 0; while (!quit) { Menu(); printf("Please Enter# "); scanf("%d", &select); switch (select) { case 1: Game(); break; case 0: quit = 1; break; default: printf("Position Error, Try Again!
"); break; } } printf("byebye!
"); system("pause"); return 0; }

원본 파일 clearmine.c

#include "clear_mine.h"
 
static void SetMines(char board[][COL], int row, int col)     //  
{
 int count = NUM;
 while (count)
 {
  int x = rand() % (row - 2) + 1;
  int y = rand() % (col - 2) + 1;   //            -2     
  if (board[x][y] == '0')     //                   
  {
   board[x][y] = '1';
   count--;
  }
 }
}
 
static void ShowLine(int col)        
{
 for (int i = 0; i <= (col - 2); i++)
 {
  printf("----");
 }
 printf("
"); } static void ShowBoard(char board[][COL], int row, int col) // { printf(" "); for (int i = 1; i <= (col - 2); i++) // { printf("%d ", i); } printf("
"); ShowLine(col); for (int i = 1; i <= (row - 2); i++) { printf("%-3d|", i); for (int j = 1; j <= (col - 2); j++) { printf(" %c |", board[i][j]); } printf("
"); ShowLine(col); } } static char CountMines(char board[][COL], int x, int y) // 8 { return board[x - 1][y - 1] + board[x - 1][y] + board[x - 1][y + 1] + \ board[x][y + 1] + board[x + 1][y + 1] + board[x + 1][y] + \ board[x + 1][y - 1] + board[x][y - 1] - 7 * '0'; } void Game() { srand((unsigned long)time(NULL)); // char show_board[ROW][COL]; char mine_board[ROW][COL]; memset(show_board, STYLE, sizeof(show_board)); // memset(mine_board, '0', sizeof(mine_board)); // SetMines(mine_board, ROW, COL); // int count = (ROW - 2)*(COL - 2) - NUM; // while (count) { system("cls"); // ShowBoard(show_board, ROW, COL); printf("Please Enter Your Position <x,y># "); int x = 0; int y = 0; scanf("%d %d", &x, &y); if (x < 1 || x > 10 || y < 1 || y > 10) // { printf("Postion Error!
"); continue; } if (show_board[x][y] != STYLE){ printf("Postion Is not *
"); continue; } if (mine_board[x][y] == '1'){ printf("game over!
"); ShowBoard(mine_board, ROW, COL); break; } show_board[x][y] = CountMines(mine_board, x, y); count--; } }
초기 화 된 지뢰 제거 행렬 

게임 체험 결과

관심 있 는 어린 이 는 해 보 세 요.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기