C 언어 는 간단 한 지뢰 제거 게임 을 실현 한다.
5475 단어 C 언어지뢰 를 제거 하 다게임.
순서
1.우선 게임 선택 메뉴 인쇄
2.지도 및 초기 화
1)、플레이어 에 게 보 여 주 는 지도(showmap)
2)、지뢰 의 그림(mine맵 지뢰 의 위 치 를 알 수 있다)
3.지도 인쇄
4.사용자 가 좌 표를 입력 하고 좌표 의 합 리 성 을 확인한다.
5.현재 위치 에 지뢰 가 있 는 지 판단 하고 없 으 면 숫자 가 나타 납 니 다(주변 칸 에 지뢰 가 몇 개 있 는 지 표시)
6.새 지도 인쇄
7.천둥 밟 기 게임 이 끝나 거나 승리 할 때 까지 3~6 단 계 를 반복 한다.
8.다시 게임 을 진행 하거나 퇴장 합 니 다!
코드
주 함수 및 게임 선택 메뉴
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define ROW 9
#define COL 9
#define COUNT 10 //
int menu()
{
printf("*************************
");
printf("****** 1.play ******
");
printf("****** 0.exit ******
");
printf("*************************
");
printf(" :>");
int choice = 0;
scanf("%d", &choice);
return choice;
}
int main()
{
int choice = 0;
srand((unsigned int)time(NULL));
while (1)
{
choice = menu();
if (choice == 1)
{
game();
}
else if (choice == 0)
{
printf("goodbye!
");
break;
}
else
{
printf(" , !
");
}
}
system("pause");
return 0;
}
게임1.2 차원 배열 을 만 듭 니 다.2.두 개의 2 차원 배열 을 초기 화 합 니 다.3.지도 인쇄 하기;4.사용자 에 게 좌 표를 입력 하 게 하기;5.천둥 밟 기 여부 판정 하기;6.게임 의 승리 여 부 를 판단 한다.7.지 도 를 업데이트 하여 현재 위 치 를 하나의 숫자 로 바 꿉 니 다.
void game()
{
//1.
char show_map[ROW][COL];
char mine_map[ROW][COL];
//2.
Init(show_map, mine_map);
int blank_count = 0;
while (1)
{
PrintMap(mine_map);// , mine_map
printf("
");
//3.
PrintMap(show_map);
//4.
printf(" :>");
int i = 0;
int j = 0;
scanf("%d %d", &i, &j);
if (i < 0 || i >= ROW || j < 0 || j >= COL)
{
printf(" , !
");
continue;
}
if (show_map[i][j] != '*')
{
//
printf(" , !
");
continue;
}
//5.
if (mine_map[i][j] == '1')
{
// ,
PrintMap(mine_map);
printf(" !
");
break;
}
blank_count++;
//6.
if (blank_count == ROW * COL - COUNT)
{
printf(" , !
");
break;
}
//7. ,
UpdateShowMa(show_map, mine_map, i, j);
}
}
지도 초기 화
void Init(char show_map[ROW][COL], char mine_map[ROW][COL])
{
//1.show_map *
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
{
show_map[i][j] = '*';
}
}
//2.mine_map
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
{
mine_map[i][j] = '0';
}
}
//3. 10
int mine_count = COUNT;
while (mine_count > 0)
{
//
int i = rand() % ROW;
int j = rand() % COL;
if (mine_map[i][j] == '1')
{
continue;
}
mine_map[i][j] = '1';
--mine_count;
}
}
지 도 를 인쇄 하 다
void PrintMap(char map[ROW][COL])
{
//1. ( )
printf(" |");
for (int j = 0; j < COL; j++)
{
printf(" %d", j);
}
printf("
");
//2.
for (int j = 0; j < COL; j++)
{
printf("---");
}
printf("
");
//3.
for (int i = 0; i < ROW; i++)
{
printf(" %d|", i);
for (int j = 0; j < COL; j++)
{
printf(" %c", map[i][j]);
}
printf("
");
}
}
낙하 주위 격자 지뢰 의 개 수 를 판단 하 다.
void UpdateShowMa(char show_map[ROW][COL], char mine_map[ROW][COL], int i, int j)
{
// (i,j), 8
int count = 0;
if (i - 1 >= 0 && j - 1 >= 0 && mine_map[i - 1][j - 1] == '1')
{
count++;
}
if (i - 1 >= 0 && mine_map[i - 1][j] == '1')
{
count++;
}
if (i - 1 >= 0 && j + 1 < COL && mine_map[i - 1][j + 1] == '1')
{
count++;
}
if (j - 1 >= 0 && mine_map[i][j - 1] == '1')
{
count++;
}
if (j + 1 < COL && mine_map[i][j + 1] == '1')
{
count++;
}
if (i + 1 < ROW && j - 1 >= 0 && mine_map[i + 1][j - 1] == '1')
{
count++;
}
if (i + 1 < ROW && mine_map[i + 1][j] == '1')
{
count++;
}
if (i + 1 < ROW && j + 1 < COL && mine_map[i + 1][j + 1] == '1')
{
count++;
}
//count
show_map[i][j] = count + '0';
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.