C 与 C++ 的最大区别: 在于它们的用于解决问题的思想方法不一样之所以说 C++ 比 C 更先进, 是因为 设计这个概念已经被融入到 C++ 之中 , 而就语言本身而言, 在 C 中更多的是算法的概念那么是不是 C 就不重要了, 错! 算法是程序设计的基础, 好的设计如果没有好的算法, 一样不行而且, C 加上好的设计也能写出非常好的东西
学习 C 语言的人很多, 但是用 C 语言很少, 而用来为自己所用, 来做游戏的人就更少了, 很多人都是跟着学校学习, 学校讲到哪就坐到哪, 但是以后却还是不会做项目今天我就来写一段, 如何用 C 语言来写一个五子棋游戏(PS: 代码有点长, 所以前面的字体以及框架怎么写, 我就不写下来了, 主要是写游戏操作设置以及游戏界面)
小编推荐一个学 C 语言 / C++ 的学习裙 二六三, 六八八, 二七六 , 无论你是大牛还是小白, 是想转行还是想入行都可以来了解一起进步一起学习! 裙内有开发工具, 很多干货和技术资料分享!
C 语言制作简单的五子棋小游戏代码如下:
- #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"此局白棋胜出");
小编推荐一个学 C 语言 / C++ 的学习裙 二六三, 六八八, 二七六 , 无论你是大牛还是小白, 是想转行还是想入行都可以来了解一起进步一起学习! 裙内有开发工具, 很多干货和技术资料分享!
- }
- 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++ 也可以, 但是学习 C 语言把基础打好对以后学习其他编程语言都是会有帮助的)
今天就先来讲讲从基础到进阶, C 语言基础该怎么学习
初级阶段, 对于完全不懂的小白来说, 首先需要了解计算机的组成原理 (当然在如今这个时代, 一般的都是知道的) 然后开始学习理论, 编程的启蒙思维 (当然这前两个都是了解下就差不多了, 不用太着重去学习) 然后就需要开始学习内容了首先先学习一些基本的数据类型, 然后还有运算符, 顺序结构, 分支结构, 循环结构, 当你已经能运用这些基础的知识内容写一个小程序, 恭喜你, 你开始入门了, 但是仅仅只是个开始
现在进入中级阶段, 学习的内容会比较多, 需要学习数组, 函数, 指针(指针方面包含很多内容, 这方面需要着重的学习, 对后续的学习方面帮助会很大), 预处理指令, 结构体与公用体, 枚举, 位运算, 联合这些是中级阶段的学习内容, 虽然打出来显得很少, 但是接触的内容会很多, 大家要多多着重学习
最后就是进入高级学习阶段了, 学习的分类比较少, 但是每个分类里面包含的内容确实最难的, 千万不要因为文字打出来这么简单就懈怠咯高级部分包含的内容主要就是数据结构, 动态储存管理, 高级图形编程, Socket 通信编程, 其中数据结构包含了数据结构 -- 线性表, 数据结构 -- 栈和队列, 数据结构 -- 串, 数据结构 -- 常用算法, 这些内容对你们以后往 C++ 方面或者是嵌入式方面发展都有着不可小觑的作用
来源: http://www.jianshu.com/p/4b9d6276c5fd