原标题:C语言制作简单的五子棋游戏

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

学习C语言的人很多,但是用C语言很少,而用来为自己所用,来做游戏的人就更少了,很多人都是跟着学校学习,学校讲到哪就坐到哪,但是以后却还是不会做项目。今天我就来写一段,如何用C语言来写一个五子棋游戏。(PS:代码有点长,所以前面的字体以及框架怎么写,我就不写下来了,主要是写游戏操作设置以及游戏界面。)

代码如下:

#include //图形库

#include //C语言std头文件

#include //kbhit()//按键响应

#include

#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 >= 10 && m.x <= 530 && m.y >= 10 && m.y <= 530)

{

x = m.x % 20;

if (x <= 10)

m.x = m.x - x;

else

m.x = m.x - x + 20;

y = m.y % 20;

if (y <= 10)

m.y = m.y - y;

else

m.y = m.y - y + 20;

i = m.x / 20;

j = m.y / 20;

if (chess[i][j] != 0)

continue;

setlinecolor(BLACK);

setfillcolor(BLACK);

fillcircle(m.x + 10, m.y - 10, 8);

chess[i][j] = 1; //有黑棋1

if (GameOver1(chess, 1) == 1)

{

settextcolor(RED);

settextstyle(50, 50, L"锐字云字库行楷体1.0");

outtextxy(200, 200, L"此局黑棋胜出");

}

break;

}

case WM_RBUTTONDOWN:

if (m.x >= 10 && m.x <= 530 && m.y >= 10 && m.y <= 530)

{

x = m.x % 20;

if (x <= 10)

m.x = m.x - x;

else

m.x = m.x - x + 20;

y = m.y % 20;

if (y <= 10)

m.y = m.y - y;

else

m.y = m.y - y + 20;

i = m.x / 20;

j = m.y / 20;

if (chess[i][j] != 0)

continue;

setlinecolor(WHITE);

setfillcolor(WHITE);

fillcircle(m.x + 10, m.y - 10, 8);

chess[i][j] = 2;

if (GameOver1(chess, 2) == 1)

{

settextcolor(WHITE);

settextstyle(50, 50, L"锐字云字库行楷体1.0");

outtextxy(200, 200, L"此局白棋胜出");

}

break;

}

}

}

}

//游戏界面

void GameBackground()

{

IMAGE GameBackgroundImage;

loadimage(&GameBackgroundImage, L"GameBackground.jpg");

int width = GameBackgroundImage.getwidth();

int height = GameBackgroundImage.getheight();

initgraph(width, height);

putimage(0, 0, &GameBackgroundImage);

//画棋盘

setlinecolor(BLACK);

for (int i = 10; i <= 530; i += 20)

{

//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);//右边

//画点 圆心坐标 +半径

//中间

fillcircle(270, 270, 2);

//左上270-9*20

fillcircle(90, 270, 2);

fillcircle(270, 90, 2);

//右下角 270+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;

}

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

想成为一个合格的C/C++程序员,需要学习哪些内容

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

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

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

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

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

关注微信公众号:编程语言

如果对这方面感兴趣或者在学习C/C++的过程中有什么问题的话,可以加群:594089997,群内有大量C/C++资料,也会有人解答问题,大家一起学习,一起交流。希望每位学习C/C++的人都能学有所成。

有更多(C/C++语言,linux,JAVA语言)高手帮助你解决难题,一起互动,提高大家的编程水平返回搜狐,查看更多

责任编辑:

简单五子棋游戏c语言简单,C语言制作简单的五子棋游戏相关推荐

  1. c语言使用easyX图形库制作打气球小游戏

    大一c语言使用easyX图形库制作打气球小游戏 如果你是入门easyX图形库,那么这个打气球小游戏将会是和不错的入门项目选择,easyX开创了可视化窗口,使用户更加直观的了解到对象的变化,总代码以及素 ...

  2. c语言扔骰子随机数的相加,C语言编程学习:制作掷骰子小游戏

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  3. C语言编程学习:制作掷骰子小游戏!超适合新手的练手项目!

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  4. python简单心形代码爱情闪字_ps制作简单的动态闪字效果图

    动态GIF图片一直是网络图片中数量比较多的一种,也深受大众喜爱,有一些特别的酷和个性,可以用PS软件来实现一些简单的动画.下面用photoshop CS5来进行操作说明,一起来看看吧. 方法/步骤 新 ...

  5. Unity 从零开始的2D游戏开发 —— [Animator] 使用动画状态机制作简单动画

    动画是一个2D游戏里面必不可少的一部分,使用动画可以实现很多意想不到的功能,除了常规的人物动画,还可以实现一些周期性的运动.接下来会尝试实现一个非帧动画,一个帧动画. 一.非帧动画:通过改变位置或拉伸 ...

  6. pygame为游戏添加背景_用 Python 制作飞机大战小游戏

    这这次用Python中的pygame模块来完成一个飞机大战的小游戏:基本思路是通过方向键来控制飞机的左右移动射击飞船.先来看下最后的效果为了新手也能完成,本文记录了编写的全部流程,也就是每次修改的代码 ...

  7. python html5游戏_【Python】Python制作塔防小游戏

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 相关文件 原理介绍 游戏规则简介: 玩家通过建造箭塔抵御敌人的进攻. 每隔一段时间,将会有一波 ...

  8. Python【小游戏合集】之自己制作一个贪吃蛇游戏~

  9. 如何制作流畅有力的游戏动画+Skullgirls案例分析

    游戏动画与影视动画制作虽然看似有共通之处,但其实差别很大. 游戏动画是为玩家交互体验服务,同时需要与程序合作使其在设备上流畅运行,因此也有各种制作上的限制与要求. 在旧金山每年一度举办的游戏开发者大会 ...

  10. html制作打飞机的游戏,JavaScript 小型打飞机游戏实现原理说明

    玩法说明:上下左右控制移动,空格发弹. 每打中一个敌机就加100分,每提升5000分,玩家的飞机的一次发弹数就加一,最多四,被敌机撞到或者让敌机飞到底部就算输.... 演示代码:http://demo ...

最新文章

  1. java 线程的函数_Java线程总结
  2. eCos中的线程与同步
  3. java8 lambda python_【学习笔记】java8 Lambda表达式语法及应用
  4. 两物体的相对速度公式_最全物理公式合集,高考这一份就够了!
  5. JS事件及其兼容用法
  6. PHP经常使用正則表達式汇总
  7. 交付量强劲增长 特斯拉营收却将出现7年来首次下滑
  8. vulhub-靶场实战-安装
  9. 您仅仅是一个可雕刻的榆木疙瘩。。。
  10. 图片尺寸怎么修改?分享2种方法快速修改图片尺寸大小
  11. 学习游戏两不误 测机械革命钛钽Plus旗舰游戏本
  12. war包安装jenkins时报错
  13. 基于CloudSim 的云资源调度系统分析设计与实现——合肥工业大学云计算课程作业
  14. OPDS书库目录总结(添加OPDS书库目录)
  15. 一个十几年程序员给所有新老程序员的忠告
  16. Cassandra入门学习
  17. C++ Builder XE2 / RAD Studio XE2软件的下载安装及RTKLIB工程打开和编译
  18. 第七章 控件 windows程序设计王艳平版
  19. egg风格 什么意思_Egg是个有趣的蛋美国俚语
  20. Hbase模型与框架分享(1)—互联网思维

热门文章

  1. 简说window操作系统
  2. Android 蓝牙 ble 随机地址深层次分析
  3. 最新海洋CMS(海洋视频内容管理系统)V12.6版
  4. glGenTextures(GLsizei n, GLuint *textures)函数说明
  5. 【noip模拟赛5】细菌
  6. Python处理PDF——PyMuPDF的安装与使用
  7. 联想lenovo进bios
  8. buu刷题记录 [PWNHUB 公开赛 2018]傻 fufu 的工作日
  9. 一种基于最大吸收功率的卫星太阳能电池板安装方案
  10. 【 C++ 】AVL树