初学C语言-井字棋

一、基本逻辑

  • 1.菜单界面选择是否开始游戏
  • 2.创建棋盘并对棋盘进行初始化
  • 3.打印棋盘
  • 4.玩家先手,‘*’代表玩家落子(判断输赢)
  • 5.电脑下(随机落子),‘#’代表电脑落子(判断胜负)
  • 6.返回步骤2并继续执行

二、步骤

我分了三个项,分别是test.c,game.c,game.h

test.c主要放主函数;game.c用来放一些需要用到的函数;game.h则用来放置需要用到的头文件,这样其他两个项目引用头文件时只需#include"game.h"即可。

1.game.h

#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define ROW 3//行(这样写方便更改)
#define COL 3//列
void InitBoard(char board[ROW][COL], int row, int col);//初始化棋盘
void DispalyBoard(char board[ROW][COL], int row, int col);//打印棋盘
void playermove(char board[ROW][COL], int row, int col);//玩家下棋
void computermove(char board[ROW][COL], int row, int col);// 电脑下棋
char Iswin(char board[ROW][COL], int row, int col);//判断输赢
int Isfull(char board[ROW][COL], int row, int col);//判断棋盘是否下满

2.test.c

  • 菜单(1.开始游戏 0.退出游戏)
  • 用switch函数来判断是否进行游戏
  • 如果输入1则进入game()函数;
  • 如果输入0则输出“退出游戏;
  • 输入其他的就显示输入错误。
    int main()
    {
    	srand((unsigned int)time(NULL));//设置随机数的生成起点
    	int input = 0;
    	do
    	{
    		menu();//菜单界面
    		printf("请选择:");
    		scanf("%d", &input);
    		switch (input)
    		{
    		case 1:
    			game();
    			break;
    		case 0:
    			printf("退出游戏");
    			break;
    		default:
    			printf("选择错误:\n");
    			break;
    		}
    	} while (input);
    	return 0;

    menu()函数

    void menu()
    {	
    	    printf("********************\n");
    		printf("***1.play  0.exit***\n");
    		printf("********************\n");
    }

    game()函数

    void game()
    {
    	char ret = 0;
    	char board[ROW][COL] = { 0 };
    	InitBoard(board, ROW, COL);
    	DispalyBoard(board, ROW, COL);
    	while (1)
    	{
    		playermove(board, ROW, COL);//玩家下棋
    		ret = Iswin(board, ROW, COL);
    		if (ret != 'c')
    		{
    			break;
    		}//判断输赢
    		DispalyBoard(boa
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值