哥们哥们,人机大战晓得吧玩家对战晓得吧,简易三子棋,呕心沥血500行代码手把手带你制作第一个小游戏,可以保存收藏以后接着看哟,最后有源码哦

本文详细介绍了如何使用C/C++编写一个500行的三子棋游戏,包括游戏界面、功能步骤分析、人机大战和玩家对决模式,通过源码分享帮助读者理解游戏逻辑和编程技巧,适合初学者实践。
摘要由CSDN通过智能技术生成

目录

 

前言

 

一、游戏想要有意思,函数不可少,整活的函数

二、三子棋的游戏界面

三、三子棋的功能步骤分析 

    1.菜单

    2.三子棋实现的总体框架

    3.棋盘创建

    4.棋盘初始化

    5.棋盘打印

    6.玩家下棋

    7.电脑下棋

    8.判断输赢

    9.判断是否平局及其继续

四、人机大战

五、玩家对决

六、源码

 

总结


 

前言

大家好呀,欢迎来到我滴博客,就如同标题那样,我带大家实现的就是“三子棋” 小游戏,这个游戏很经典,也很有意思(有意思的是我们自己创造出来的人工智障哈哈),这个小游戏的具体功能呢有人机对战,玩家solo以及退出(有初级进度条的实现哟~),500行相信大家跟着这篇博客成功地实现了你自己的三子棋以后,你对循环,函数以及文件后缀.h呀.c以及游戏的先后出手顺序也会有一个新的认识,那么现在跟我一起去创造你的第一个人工智障吧!!! 


希望大家敲到足够的代码后也能像我一样找到女朋友 ,嘿嘿今个刚好是我家小姑娘生日哦~

动力源泉啊兄弟们!!!83d19dd99a254e1c87120a8a34db25c2.jpeg

 

 

 

一、游戏想要有意思,函数不可少,整活的函数

srand((unsigned int)time(NULL))(引入头文件#include<stdlib.h>)一般和rand()(引入头文件#include<time.h)一同使用用来产生随机数

Sleep(int x)(头文件#include<windows.h)可以使打印有时间间隔,这里我用来做进度条

system("cls")(头文件#include<stdlib.h>)用来清理屏幕。

 

先给大家看看需要自己写的函数,接口函数的功能都有备注(一般定义在.h文件里)

#pragma once
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#include<windows.h>
#define ROW 3//行
#define COL 3//列,不用加;
void test();//测试运行
void menu();//菜单栏
void game();//游戏逻辑
//先声明
void player_move1(char board[ROW][COL], int row, int col);//玩家b下棋
void init_board(char board[ROW][COL], int row, int col);//初始化棋盘
void print_board(char board[ROW][COL], int row, int col);//打印棋盘
void player_move(char board[ROW][COL], int row, int col);//玩家a下棋
void computer_move(char board[ROW][COL], int row, int col);//电脑下棋
char in_win(char board[ROW][COL], int row, int col);//判断输赢

二、三子棋的游戏界面

10049be2774a4471a88c7c44649b31ed.png

 上边就是界面的初步实现,界面越简洁,说明越容易实现,相信我,你也可以的。

 

三、三子棋的功能步骤分析 

1.菜单

3973ad7733d3456f968dbd5083b26f5e.png

展示一个页面,提示用户,根据数字选择游戏方式,主要是为了美观!!!

一般界面的实现用的是void menu()函数

void menu()//菜单
{
	printf("***********************\n");
	printf("***********************\n");
	printf("******0  退出游戏******\n");
	printf("******1. 人机大战******\n");
	printf("******2. 人人对决******\n");
	printf("***********************\n");
	printf("***********************\n");
}

2.三子棋实现的总体框架

根据菜单提示,输入数字,回车,进入游戏。

而这个数字的控制自然需要借助switch语句,而游戏肯定不是想只玩一局,这时候do--while()语句就派上了用场,一般来说,菜单以及测试实现游戏功能所需要的函数都放在void taxt()函数中

输入0退出游戏,1和2分别是人机大战和人人对决其他的则会提醒你重新输入。

然后是不是需要一些条件判断谁赢谁输以及继续游戏还是平局,下面我来提前规定一下

我们用游戏过程中产生的返回值来判断是否要继续,定义char ret来接收返回值

ret==C,游戏继续

ret==Q,游戏平局

ret==‘*’,玩家胜利

ret==‘#’,电脑胜利

void text()
{
	srand((unsigned int)time(NULL));//unsigned inttime最好强制类型转换一下
	int input = 0;
	char arr[50];
	strcpy(arr, "-------------------------------------------------");
	do
	{

		menu();
		
		printf("请选择:>");
		scanf("%d", &input);
		switch (input)
		{
		case 1: {
			printf("三子棋\n");
			game1();
			printf("正在退出,请稍后哦亲~\n");
			for (int i = 0; i < 50; i++)
			{
				printf("%c", arr[i]);
				Sleep(100);
		}
			system("cls");
			break;
		}
		case 2: {
			printf("三子棋\n");
			game2();
			printf("正在退出,请稍后哦亲~\n");
			for (int i = 0; i < 50; i++)
			{
				printf("%c", arr[i]);
				Sleep(100);
			}
			system("cls");
			break;
		}
		case 0:
		{
			printf("正在退出,请稍后哦亲~\n");
			for (int i = 0; i < 50; i++)
			{
				printf("%c", arr[i]);
				Sleep(100);
			}
			system("cls");
			break;
		}
		default:
		{
			printf("选择错误,请重新选择\n");
			
		}
		}
	} while (input);
}

 我们输入的便是input的数值,当输入0的时候input==0则switch可以退出,while(input)里的条件也不成立,则可以退出游戏。

注意看在(正在退出,请稍后哦亲~)的那里我加了for循环,Sleep()

  • 41
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 40
    评论
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山上雪️

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值