三子棋(井字棋)游戏 |
您所在的位置:网站首页 › 井字棋必胜秘诀视频讲解 › 三子棋(井字棋)游戏 |
一、开始写游戏之前,我们要注意:
(这样写便于修改,提高代码可读性) 首先是自己最先创建,包含主函数的.c文件,例如在此游戏中是test.c。我们通常会新建一个头文件,例如此游戏新建game.h,此头文件通常用来完成函数声明、头文件的引用、宏定义变量。新建一个.c文件,例如在此游戏新建game.c,编写涉及到的功能函数实现。 二、思路 我们可以先编写让玩家进行输入(决定是否进行游戏,例如:进行输入1,不进行输入0,(这里运用switch语句进行判断选择))。如果用户输入1,则我们进入游戏。我们都知道三子棋游戏是需要玩家输入(下棋),接着是电脑自动输入(下棋),(或者电脑先下,玩家后下,这里我们设置的是玩家先下)那么我们下棋之前每一个格子里面肯定都是空的。所以,进入游戏之后的第一步,我们要初始化棋盘,并且将其打印出来,这样我们可以清楚的看到棋盘的样子。接着我们定义函数让玩家进行输入。打印棋盘(这样可以清楚地看到玩家输入之后棋盘的样子)。接着定义函数让电脑进行输入。打印棋盘(这样可以清楚地看到电脑输入之后棋盘的样子)如果这样打印,那么我们会发现一个问题,那就是当棋盘下满之后,还是继续的状态。这个时候我们就知道我们需要判断是电脑赢还是玩家赢或者是平局。然后在玩家输入并且打印棋盘之后我们就需要定义一个判断输赢的函数去判断(因为一直处于玩家输完电脑输入的状态,随时有可能玩家赢)。同理,在电脑输入并且打印棋盘之后,我们需要用定义输赢的那个函数去判断。 简单来说,步骤如下: 棋盘的初始化;打印棋盘;玩家下棋;打印玩家下了之后的棋盘;判断输赢;电脑下棋;打印电脑下了之后的棋盘;判断输赢。 三、详细步骤 1、菜单界面定义一个菜单函数,放到main()函数中。其中 1 表示 游戏开始(进入游戏),0表示不玩游戏(退出游戏)。(其中srand()是随机数发生器的初始化函数,在电脑自动输入时候会用到;并且御用switch语句来判断) void menu() { printf("------------------------------\n"); printf("-----------请输入:-----------\n"); printf("------游戏开始(输入1):-----\n"); printf("------不玩游戏(输入0):-----\n"); printf("------------------------------\n"); } int main() { int a; srand((unsigned int)time(NULL)); do { menu(); printf("请输入:\n"); scanf("%d", &a); switch (a) { case 1: game(); break; case 0: printf("退出游戏\n"); break; default: printf("选择错误\n"); break; } }while (a); return 0; } 2、创建棋盘定义函数game(),在其中创建棋盘。使用3行3列的二维数组来表示,元素类型是char。 接着新建game.h,此头文件通常用来完成函数声明、头文件的引用、宏定义变量。在其中定义行和列的大小(这个例子是三行三列): 【注意】#pragma once是保证无论头文件被引用多少次,都只读取一次。 3、棋盘初始化 void Initboard(char board[ROW][COL], int row, int col) { int i,j; for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { board[i][j] = ' '; } } } 4、打印棋盘 void Playboard(char board[ROW][COL], int row, int col) { int i, j; for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { printf(" %c ", board[i][j]); if (j < col - 1) { printf("|"); } } printf("\n"); if (i < row-1) { for (j = 0; j < col; j++) { printf("---"); if (j < col - 1) { printf("|"); } } } printf("\n"); } } 5、玩家下棋【注意】 1.玩家落子需要在棋盘范围内。 2.玩家要在棋盘上空的地方落子。 3.如果输入的坐标不满足要重新输入。 void Playmove(char board[ROW][COL], int row, int col) { printf("玩家走\n"); int x, y; while (1) { scanf("%d %d", &x, &y);//输入要走的坐标 if (x >= 1 && x = 1 && y = 1 && x = 1 && y |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |