【精选】适合初学者小游戏井字棋(三子棋)(C语言),Easyx图形库应用+源代码分享

您所在的位置:网站首页 井字棋规则修改 【精选】适合初学者小游戏井字棋(三子棋)(C语言),Easyx图形库应用+源代码分享

【精选】适合初学者小游戏井字棋(三子棋)(C语言),Easyx图形库应用+源代码分享

2024-04-07 21:03| 来源: 网络整理| 查看: 265

【精选】井字棋(三子棋,C语言)游戏展示

三子棋

一、项目环境

1.Visual Studio 2022 2.安装easyx图形库,可以调用头文件

#include

简单介绍一下easyx图形库

EasyX库是一个基于C语言的图形界面库,可以用于Windows操作系统下的图形界面应用程序开发。该库提供了一些易于使用的图形绘制函数和简单的事件处理功能,可以帮助开发者快速地创建各种图形应用程序,如游戏、图形编辑器等。 EasyX库提供了丰富的绘图功能,如直线、矩形、圆形、椭圆、多边形等基本形状的绘制,同时还支持图片、文字、音频等多种媒体资源的加载和处理。此外,EasyX库还支持鼠标、键盘等多种事件的处理,可以让用户与应用程序进行交互。 EasyX库的另一个特点是易于学习和使用。它提供了简单的API,使得初学者也可以轻松地入门,并且具有丰富的在线文档和示例程序,帮助开发者快速地学习和理解如何使用这个库。除此之外,EasyX库还可以和Visual Studio等常见的集成开发环境进行配合使用,使得开发工作更加高效。 总之,EasyX库是一款简单易用、功能强大的图形界面库,适用于初学者和有一定编程基础的开发者,可以用于快速开发各种图形应用程序。

Easyx图形库

点击跳转到easyx图形库下载官网

二、游戏规则介绍

井字棋是一种简单的二人棋类游戏,通常在3x3的棋盘上进行,其中一方执X,另一方执O。游戏的目标是在棋盘上先将自己的符号排成一条直线,横线、竖线或斜线即可获胜。 具体游戏规则如下: 1、玩家与电脑轮流下棋,先手执O,后手执X; 2、玩家在空位上下棋,不能在已经有棋子的位置下; 3、当任意一方在棋盘上成功排成三个相同的符号直线时,该方获胜; 4、如果棋盘被下满但是没有任何一方成功排成一条直线,则平局。

三、运行效果展示

Step1:获胜

Step2:失败

Step3:平局

四、项目介绍

三子棋是一种经典的棋类游戏,玩家通过在棋盘上落子,以先在横、竖、斜线上连成三个相同棋子为胜利条件。为了让更多的人了解和体验三子棋的乐趣,本文使用C语言和EASYX图形库开发了一款三子棋项目。

五、项目源代码分享

井字棋游戏代码如下:

#include #include #include #include #include #include #include #include using namespace std; int jingziqi(int &kk) { //画格子 setlinestyle(PS_SOLID, 4); setlinecolor(BLACK); //横线 line(-300, 298, 300, 298); line(-300, 100, 300, 100); line(-300, -100, 300, -100); line(-300, -298, 300, -298); //竖线 line(-298, 300, -298, -300); line(-100, 300, -100, -300); line(100, 300, 100, -300); line(298, 300, 298, -300); //将格子初始化为0 int a[3][3]; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { a[i][j] = 0; } } //鼠标消息——由于玩家先手标记并画圈圈 //用1来标记圆圈 //用2来标记叉叉 int f = 2; while (1) { if (MouseHit())//判断是否有鼠标信息 { MOUSEMSG msg = GetMouseMsg();//接收鼠标信息 printf("坐标(%d,%d)\n", msg.x, msg.y); switch (msg.uMsg) { case WM_LBUTTONDOWN: //第一行 if (msg.x > 1 && msg.x < 199 && msg.y>1 && msg.y < 199) { a[0][0] = 1; setlinecolor(BLUE); fillcircle(-200, 200, 100); f = f + 1; continue; } if (msg.x > 200 && msg.x < 400 && msg.y>1 && msg.y < 199) { a[0][1] = 1; setlinecolor(BLUE); fillcircle(0, 200, 100); f = f + 1; continue; } if (msg.x > 400 && msg.x < 600 && msg.y>1 && msg.y < 199) { a[0][2] = 1; setlinecolor(BLUE); fillcircle(200, 200, 100); f = f + 1; continue; } //第二行 if (msg.x > 1 && msg.x < 200 && msg.y>200 && msg.y < 400) { a[1][0] = 1; setlinecolor(BLUE); fillcircle(-200, 0, 100); f = f + 1; continue; } if (msg.x > 200 && msg.x < 400 && msg.y>200 && msg.y < 400) { a[1][1] = 1; setlinecolor(BLUE); fillcircle(0, 0, 100); f = f + 1; continue; } if (msg.x > 400 && msg.x < 600 && msg.y>200 && msg.y < 400) { a[1][2] = 1; setlinecolor(BLUE); fillcircle(200, 0, 100); f = f + 1; continue; } //第三行 if (msg.x > 1 && msg.x < 200 && msg.y>400 && msg.y < 600) { a[2][0] = 1; setlinecolor(BLUE); fillcircle(-200, -200, 100); f = f + 1; continue; } if (msg.x > 200 && msg.x < 400 && msg.y>400 && msg.y < 600) { a[2][1] = 1; setlinecolor(BLUE); fillcircle(0, -200, 100); f = f + 1; continue; } if (msg.x > 400 && msg.x < 600 && msg.y>400 && msg.y < 600) { a[2][2] = 1; setlinecolor(BLUE); fillcircle(200, -200, 100); f = f + 1; continue; } } } //随机画叉叉 int x1 = -300, y1 = 300, x2 = -100, y2 = 100;//撇 int x3 = -100, y3 = 300, x4 = -300, y4 = 100;//捺 int i, j; i = rand() % 3;//取0~2的随机数 j = rand() % 3;//取0~2的随机数 if (a[j][i] == 0 && f % 2 != 0 && a[j][i] != 1) { a[j][i] = 2;//标记叉叉为2 setlinecolor(RED); line(-300 + i * 200, 300 - j * 200, -100 + i * 200, 100 - j * 200); line(-100 + i * 200, 300 - j * 200, -300 + i * 200, 100 - j * 200); f++; continue; } //横向 if (a[0][0] == 1 && a[0][1] == 1 && a[0][2] == 1) { //cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3