热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

简单五子棋游戏c语言简单,C语言制作简单五子棋游戏

#pragmacomment(lib,winmm.lib)玩游戏voidPlayGame(){鼠标操作intchess[N][N]{0};标志没有棋子的标志while(true){

#pragma comment(lib,'winmm.lib')

//玩游戏

void PlayGame()

{

//鼠标操作

int chess[N][N] = { 0 };//标志没有棋子的标志

while (true)

{

//矫正鼠标坐标

int x, y,i,j;

MOUSEMSG m;

m = GetMouseMsg();

switch (m.uMsg)

{

case WM_LBUTTONDOWN:

//鼠标左键按下画器

if (m.x >&#61; 10 && m.x <&#61; 530&#61;"" &&&#61;"" m.y&#61;"">&#61; 10 && m.y <&#61;>&#61;>

{

x &#61; m.x % 20;

if (x <&#61;>&#61;>

m.x &#61; m.x - x;

else

m.x &#61; m.x - x &#43; 20;

y &#61; m.y % 20;

if (y <&#61;>&#61;>

m.y &#61; m.y - y;

else

m.y &#61; m.y - y &#43; 20;

i &#61; m.x / 20;

j &#61; m.y / 20;

if (chess[i][j] !&#61; 0)

continue;

setlinecolor(BLACK);

setfillcolor(BLACK);

fillcircle(m.x &#43; 10, m.y - 10, 8);

chess[i][j] &#61; 1; //有黑棋1

if (GameOver1(chess, 1) &#61;&#61; 1)

{

settextcolor(RED);

settextstyle(50, 50, L&#39;锐字云字库行楷体1.0&#39;);

outtextxy(200, 200, L&#39;此局黑棋胜出&#39;);

}

break;

}

case WM_RBUTTONDOWN:

if (m.x >&#61; 10 && m.x <&#61; 530&#61;"" &&&#61;"" m.y&#61;"">&#61; 10 && m.y <&#61;>&#61;>

{

x &#61; m.x % 20;

if (x <&#61;>&#61;>

m.x &#61; m.x - x;

else

m.x &#61; m.x - x &#43; 20;

y &#61; m.y % 20;

if (y <&#61;>&#61;>

m.y &#61; m.y - y;

else

m.y &#61; m.y - y &#43; 20;

i &#61; m.x / 20;

j &#61; m.y / 20;

if (chess[i][j] !&#61; 0)

continue;

setlinecolor(WHITE);

setfillcolor(WHITE);

fillcircle(m.x &#43; 10, m.y - 10, 8);

chess[i][j] &#61; 2;

if (GameOver1(chess, 2) &#61;&#61; 1)

{

settextcolor(WHITE);

settextstyle(50, 50, L&#39;锐字云字库行楷体1.0&#39;);

outtextxy(200, 200, L&#39;此局白棋胜出&#39;);

}

break;

}

}

}

}

//游戏界面

void GameBackground()

{

IMAGE GameBackgroundImage;

loadimage(&GameBackgroundImage, L&#39;GameBackground.jpg&#39;);

int width &#61; GameBackgroundImage.getwidth();

int height &#61; GameBackgroundImage.getheight();

initgraph(width, height);

putimage(0, 0, &GameBackgroundImage);

//画棋盘

setlinecolor(BLACK);

for (int i &#61; 10; i <&#61; 530;&#61;"" i&#61;"" &#43;&#61;"">&#61;>

{

//x,y x1 ,y1

line(10, i, 530, i);

line(i, 10, i, 530);

}

//调整棋盘

//调整边框---加粗

setlinestyle(PS_SOLID, 4);

line(10, 10, 10, 530); //上边加粗

line(10, 530, 530, 530);//下边加粗

line(10, 10, 530, 10);//左边

line(530, 10, 530, 530);//右边

//画点 圆心坐标 &#43;半径

//中间

fillcircle(270, 270, 2);

//左上270-9*20

fillcircle(90, 270, 2);

fillcircle(270, 90, 2);

//右下角 270&#43;9*20

fillcircle(450, 90, 2);

fillcircle(90, 450, 2);

fillcircle(450, 450, 2);

fillcircle(90, 90, 2);

fillcircle(450, 270, 2);

fillcircle(270, 450, 2);

//提示框

messageBox();

PlayGame();

}

int main()

{

GameBegin();

GameBackground();

closegraph();

return 0;

}

代码就是这么多&#xff0c;但是不要直接就复制粘贴咯&#xff0c;因为这串代码是没有前面些窗口的代码的&#xff0c;这个需要你们自己去写&#xff0c;代码只能给你们一些学习的思路&#xff0c;希望你们能学到些东西。

想成为一个合格的C/C&#43;&#43;程序员&#xff0c;需要学习哪些内容

首先&#xff0c;学习C/C&#43;&#43;肯定要学习C语言(当然&#xff0c;不学习C语言直接学习C&#43;&#43;也可以&#xff0c;但是学习C语言把基础打好对以后学习其他编程语言都是会有帮助的)

今天就先来讲讲从基础到进阶&#xff0c;C语言基础该怎么学习

——初级阶段&#xff0c;对于完全不懂的小白来说&#xff0c;首先需要了解计算机的组成原理(当然在如今这个时代&#xff0c;一般的都是知道的)然后开始学习理论&#xff0c;编程的启蒙思维(当然这前两个都是了解下就差不多了&#xff0c;不用太着重去学习)然后就需要开始学习内容了——首先先学习一些基本的数据类型&#xff0c;然后还有运算符&#xff0c;顺序结构&#xff0c;分支结构&#xff0c;循环结构&#xff0c;当你已经能运用这些基础的知识内容写一个小程序&#xff0c;恭喜你&#xff0c;你开始入门了&#xff0c;但是仅仅只是个开始。。。

——现在进入中级阶段&#xff0c;学习的内容会比较多&#xff0c;需要学习数组&#xff0c;函数&#xff0c;指针(指针方面包含很多内容&#xff0c;这方面需要着重的学习&#xff0c;对后续的学习方面帮助会很大)&#xff0c;预处理指令&#xff0c;结构体与公用体&#xff0c;枚举&#xff0c;位运算&#xff0c;联合。。这些是中级阶段的学习内容&#xff0c;虽然打出来显得很少&#xff0c;但是接触的内容会很多&#xff0c;大家要多多着重学习(加群&#xff1a;594089997&#xff0c;学习C/C&#43;&#43;)

——最后就是进入高级学习阶段了&#xff0c;学习的分类比较少&#xff0c;但是每个分类里面包含的内容确实最难的&#xff0c;千万不要因为文字打出来这么简单就懈怠咯。。高级部分包含的内容主要就是数据结构&#xff0c;动态储存管理&#xff0c;高级图形编程&#xff0c;Socket通信编程&#xff0c;其中数据结构包含了数据结构--线性表&#xff0c;数据结构--栈和队列&#xff0c;数据结构--串&#xff0c;数据结构--常用算法&#xff0c;这些内容对你们以后往C&#43;&#43;方面或者是嵌入式方面发展都有着不可小觑的作用

&#61;>&#61;>



推荐阅读
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 大数据基础:JavaSE_day06 ... [详细]
  • 摘要:本文中,我们将进一步理解微服务架构的核心要点和实现原理,为读者的实践提供微服务的设计模式,以期让微服务在读者正在工作的 ... [详细]
  • x86x64体系探索及编程(对x86处理器介绍得最详尽又最具实践指导意义的一本书)邓志著ISBN978-7-121-18176-42012年10月出版定价:119.00元16开840页对x86处理 ... [详细]
author-avatar
mobiledu2502889217
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有