C 언어 콘 솔 오목 미니 게임 실현
컴 파일 환경:VS 2015
이 프로그램 은 여러 파일 로 컴 파일 되 었 습 니 다.모두 세 개의 파일,하나의 game.h 헤더 파일,하나의 game.c 파일 과 하나의 main.c 파일 이 있 습 니 다.코드 는 각각 다음 과 같 습 니 다.
game.h
여 기 는 데이터 와 함수 의 성명 입 니 다.
#ifndef _GAME_H_
#define _GAME_H_
#define _BOARD_ 10 //
#define _PIECE_ 5 //
typedef struct Board{
char show[_BOARD_][_BOARD_]; //
char Pc; //
char Player; //
}Brd ,*pBrd; //Brd: pBrd:
void init(pBrd B);
void PrintBrd(const pBrd B);
void Pcrand(pBrd B);
int Player(pBrd B);
int judge(pBrd B, int n);
void menu(pBrd B);
#endif // ! _GAME_H_
game.c여 기 는 함수 의 구체 적 인 실현 이다.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include "game.h"
void init(pBrd B)
{
int i, j;
for (i = 0; i < _BOARD_; i++)
{
for (j = 0; j < _BOARD_; j++)
{
B->show[i][j] = ' ';
}
}
B->Pc = '@';
B->Player = '*';
}
void PrintBrd(const pBrd B)
{
int i, j;
printf(" ");
for (i = 0; i < _BOARD_; i++)
{
printf(" %d", i + 1);
}
printf("
");
for (i = 0; i < _BOARD_; i++)
{
for (j = 0; j < _BOARD_; j++)
{
if (j == 0)printf(" %d|", i + 1);
printf(" %c |", B->show[i][j]);
}
if (i == 0)printf(" Player: *");
if (i == 1)printf(" AI: @");
printf("
");
}
}
void Pcrand(pBrd B)
{
int i, j;
srand((unsigned int)time((NULL)));
int n = rand()%(_BOARD_*_BOARD_);
for (i = 0; i < _BOARD_; i++)
{
for (j = 0; j < _BOARD_; j++)
{
if (n > 0)n--;
else if (n == 0 && B->show[i][j] == ' ')
{
B->show[i][j] = B->Pc;
return;
}
}
}
}
int Player(pBrd B)
{
int i, j;
printf(" :
");
printf(" :>");
scanf("%d", &i);
printf(" :>");
scanf("%d", &j);
i--;
j--;
if (B->show[i][j] != ' ' || i >= _BOARD_ || j >= _BOARD_ || i < 0 || j < 0)
{
printf(" !
");
system("pause");
return 0;
}
B->show[i][j] = B->Player;
return 1;
}
int judge(pBrd B, int n)
{
char s;
int c = 0;
int i, j, sum = 0;
if (n == 1)s = B->Player;
else if (n = 2) s = B->Pc;
for (i = 0; i < _BOARD_; i++)
{
sum = 0;
for (j = 0; j < _BOARD_; j++)
{
if (B->show[i][j] == s)sum++;
else sum = 0;
if (sum == _PIECE_)return 1;
}
}
for (j = 0; j < _BOARD_; j++)
{
sum = 0;
for (i = 0; i < _BOARD_; i++)
{
if (B->show[i][j] == s)sum++;
else sum = 0;
if (sum == _PIECE_)return 1;
}
}
sum = 0;
for (i = 0, j = 0; i < _BOARD_; i++, j++)
{
if (B->show[i][j] == s)sum++;
else sum = 0;
if (sum == _PIECE_)return 1;
}
sum = 0;
for (i = 0, j = _BOARD_ - 1; i < _BOARD_; i++, j--)
{
if (B->show[i][j] == s)sum++;
else sum = 0;
if (sum == _PIECE_)return 1;
}
return 0;
}
void menu(pBrd B)
{
int c,n = 1;
printf("****************************************
");
printf("********* 1.play ** 0.exit *********
");
printf("****************************************
");
printf(" :>");
scanf("%d", &c);
while (c)
{
system("cls");
if (n == 1)
{
PrintBrd(B);
if(Player(B))n=2;
else continue;
}
else
{
Pcrand(B);
n = 1;
}
if (judge(B, n))
{
PrintBrd(B);
if (n == 1)printf("Old Fe 666!
");
else printf("
");
break;
}
}
}
main.c프로그램 입구
#include"game.h"
int main()
{
Brd B;
init(&B);
menu(&B);
printf("Thanks for playing my game.
");
return 0;
}
캡 처 실행이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.