当前位置: 首页 > news >正文

网站弹广告是什么样做的舆情分析报告范文

网站弹广告是什么样做的,舆情分析报告范文,天津市建设安全协会网站,网站开发中的服务抽离🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

🌟 前言

欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍

  • 🤖 洛可可白:个人主页

  • 🔥 个人专栏:✅前端技术 ✅后端技术

  • 🏠 个人博客:洛可可白博客

  • 🐱 代码获取:bestwishes0203

  • 📷 封面壁纸:洛可可白wallpaper

在这里插入图片描述

文章目录

  • C语言开发实战:使用EasyX在Visual Studio 2022中创建井字棋游戏
    • EasyX是什么?
    • 运行效果
    • 环境搭建
    • 游戏逻辑实现
      • 初始化游戏板
      • 检查胜利条件
      • 检查平局
      • 绘制游戏板
      • 绘制棋子
      • 绘制提示文本
      • 游戏主循环
    • 全部代码
    • 结语
    • 🎉 往期精彩回顾

C语言开发实战:使用EasyX在Visual Studio 2022中创建井字棋游戏

在本文中,我们将学习如何使用Visual Studio 2022和EasyX图形库来开发一个简单的井字棋游戏。EasyX是一个开源的图形库,它简化了Windows平台下的图形编程,使得开发者能够更快速地创建图形界面。

EasyX是什么?

EasyX是一个开源的图形库,它为Windows平台下的C/C++程序提供了丰富的图形和多媒体编程接口。它旨在简化图形用户界面(GUI)的开发,使得开发者能够更容易地创建具有图形界面的应用程序和游戏。

EasyX的主要特点包括:

  1. 跨平台:虽然主要针对Windows平台,但EasyX也提供了一些跨平台的功能,使得开发者能够编写在多个操作系统上运行的代码。

  2. 易用性:EasyX提供了大量封装好的函数,使得开发者无需深入了解底层的图形编程细节,就可以快速实现图形界面和动画效果。

  3. 丰富的功能:EasyX支持多种图形绘制、图像处理、文本显示、音频播放等功能,满足了大多数基本的图形编程需求。

  4. 社区支持:作为一个开源项目,EasyX拥有活跃的社区,开发者可以在社区中寻求帮助、分享经验和获取最新的库更新。

运行效果

在这里插入图片描述

环境搭建

首先,确保你已经安装了Visual Studio 2022。接下来,你需要下载并安装EasyX图形库。

参考博文:
入门教程:Windows搭建C语言和EasyX开发环境

  1. 访问EasyX的官方网站或GitHub页面下载最新版本的EasyX。
  2. 将EasyX的库文件解压到你的项目目录中。
  3. 在Visual Studio中创建一个新的C++项目,并配置项目以包含EasyX的头文件和库文件。

游戏逻辑实现

初始化游戏板

char board_data[3][3] = {{'-','-','-'},{'-','-','-'},{'-','-','-'},
};

这是一个3x3的字符数组,用来表示游戏板的状态。'-'表示空格,'O''X'表示玩家的棋子。

检查胜利条件

bool CheckWin(char c) {// 检查所有可能的获胜行、列和对角线// 如果找到连续三个相同的字符,返回trueif (board_data[0][0] == c && board_data[0][1] == c && board_data[0][2] == c) return true;if (board_data[1][0] == c && board_data[1][1] == c && board_data[1][2] == c) return true;if (board_data[2][0] == c && board_data[2][1] == c && board_data[2][2] == c) return true;if (board_data[0][0] == c && board_data[1][0] == c && board_data[2][0] == c) return true;if (board_data[0][1] == c && board_data[1][1] == c && board_data[2][1] == c) return true;if (board_data[0][2] == c && board_data[1][2] == c && board_data[2][2] == c) return true;if (board_data[0][0] == c && board_data[1][1] == c && board_data[2][2] == c) return true;if (board_data[0][2] == c && board_data[1][1] == c && board_data[2][0] == c) return true;return false;
}

这个函数会检查游戏板上是否有玩家获胜。

检查平局

bool CheckDraw() {// 检查游戏板上是否有空格// 如果所有位置都被填满,返回true,表示平局for (size_t i = 0; i < 3; i++){for (size_t j = 0; j < 3; j++){if (board_data[i][j] == '-') {return false;}}}return true;
}

这个函数会检查游戏是否平局。

绘制游戏板

void DrawBoard() {// 使用EasyX的绘图函数绘制游戏板的边框line(0, 200, 600, 200);line(0, 400, 600, 400);line(200, 0, 200, 600);line(400, 0, 400, 600);
}

这个函数负责绘制游戏板的边框。

绘制棋子

void DrawPiece() {// 根据游戏板的状态,绘制'O'或'X'棋子for (size_t i = 0; i < 3; i++){for (size_t j = 0; j < 3; j++){switch (board_data[i][j]){case 'O':circle(200 * j + 100, 200 * i + 100, 100);break;case 'X':line(200 * j, 200 * i, 200 * (j + 1), 200 * (i + 1));line(200 * (j + 1), 200 * i, 200 * j, 200 * (i + 1));break;case '-':break;}}}
}

这个函数会根据游戏板的状态绘制棋子。

绘制提示文本

void DrawTipText() {// 显示当前轮到哪一位玩家下棋static TCHAR str[64];_stprintf_s(str, _T("当前棋子类型为:%c"), current_piece);settextcolor(RGB(225, 175, 45));outtextxy(0, 0, str);
}

这个函数会在屏幕上显示提示信息,告诉玩家当前轮到谁下棋。

游戏主循环

int main() {// 初始化图形界面initgraph(600, 600);// 游戏循环while (true) {// 处理鼠标点击事件// 绘制游戏板和棋子// 检查游戏结束条件}return 0;
}

游戏的主循环负责处理用户输入、更新游戏状态、绘制游戏界面,并检查游戏是否结束。

全部代码

#include<graphics.h>
#include<stdlib.h>char board_data[3][3] = {{'-','-','-'},{'-','-','-'},{'-','-','-'},
};char current_piece = 'O';bool CheckWin(char c) {if (board_data[0][0] == c && board_data[0][1] == c && board_data[0][2] == c) return true;if (board_data[1][0] == c && board_data[1][1] == c && board_data[1][2] == c) return true;if (board_data[2][0] == c && board_data[2][1] == c && board_data[2][2] == c) return true;if (board_data[0][0] == c && board_data[1][0] == c && board_data[2][0] == c) return true;if (board_data[0][1] == c && board_data[1][1] == c && board_data[2][1] == c) return true;if (board_data[0][2] == c && board_data[1][2] == c && board_data[2][2] == c) return true;if (board_data[0][0] == c && board_data[1][1] == c && board_data[2][2] == c) return true;if (board_data[0][2] == c && board_data[1][1] == c && board_data[2][0] == c) return true;return false;
}bool CheckDraw() {for (size_t i = 0; i < 3; i++){for (size_t j = 0; j < 3; j++){if (board_data[i][j] == '-') {return false;}}}return true;
}void DrawBoard() {line(0, 200, 600, 200);line(0, 400, 600, 400);line(200, 0, 200, 600);line(400, 0, 400, 600);
}void DrawPiece() {for (size_t i = 0; i < 3; i++){for (size_t j = 0; j < 3; j++){switch (board_data[i][j]){case 'O':circle(200 * j + 100, 200 * i + 100, 100);break;case 'X':line(200 * j, 200 * i, 200 * (j + 1), 200 * (i + 1));line(200 * (j + 1), 200 * i, 200 * j, 200 * (i + 1));break;case '-':break;}}}
}void DrawTipText() {static TCHAR str[64];_stprintf_s(str, _T("当前棋子类型为:%c"), current_piece);settextcolor(RGB(225, 175, 45));outtextxy(0, 0, str);
}int main() {initgraph(600, 600);bool runing = true;ExMessage msg;BeginBatchDraw();while (runing){DWORD start_time = GetTickCount();while (peekmessage(&msg)){if (msg.message == WM_LBUTTONDOWN){int x = msg.x;int y = msg.y;int index_x = x / 200;int index_y = y / 200;if (board_data[index_y][index_x] == '-'){board_data[index_y][index_x] = current_piece;if (current_piece == 'X'){current_piece = 'O';}else {current_piece = 'X';}}}}cleardevice();DrawBoard();DrawPiece();DrawTipText();FlushBatchDraw();if (CheckWin('X')){MessageBox(GetHWnd(), _T("玩家X获胜"), _T("游戏结束"), MB_OK);runing = false;}else if (CheckWin('O')){MessageBox(GetHWnd(), _T("玩家O获胜"), _T("游戏结束"), MB_OK);runing = false;}else if (CheckDraw()){MessageBox(GetHWnd(), _T("平局"), _T("游戏结束"), MB_OK);runing = false;}DWORD end_time = GetTickCount();DWORD delta_time = end_time - start_time;if (delta_time < 1000 / 60) {Sleep(1000 / 60 - delta_time);}}EndBatchDraw();return 0;
}

结语

通过上述步骤,我们成功地使用Visual Studio 2022和EasyX开发了一个简单的井字棋游戏。这个教程展示了如何设置游戏环境、实现游戏逻辑、处理用户输入以及绘制游戏界面。现在,你可以在此基础上添加更多功能,如AI对手、网络对战等,来丰富你的游戏。

如果对你有帮助,点赞👍、收藏💖、关注🔔是我更新的动力!👋🌟🚀

🎉 往期精彩回顾

前端与后端协同:实现Excel导入导出功能
Java日期格式化:掌握时间的艺术
JavaScript日期格式化:从原始值到用户友好的字符串
入门教程:Windows搭建C语言和EasyX开发环境
CentOS系统下Docker的安装教程
Spring Boot单元测试全指南:使用Mockito和AssertJ
Yarn简介及Windows安装与使用指南
H5实现3D旋转照片墙教程
Element-Plus 实现动态渲染图标教程
MyBatis-Plus分页接口实现教程:Spring Boot中如何编写分页查询
Element-Plus下拉菜单边框去除教程
http://www.hkea.cn/news/638006/

相关文章:

  • app在线开发制作平台seo网络优化前景怎么样
  • 商务网站的基本情况网站建设工作总结
  • 山西建设厅网站网络销售怎么聊客户
  • 软装素材网站有哪些seo网络排名优化哪家好
  • 邯郸市做网站建设网络口碑营销案例分析
  • 罗湖网站建设联系电话西安核心关键词排名
  • 如何编写网站电脑清理软件十大排名
  • 怎么给企业制作网站seo关键词排名优化哪好
  • 高仿服装网站建设西安百度关键词推广
  • 网站单页面怎么做的百度seo站长工具
  • 网站建设谢辞企业营销型网站有哪些
  • 免费网站制作申请行业关键词一览表
  • 网站建设费关键词排名提高方法
  • 搭建淘宝客网站源码最近发生的新闻事件
  • 网站模版网网站关键词排名优化价格
  • 做网站去哪里全国免费发布广告信息平台
  • 靖江做网站湖南seo服务电话
  • 工程建设科学技术奖申报网站友情链接交换标准
  • 做网站后期为什么续费链交换
  • 网站开发与设计专业西安seo顾问培训
  • 企业网站建设话术优化营商环境指什么
  • 傻瓜式网站制作微信运营技巧
  • 甘肃网络推广软件seo方案
  • 建筑公司网站首页图片网站推广引流
  • 购物网站 后台模板今日头条站长平台
  • 营销导向企业网站策划站长工具无内鬼放心开车禁止收费
  • WordPress不能支付宝交易吗如何优化
  • 南昌seo网站设计站长工具是做什么的
  • 做IP授权的一般看什么网站一级消防工程师考试
  • 项目建设备案网站爱站网站长百度查询权重