热门标签 | 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 Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 本文对比了杜甫《喜晴》的两种英文翻译版本:a. Pleased with Sunny Weather 和 b. Rejoicing in Clearing Weather。a 版由 alexcwlin 翻译并经 Adam Lam 编辑,b 版则由哈佛大学的宇文所安教授 (Prof. Stephen Owen) 翻译。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 本文详细介绍了Java反射机制的基本概念、获取Class对象的方法、反射的主要功能及其在实际开发中的应用。通过具体示例,帮助读者更好地理解和使用Java反射。 ... [详细]
  • JUC(三):深入解析AQS
    本文详细介绍了Java并发工具包中的核心类AQS(AbstractQueuedSynchronizer),包括其基本概念、数据结构、源码分析及核心方法的实现。 ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • 数据结构第三章,栈、队列、数组,期末不挂科指南,第3篇
    数据结构第三章,栈、队列、数组,期末不挂科指南,第3篇,Go语言社区,Golang程序员人脉社 ... [详细]
  • JVM钩子函数的应用场景详解
    本文详细介绍了JVM钩子函数的多种应用场景,包括正常关闭、异常关闭和强制关闭。通过具体示例和代码演示,帮助读者更好地理解和应用这一机制。适合对Java编程和JVM有一定基础的开发者阅读。 ... [详细]
  • 【妙】bug称它为数组越界的妙用
    1、聊一聊首先跟大家推荐一首非常温柔的歌曲,跑步的常听。本文主要把自己对C语言中柔性数组、零数组等等的理解分享给大家,并聊聊如何构建一种统一化的学习思想 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • Java高并发与多线程(二):线程的实现方式详解
    本文将深入探讨Java中线程的三种主要实现方式,包括继承Thread类、实现Runnable接口和实现Callable接口,并分析它们之间的异同及其应用场景。 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
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社区 版权所有