C 언어 지뢰 제거 게임 상세 코드 실현
4343 단어 C 언어지뢰 를 제거 하 다
사상 실현
본 논문 의 지뢰 제거 게임 은 주로 다음 과 같은 기능 을 실현 한다.
1.천둥 과 그 정보 보이 기
2.좌 표를 입력 하면 주변 9 칸 내 지뢰 수 를 관측 할 수 있다.
3.지뢰 를 클릭 하면 게임 종료
사용 하 는 IDE 는 VS 2013 입 니 다.
소스 코드
헤더 파일 saolei.h 만 들 기
모든 사용자 정의 함수 에 대한 설명 저장
#define COL 9
char** creatMat(int row, int col);
void intMat(char** Mat, int row, int col, char ch);
void setMine(char** Mat, int row, int col);
void showMat(char** Mat, int row, int col);
int getMineNum(char** Mat, int row, int col, int x, int y);
void game(char** mineMat, char** mineInfo, int row, int col);
원본 파일 만 들 기 SaoLei.c구체 적 인 게임 구현 을 저장 합 니 다.
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include "saolei.h"
#include <Windows.h>
char** creatMat(int row,int col)
{
//
char** Mat = (char**)malloc(sizeof(char *)*(row+2));// 2 2
//
for (int i = 0; i < row+2; ++i)
{
Mat[i] = (char*)malloc(sizeof(char)*(col+2));
}
return Mat;
}
void intMat(char** Mat, int row, int col, char ch)
{
for (int i = 0; i < row+2; ++i)
{
for (int j = 0; j < col+2; ++j)
{
Mat[i][j] = ch;
}
}
}
void setMine(char** Mat, int row, int col)//
{
int count = MINE_NUM;//
while (count)
{
//x:1`row,y:1~col
int x = rand() % row + 1;
int y = rand() % col + 1;
if (Mat[x][y] != '*')
{
Mat[x][y] = '*';
--count;
}
}
}
void showMat(char** Mat, int row, int col)
{
printf("------------------------------
");
//
for (int i = 0; i <= col; ++i)
{
printf("%d ", i);
}
printf("
");
//
for (int i = 1; i <= row; ++i)
{
printf("%d ", i);
for (int j = 1; j <= col; ++j)
{
printf("%c ", Mat[i][j]);
}
printf("
");
}
printf("------------------------------
");
}
int getMineNum(char** Mat, int row, int col, int x, int y)
{//
static int posOffset[8][2] = { { -1, -1 }, { -1, 0 }, { -1, 1 }, { 0, -1 }, { 0, 1 }, { 1, -1 }, { 1, 0 }, { 1, 1 } };
int count = 0;
for (int i = 0; i < 8; ++i)
{
int nx = x + posOffset[i][0];
int ny = y + posOffset[i][1];
if (Mat[nx][ny] == '*')
{
++count;
}
}
return 0;
}
void game(char** mineMat, char** mineInfo, int row, int col)
{
int step = 0;
while (step < row * col - MINE_NUM)
{
int x, y;
printf(" :
");
scanf("%d%d", &x, &y);
if (mineMat[x][y] == '*')
{
printf("game over!
");
showMat(mineMat, row, col);
break;
}
// x,y
int num = getMineNum(mineMat, row, col, x, y);
mineInfo[x][y] = num + '0';
showMat(mineInfo, row, col);
++step;//
}
if (step == row * col - MINE_NUM)
{
printf("win!
");
}
}
void test()
{
char** mineMat = creatMat(ROW, COL);
char** mineInfo = creatMat(ROW, COL);
intMat(mineMat, ROW, COL, '0');
intMat(mineInfo, ROW, COL, '*');
setMine(mineMat, ROW, COL);
printf(" :");
showMat(mineMat, ROW, COL);
printf(" :");
showMat(mineInfo, ROW, COL);
game(mineMat, mineInfo, ROW, COL);
}
int main()
{
test();
system("pause");
return 0;
}
게임 결과END
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.