第一次编写小游戏,经过实战之后有了一些自己的想法,在这里与大家分享!
在编写游戏的过程中我们应该考虑游戏的具体框架,小到每一个模块的变量设置,大到游戏的整体结构都需要经过深思熟虑之后进行操作。
三子棋游戏的编写过程中我们要思考如何将游戏展示给玩家,如何编写每一个模块的内容,以及逻辑结构的整体呈现,下面我就将游戏的部分重要代码展示给大家!
game.h:我们将所有函数的声明,以及所调用的头文件都放在新建的头文件中,在调用的过程中直接调用你定义的头文件以免出现混乱。
#pragma once
#include<stdio.h>
#include<windows.h>
#include<time.h>
#pragma warning(disable:4996)
void Game();
#define ROW 3
#define COL 3
#define P_COLOR 'X'
#define C_COLOR 'O'
#define INIT ' '
void InitBoard(char board[][COL], int row, int col);
void ShowBoard(char board[][COL], int row, int col);
void ComputerMove(char board[][COL], int row, int col);
char Judge(char board[][COL], int row, int col);
这里的头文件的内容主要包含棋盘的初始化,棋盘的展示、游戏的设置、电脑的操作以及判断函数。
main.c文件:主要写出游戏的整体逻辑,可以让程序员一眼看出整个游戏的运行过程。
#include"game.h"
void Menu()
{
printf("########################\n");
printf("####欢迎来到游戏大厅####\n");
printf("########################\n");
printf("## 1.play 2.Exit ##\n");
printf("########################\n");
printf("请选择");
}
int main()
{
int quit = 0;
while (!quit)
{
Menu();
int select = 0;
scanf("%d", &select);
switch (select) {
case 1:
Game();
break;
case 2:
quit = 1;
break;
default:
printf("你输入错误,请重新输入!\n");
break;
}
}
printf("Bye Bye\n");
system("pause");
}
game.c:这里主要是游戏真正实现的 过程所有的函数调用也基本在这里实现。
#include"game.h"
void Game() {
srand((unsigned long)time(NULL));
char board[ROW][COL];
InitBoard(board, ROW, COL);
char result = 0;
int who = Guess();
int x = 0;
int y = 0;
do {
ShowBoard(board, ROW, COL);
switch (who) {
case 1:
printf("请落子:>");
scanf("%d %d", &x, &y);
if (x <= 0 || x > 3 || y <= 0 || y > 3) {
printf("输入有误,请重新输入!\n");
continue;
}
if (board[x - 1][y - 1] != ' ') {
printf("该位置已占用,请重新输入!\n");
continue;
}
board[x - 1][y - 1] = P_COLOR;
who = 0;
break;
case 0:
ComputerMove(board, ROW, COL);
who = 1;
break;
default:
break;
}
result = Judge(board, ROW, COL);
if (result != 'N') {//'N'->next,'F'->FULL,'X','O'
break;
}
system("cls");
} while (1);
if (result == P_COLOR) {
printf("恭喜你,你赢了!");
}
else if (result == C_COLOR) {
printf("很遗憾,你输了!");
}
else {
printf("平局!");
}
printf("要不要再来一局!\n");
}
以上就是编写游戏的整体过程和思路、实现过程展示以及部分重要的逻辑结构的代码块,如需要完整的代码在下方点赞留言即可获取