如何编程一个游戏(如何编程一个游戏代码)

如何编程一个游戏(如何编程一个游戏代码)

入侵渗透hacker2024-01-03 4:23:191024A+A-

  

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

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

  

  代码如下:

  #include <graphics.h>//图形库

  #include <stdio.h>//C语言std头文件

  #include <conio.h>//kbhit()//按键响应

  #include <mmsystem.h>

  #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语言)高手帮助你解决难题,一起互动,提高大家的编程水平

点击这里复制本文地址 以上内容由黑资讯整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
  • 4条评论
  • 舔夺别れ2024-01-03 05:42:08
  • 0, 530, 10);//左边  line(530, 10, 530, 530);//右边  //画点 圆心坐标 +半径  //中间  fillcircle(270, 270, 2);  //左上270-9*20  fillcircle(90,
  • 南殷酒奴2024-01-03 11:35:12
  • 00, L"此局黑棋胜出");  }  break;  }  case WM_RBUTTONDOWN:  if (m.x >= 10 && m.x <= 530 && m.y >= 10 && m.y &
  • 性许卬妄2024-01-03 14:36:32
  •  m.x = m.x - x;  else  m.x = m.x - x + 20;  y = m.y % 20;  if (y <= 10)  m.y = m.

支持Ctrl+Enter提交

黑资讯 © All Rights Reserved.  
Copyright Copyright 2015-2020 黑资讯
滇ICP备19002590号-1
Powered by 黑客资讯 Themes by 如有不合适之处联系我们
网站地图| 发展历程| 留言建议| 网站管理