當(dāng)前位置:首頁 > BIM工程師 > 正文

bim中級結(jié)構(gòu)工程師收入中級結(jié)構(gòu)bim工程師理論答案

  

  C語言制作簡單的五子棋游戲

  學(xué)習(xí)C語言的人很多,但是用C語言很少,而用來為自己所用,來做游戲的人就更少了,很多人都是跟著學(xué)校學(xué)習(xí),學(xué)校講到哪就坐到哪,但是以后卻還是不會(huì)做項(xiàng)目。今天我就來寫一段,如何用C語言來寫一個(gè)五子棋游戲。(PS:代碼有點(diǎn)長,所以前面的字體以及框架怎么寫,我就不寫下來了,主要是寫游戲操作設(shè)置以及游戲界面。)

  

  代碼如下:

  #include <graphics.h>//圖形庫

  #include <stdio.h>//C語言std頭文件

  #include <conio.h>//kbhit()//按鍵響應(yīng)

  #include <mmsystem.h>

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

  //玩游戲

  void PlayGame()

bim中級結(jié)構(gòu)工程師收入中級結(jié)構(gòu)bim工程師理論答案  第1張

  {

  //鼠標(biāo)操作

  int chess[N][N] = { 0 };//標(biāo)志沒有棋子的標(biāo)志

  while (true)

  {

  //矯正鼠標(biāo)坐標(biāo)

  int x, y,i,j;

  MOUSEMSG m;

  m = GetMouseMsg();

  switch (m.uMsg)

  {

  case WM_LBUTTONDOWN:

  //鼠標(biāo)左鍵按下畫器

  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");

bim中級結(jié)構(gòu)工程師收入中級結(jié)構(gòu)bim工程師理論答案  第2張

  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);

  }

  //調(diào)整棋盤

  //調(diào)整邊框---加粗

  setlinestyle(PS_SOLID, 4);

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

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

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

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

  //畫點(diǎn) 圓心坐標(biāo) +半徑

  //中間

  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;

  }

  代碼就是這么多,但是不要直接就復(fù)制粘貼咯,因?yàn)檫@串代碼是沒有前面些窗口的代碼的,這個(gè)需要你們自己去寫,代碼只能給你們一些學(xué)習(xí)的思路,希望你們能學(xué)到些東西。

  想成為一個(gè)合格的C/C++程序員,需要學(xué)習(xí)哪些內(nèi)容

  首先,學(xué)習(xí)C/C++肯定要學(xué)習(xí)C語言(當(dāng)然,不學(xué)習(xí)C語言直接學(xué)習(xí)C++也可以,但是學(xué)習(xí)C語言把基礎(chǔ)打好對以后學(xué)習(xí)其他編程語言都是會(huì)有幫助的)

  今天就先來講講從基礎(chǔ)到進(jìn)階,C語言基礎(chǔ)該怎么學(xué)習(xí)

  ——初級階段,對于完全不懂的小白來說,首先需要了解計(jì)算機(jī)的組成原理(當(dāng)然在如今這個(gè)時(shí)代,一般的都是知道的)然后開始學(xué)習(xí)理論,編程的啟蒙思維(當(dāng)然這前兩個(gè)都是了解下就差不多了,不用太著重去學(xué)習(xí))然后就需要開始學(xué)習(xí)內(nèi)容了——首先先學(xué)習(xí)一些基本的數(shù)據(jù)類型,然后還有運(yùn)算符,順序結(jié)構(gòu),分支結(jié)構(gòu),循環(huán)結(jié)構(gòu),當(dāng)你已經(jīng)能運(yùn)用這些基礎(chǔ)的知識(shí)內(nèi)容寫一個(gè)小程序,恭喜你,你開始入門了,但是僅僅只是個(gè)開始。。。

  ——現(xiàn)在進(jìn)入中級階段,學(xué)習(xí)的內(nèi)容會(huì)比較多,需要學(xué)習(xí)數(shù)組,函數(shù),指針(指針方面包含很多內(nèi)容,這方面需要著重的學(xué)習(xí),對后續(xù)的學(xué)習(xí)方面幫助會(huì)很大),預(yù)處理指令,結(jié)構(gòu)體與公用體,枚舉,位運(yùn)算,聯(lián)合。。這些是中級階段的學(xué)習(xí)內(nèi)容,雖然打出來顯得很少,但是接觸的內(nèi)容會(huì)很多,大家要多多著重學(xué)習(xí)(加群:594089997,學(xué)習(xí)C/C++)

  ——最后就是進(jìn)入高級學(xué)習(xí)階段了,學(xué)習(xí)的分類比較少,但是每個(gè)分類里面包含的內(nèi)容確實(shí)最難的,千萬不要因?yàn)槲淖执虺鰜磉@么簡單就懈怠咯。。高級部分包含的內(nèi)容主要就是數(shù)據(jù)結(jié)構(gòu),動(dòng)態(tài)儲(chǔ)存管理,高級圖形編程,Socket通信編程,其中數(shù)據(jù)結(jié)構(gòu)包含了數(shù)據(jù)結(jié)構(gòu)--線性表,數(shù)據(jù)結(jié)構(gòu)--棧和隊(duì)列,數(shù)據(jù)結(jié)構(gòu)--串,數(shù)據(jù)結(jié)構(gòu)--常用算法,這些內(nèi)容對你們以后往C++方面或者是嵌入式方面發(fā)展都有著不可小覷的作用

關(guān)注微信公眾號(hào):編程語言

如果對這方面感興趣或者在學(xué)習(xí)C/C++的過程中有什么問題的話,可以加群:594089997,群內(nèi)有大量C/C++資料,也會(huì)有人解答問題,大家一起學(xué)習(xí),一起交流。希望每位學(xué)習(xí)C/C++的人都能學(xué)有所成。

有更多(C/C++語言,linux,JAVA語言)高手幫助你解決難題,一起互動(dòng),提高大家的編程水平

發(fā)表評論