C 언어 개발 지뢰 제거 게임 실현

본 논문 의 사례 는 C 언어 가 지뢰 제거 게임 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
간단 한 설명:
쓸 위 치 를 입력 하 십시오.
레이 라면 게임 에 실패 합 니 다.
천둥 이 아 닌 모든 위 치 를 한 번 훑 으 면 게임 이 승리 한다.
주요 세부 사항
1.초기 화(유저 지뢰 제거 도,지뢰 배치 도)
전 시 된 맵(유저 가 볼 수 있 는 맵)쇼 맵

for (int row = 0; row < ROW; row++){

 for (int col = 0; col < COL; col++){
 showMap[row][col] = '*';
 }
}
지뢰 배치 지도(유저 가 볼 수 없 는 지도)mineMap

for (int row = 0; row < ROW; row++){

 for (int col = 0; col < COL; col++){
 mineMap[row][col] = '*';
 }
 }
 int count = 0;
 while (count<MINECOUNT){
 int row = rand() % 9;
 int col = rand() % 9;
 mineMap[row][col] = 'L';
 count++;
 }
}
3.지도 인쇄

void print(char Map[ROW][COL]){
 printf(" |0|1|2|3|4|5|6|7|8|
"); for (int row = 0; row < ROW; row++){ printf("%d |", row); for (int col = 0; col < COL; col++){ printf("%c ", Map[row][col]); } printf("
"); } }
5.유저 가 스 캔 할 위치 정 보 를 입력(9*9 칸 중 특정 위치)

void Input(char showMap[ROW][COL], char mineMap[ROW][COL], int* row, int* col){
 while (1){
 printf("           :");
 scanf("%d %d", row, col);
 if (((*row) < 0) || ((*row) >= ROW)
 || ((*col) < 0) || ((*col) >= COL)){
 printf("     ");
 continue;
 }
 if (showMap[*row][*col] == '*'){
 showMap[*row][*col] = ' ';
 break;
 }
 }
}
7.특정한 위치 가 지뢰 인지 아 닌 지 를 판단 한다.

//  1   ;  0     
int isMine(char mineMap[ROW][COL], int row, int col){
 if (mineMap[row][col] == 'L'){
 return 1;
 }
 return 0;
}
9.어느 위치 근처 지뢰 의 개수

int MineNerborhood(char mineMap[ROW][COL], int row, int col){
 if (row < 0 || row >= ROW
 || col < 0 || col >= COL){
 return '0';
 }
 int count = 0;
 for (int r = row - 1; r <= row + 1; r++){
 for (int c = col - 1; c <= col + 1; c++){
 if (mineMap[r][c] == 'L'){
 count++;
 }
 }
 }
 return count + '0';
}
원본 코드:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define ROW 9
#define COL 9
#define MINECOUNT 10

void Input(char showMap[ROW][COL], char mineMap[ROW][COL], int* row, int* col){
 while (1){
 printf("           :");
 scanf("%d %d", row, col);
 if (((*row) < 0) || ((*row) >= ROW)
 || ((*col) < 0) || ((*col) >= COL)){
 printf("     ");
 continue;
 }
 if (showMap[*row][*col] == '*'){
 showMap[*row][*col] = ' ';
 break;
 }
 }
}

//  1   ;  0     
int isMine(char mineMap[ROW][COL], int row, int col){
 if (mineMap[row][col] == 'L'){
 return 1;
 }
 return 0;
}
//
void init(char showMap[ROW][COL], char mineMap[ROW][COL]){

 for (int row = 0; row < ROW; row++){

 for (int col = 0; col < COL; col++){
 showMap[row][col] = '*';
 }
 }
 for (int row = 0; row < ROW; row++){

 for (int col = 0; col < COL; col++){
 mineMap[row][col] = '*';
 }
 }
 int count = 0;
 while (count<MINECOUNT){
 int row = rand() % 9;
 int col = rand() % 9;
 mineMap[row][col] = 'L';
 count++;
 }
}
void print(char Map[ROW][COL]){
 printf(" |0|1|2|3|4|5|6|7|8|
"); for (int row = 0; row < ROW; row++){ printf("%d |", row); for (int col = 0; col < COL; col++){ printf("%c ", Map[row][col]); } printf("
"); } } //(row,col) int MineNerborhood(char mineMap[ROW][COL], int row, int col){ if (row < 0 || row >= ROW || col < 0 || col >= COL){ return '0'; } int count = 0; for (int r = row - 1; r <= row + 1; r++){ for (int c = col - 1; c <= col + 1; c++){ if (mineMap[r][c] == 'L'){ count++; } } } return count + '0'; } // void game(){ srand(time(0)); // char showMap[ROW][COL]; // char mineMap[ROW][COL]; // init(showMap, mineMap); //print(mineMap); // int notMineCount = 0; printf(" !
"); while (1){ // print(showMap); // int row, col; Input(showMap, mineMap, &row, &col); // if (isMine(mineMap, row, col) == 1){ printf(" , !

"); print(mineMap); break; } // showMap[row][col]=MineNerborhood(mineMap, row, col); notMineCount++; // if (notMineCount == ROW*COL - MINECOUNT){ print(mineMap); printf(" !
"); break; } } } int menu(){ printf("===================
"); printf("1.
"); printf("0.
"); printf("===================
"); printf(" :"); int choice; scanf("%d", &choice); return choice; } int main(){ while (1){ int choice = menu(); if (choice == 1){ game(); }else if (choice==0){ break; }else{ printf(" ,
"); } } system("pause"); return 0; }
실행 결과:



더 많은 재 미 있 는 클래식 게임 을 통 해 주 제 를 실현 하고 여러분 에 게 공유 합 니 다.
C++클래식 게임 모음
python 클래식 게임 모음
python 러시아 블록 게임 집합
JavaScript 클래식 게임 을 계속 합 니 다.
자바 클래식 게임 모음
javascript 고전 게임 모음
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기