程序員大神,C語(yǔ)言編程制作不一樣的五子棋小游戲

C語(yǔ)言是面向過(guò)程的,而C++是面向?qū)ο蟮?。C和C++的區(qū)別:

C是一個(gè)結(jié)構(gòu)化語(yǔ)言,它的重點(diǎn)在于算法和數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計(jì)首要考慮的是如何通過(guò)一個(gè)過(guò)程,對(duì)輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得到輸出(或?qū)崿F(xiàn)過(guò)程(事務(wù))控制)。

C++,首要考慮的是如何構(gòu)造一個(gè)對(duì)象模型,讓這個(gè)模型能夠契合與之對(duì)應(yīng)的問(wèn)題域,這樣就可以通過(guò)獲取對(duì)象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過(guò)程(事務(wù))控制。 所以C與C++的最大區(qū)別在于它們的用于解決問(wèn)題的思想方法不一樣。之所以說(shuō)C++比C更先進(jìn),是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”。

C與C++的最大區(qū)別:在于它們的用于解決問(wèn)題的思想方法不一樣。之所以說(shuō)C++比C更先進(jìn),是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”,而就語(yǔ)言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,錯(cuò)!算法是程序設(shè)計(jì)的基礎(chǔ),好的設(shè)計(jì)如果沒(méi)有好的算法,一樣不行。而且,“C加上好的設(shè)計(jì)”也能寫出非常好的東西。

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

小編推薦一個(gè)學(xué)C語(yǔ)言/C++的學(xué)習(xí)裙【 二六三,六八八,二七六 】,無(wú)論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來(lái)了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

C語(yǔ)言制作簡(jiǎn)單的五子棋小游戲代碼如下:

#include //圖形庫(kù)

#include //C語(yǔ)言std頭文件

#include //kbhit()//按鍵響應(yīng)

#include

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

//玩游戲

void PlayGame()

{

//鼠標(biāo)操作

int chess[N][N] = { 0 };//標(biāo)志沒(méi)有棋子的標(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"銳字云字庫(kù)行楷體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"銳字云字庫(kù)行楷體1.0");

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

小編推薦一個(gè)學(xué)C語(yǔ)言/C++的學(xué)習(xí)裙【 二六三,六八八,二七六 】,無(wú)論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來(lái)了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

}

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;

}

小編推薦一個(gè)學(xué)C語(yǔ)言/C++的學(xué)習(xí)裙【 二六三,六八八,二七六 】,無(wú)論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來(lái)了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

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

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

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

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

——初級(jí)階段,對(duì)于完全不懂的小白來(lái)說(shuō),首先需要了解計(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)入中級(jí)階段,學(xué)習(xí)的內(nèi)容會(huì)比較多,需要學(xué)習(xí)數(shù)組,函數(shù),指針(指針?lè)矫姘芏鄡?nèi)容,這方面需要著重的學(xué)習(xí),對(duì)后續(xù)的學(xué)習(xí)方面幫助會(huì)很大),預(yù)處理指令,結(jié)構(gòu)體與公用體,枚舉,位運(yùn)算,聯(lián)合。。這些是中級(jí)階段的學(xué)習(xí)內(nèi)容,雖然打出來(lái)顯得很少,但是接觸的內(nèi)容會(huì)很多,大家要多多著重學(xué)習(xí)

——最后就是進(jìn)入高級(jí)學(xué)習(xí)階段了,學(xué)習(xí)的分類比較少,但是每個(gè)分類里面包含的內(nèi)容確實(shí)最難的,千萬(wàn)不要因?yàn)槲淖执虺鰜?lái)這么簡(jiǎn)單就懈怠咯。。高級(jí)部分包含的內(nèi)容主要就是數(shù)據(jù)結(jié)構(gòu),動(dòng)態(tài)儲(chǔ)存管理,高級(jí)圖形編程,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)容對(duì)你們以后往C++方面或者是嵌入式方面發(fā)展都有著不可小覷的作用


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容