C 언어 개발 지뢰 제거 게임 실현
7096 단어 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 고전 게임 모음
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.