三子棋(井字棋)游戏

您所在的位置:网站首页 井字棋必胜秘诀视频讲解 三子棋(井字棋)游戏

三子棋(井字棋)游戏

2024-06-26 14:54:35| 来源: 网络整理| 查看: 265

一、开始写游戏之前,我们要注意:

(这样写便于修改,提高代码可读性)

首先是自己最先创建,包含主函数的.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


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭