C++图形界面五子棋, Shell控制台实现五子棋的基础上引用了图形库源码。

如需安装c++或远程调试,可加QQ905733049由专业技术人员远程协助!

下面给出代码:

#include<graphics.h>
#include<conio.h>
#include<stdio.h>
#pragma warning(disable:4996)
void menu();
void play();
void display();
void playgame();
void again(int index);
int a[9][9] = { 0 };void main()
{initgraph(600, 600, SHOWCONSOLE);menu();getch();
}void menu()
{IMAGE img;setaspectratio(1.1, 1);loadimage(&img, "IMAGE", "tur", 0, 0, true);putimage(-10, 0, &img, SRCPAINT);settextstyle(50, 20, "宋体");outtextxy(200, 400, "开始游戏");MOUSEMSG m;while (true){m = GetMouseMsg();if (m.uMsg == WM_MOUSEMOVE && m.x >= 200 && m.x <= 360 && m.y >= 400 && m.y <= 450){setlinecolor(YELLOW);rectangle(200, 400, 360, 450);}if (m.uMsg == WM_LBUTTONDOWN && m.x >= 200 && m.x <= 360 && m.y >= 400 && m.y <= 450){cleardevice();Sleep(500);play();break;}if (!(m.x >= 200 && m.x <= 360 && m.y >= 400 && m.y <= 450)){setlinecolor(BLACK);rectangle(200, 400, 360, 450);}}
}void play()
{graphdefaults();setlinecolor(WHITE);settextstyle(15, 10, "宋体");settextcolor(WHITE);outtextxy(460, 80, "play1:红子:");outtextxy(460, 100, "步数: ");outtextxy(460, 160, "play2:黄子");outtextxy(460, 180, "步数: ");display();
}void display()
{for (int i = 50; i <= 450; i += 50){line(i, 50, i, 450);line(50, i, 450, i);}playgame();
}
void playgame()
{char str1[5];char str2[5];int bushu1 = 0, bushu2 = 0;memset(a, 0, sizeof(a));int play1 = 1;int i = 0, j = 0;int win = 0;MOUSEMSG msg;while (win == 0){msg = GetMouseMsg();if (msg.uMsg == WM_LBUTTONDOWN){for (int lie = 50; lie <= 450; lie += 50){if (msg.x <= lie + 10 && msg.x >= lie - 10){for (int hang = 50; hang <= 450; hang += 50){if (msg.y <= hang + 10 && msg.y >= hang - 10){if (play1 == 1 && a[hang / 50 - 1][lie / 50 - 1] == 0){setfillcolor(RED);solidcircle(lie, hang, 12);a[hang / 50 - 1][lie / 50 - 1] = 1;play1 = 0;bushu1++;sprintf(str1, "%i", bushu1);outtextxy(520, 100, str1);break;}if (play1 == 0 && a[hang / 50 - 1][lie / 50 - 1] == 0){setfillcolor(YELLOW);solidcircle(lie, hang, 12);a[hang / 50 - 1][lie / 50 - 1] = 2;play1 = 1;bushu2++;sprintf(str2, "%i", bushu2);outtextxy(520, 180, str2);break;}}}}}}//判断是否赢for (j = 0; j<9 && (win == 0); j++){for (i = 0; i<6; i++){if ((a[j][i] == 1 && a[j][i + 1] == 1 && a[j][i + 2] == 1 && a[j][i + 3] == 1 && a[j][i + 4] == 1) || (a[i][j] == 1 && a[i + 1][j] == 1 && a[i + 2][j] == 1 && a[i + 3][j] == 1 && a[i + 4][j] == 1))//横纵是5个子play1 win{win = 1;Sleep(100);break;}if ((a[j][i] == 2 && a[j][i + 1] == 2 && a[j][i + 2] == 2 && a[j][i + 3] == 2 && a[j][i + 4] == 2)|| (a[i][j] == 2 && a[i + 1][j] == 2 && a[i + 2][j] == 2 && a[i + 3][j] == 2 && a[i + 4][j] == 2))//横纵是5个子play2 win{win = 2;Sleep(100);break;}}}for (j = 0; j<6 && (win == 0); j++){for (i = 0; i<6; i++){if (a[j][i] == 1 && a[j + 1][i + 1] == 1 && a[j + 2][i + 2] == 1 && a[j + 3][i + 3] == 1 && a[j + 4][i + 4] == 1)//向右倾斜时候play1 win{win = 1;Sleep(100);break;}if (a[j][i] == 2 && a[j + 1][i + 1] == 2 && a[j + 2][i + 2] == 2 && a[j + 3][i + 3] == 2 && a[j + 4][i + 4] == 2)//向右倾斜时候play2 win{win = 2;Sleep(100);break;}}for (i = 4; i<9 && (win == 0); i++){if (a[j][i] == 1 && a[j + 1][i - 1] == 1 && a[j + 2][i - 2] == 1 && a[j + 3][i - 3] == 1 && a[j + 4][i - 4] == 1)//向左倾斜时候play1 win{win = 1;Sleep(100);break;}if (a[j][i] == 2 && a[j + 1][i - 1] == 2 && a[j + 2][i - 2] == 2 && a[j + 3][i - 3] == 2 && a[j + 4][i - 4] == 2)//向左倾斜时候play2 win{win = 2;Sleep(100);break;}}}}again(win);
}
void again(int index)
{settextstyle(20, 20, "宋体");settextcolor(YELLOW);if (index == 1){outtextxy(220, 500, "play1 win!");}else{outtextxy(220, 500, "play2 win!");}int quit = MessageBox(NULL, "是否继续游戏", "ArchyLi", MB_YESNO);if (IDYES == quit){cleardevice();play();}else{cleardevice();settextstyle(50, 30, "宋体");settextcolor(YELLOW);outtextxy(200, 300, "欢迎下次再来");Sleep(1000);return;}
}

实现效果如图:

如需远程调试,可加QQ905733049由专业技术人员远程协助!

C++实现图形界面五子棋游戏源码相关推荐

  1. C语言初学者如何做出美观的图形界面(附源码及完整文件)

    主要面向想做出图形界面的C语言初学者 C语言初学者开始都是在黑白控制台上开发一些小程序,实现一些小功能,因为基础的C语言可视化效果比较差,所展示的都是黑白的字符和数字,比较单调乏味.一些大学的计算机类 ...

  2. android五子棋源代码,Android五子棋游戏源码详解

    最近看了鸿洋大牛的五子棋教程,受益匪浅,讲的非常好,关于五子棋的游戏原理非常清楚,并且学到了不少知识,在这里感谢鸿洋大神的分享.我觉得我的源码注释写的非常清楚了,希望能给你带来不少的收获. 布局< ...

  3. java版五子棋游戏源码

    一.Vector 向量容器 向量是用来实现不同元素共存的变长数组的工具类 Vector 类可以实现可增长的对象数组 适合用向量类的场景 a.需要处理的对象数目不定,序列中的元素都是对象或者可以表示为对 ...

  4. php 五子棋源联机版_PHP网页版的在线五子棋游戏源码

    [实例简介] 五子棋onWeb v2008网页版的在线五子棋游戏,打开网页即可游戏,无需下载客户端,界面简单明了,经过测试,在相方网速良好的情况下可以相当流畅的进行游戏 [实例截图] [核心代码] [ ...

  5. java五子棋源代码_java 五子棋游戏源码

    [实例简介] [实例截图] [核心代码] package game; import java.applet.Applet; import java.applet.AudioClip; import j ...

  6. 五子棋游戏源码和核心算法的讲解(简易五子棋web版)

    扫雷游戏代码[js] <style>*{margin:0;}/*解决浏览器的兼容问题*/#canvas{background:#f4f4f4;margin:100px auto auto ...

  7. HTML5仿五子棋游戏源码

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. python五子棋单机版源代码_python 五子棋 游戏源码(python 2.7入门级)

    [实例简介] [实例截图] [核心代码] from Tkinter import * from tkMessageBox import * class Game: def __init__(self) ...

  9. 五子棋php源码,五子棋 游戏源码(flash+php)

    [实例简介] [实例截图] [核心代码] wzq ├── checkName.php ├── db │   ├── apc │   │   └── room │   │       ├── data ...

最新文章

  1. CDN 监控系统(二)
  2. ASIHTTPRequest类库简介和使用说明
  3. linux type命令(用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令,如果给出的指令为外部指令,则显示其绝对路径)
  4. C指针原理(15)-C指针基础
  5. vue动态绑定类样式ClassName知多少
  6. 王者服务器维护什么时间结束s19,王者荣耀S19赛季什么时候结束 S19赛季结束时间...
  7. WinForm 之 程序退出
  8. [转]AAuto编程语言官方站 网站服务条款
  9. JavaScript 高级程序设计笔记
  10. 这些书你读过一多半,你就是编程大牛!
  11. 点云配准icp算法推导
  12. 中国最卷的公务员考试,挤满清北毕业生
  13. [NGUI]NGUI中的九宫格切图模式
  14. 注册码方式注册多可系统
  15. 【Docker学习】【问题解决】Client.Timeout exceeded while awaiting headers
  16. 微信小程序背景图片全屏显示
  17. CAPL基础篇-----CAPL中如何对系统变量事件响应
  18. 北斗校时系统(GPS授时设备)几种时间同步方法
  19. 数据库实验2——使用SQL语句创建、修改和删除基本表
  20. v-model双向绑定原理

热门文章

  1. 初识html5小游戏
  2. go 框架 —— beego安装
  3. 01【AutoSAR 】- Partial Networking
  4. Ghost11手动备份恢复使用教程
  5. RGB颜色/色卡对照表
  6. MTK启动流程-MT6761
  7. 如何优雅的窥探别人?
  8. 初学编程,学哪种语言比较好?
  9. 【面试】1110- 一年前端社招面试总结,入职阿里菜鸟
  10. 新冷战、通货膨胀与2009年亚洲金融危机爆发 (转)