C語(yǔ)言程序設(shè)計(jì)新手入門基礎(chǔ)編程學(xué)習(xí)打造——小表情連連看

今天帶來一個(gè)小游戲——連連看,用C語(yǔ)言打造乍赫,里面涉及的知識(shí)點(diǎn)也并不是很多的瓣蛀。涉及到了,數(shù)組雷厂、函數(shù)惋增、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)改鲫。自然配上音樂就會(huì)有感覺了诈皿,不要忘了安裝好圖形庫(kù)。

這個(gè)的話代碼也有點(diǎn)多的像棘,我就只先把一部分的代碼發(fā)出來吧

/********************************************************************************

*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~總結(jié)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

*通過一維數(shù)組來給二維數(shù)組賦值*

*利用隨機(jī)數(shù)通過switch語(yǔ)句進(jìn)行隨機(jī)打印圖片*

*處理鼠標(biāo)消息設(shè)置條件來消除(逐行掃描畫實(shí)心矩形來覆蓋圖片消除)*

********************************************************************************/

#include //圖形庫(kù)

#include //標(biāo)準(zhǔn)輸入輸出

#include //標(biāo)準(zhǔn)庫(kù)

#include //隨機(jī)

#include

#include //多媒體設(shè)備接口頭文件和庫(kù)文件

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

void tupian();

void shubiao();

int a[120] = {1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,

6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,

11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,

14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15};//圖片個(gè)數(shù)

int xia, chang=120;//下標(biāo) 長(zhǎng)度

int er[10][12];// 二維

IMAGE tu[15];//類

int main()

{

initgraph(500,600);//初始化圖形窗口

setbkcolor(WHITE);//背景顏色

cleardevice();//刷新

srand((unsigned int)time(NULL));//隨機(jī)數(shù)種子

PlaySound(L"群星 - 老司機(jī)帶帶我(云南山歌).wav",NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);

loadimage(&tu[0], L"1.jpg"); //存圖片

loadimage(&tu[1], L"2.jpg");

loadimage(&tu[2], L"3.jpg");

loadimage(&tu[3], L"4.jpg");

loadimage(&tu[4], L"5.jpg");

loadimage(&tu[5], L"6.jpg");

loadimage(&tu[6], L"7.jpg");

loadimage(&tu[7], L"8.jpg");

loadimage(&tu[8], L"9.jpg");

loadimage(&tu[9], L"10.jpg");

loadimage(&tu[10], L"11.jpg");

loadimage(&tu[11], L"12.jpg");

loadimage(&tu[12], L"13.jpg");

loadimage(&tu[13], L"14.jpg");

loadimage(&tu[14], L"15.jpg");

tupian();

shubiao();

system("pause");//系統(tǒng) 暫停

closegraph();//關(guān)閉畫布

getchar();

return 0;

}

void tupian()// 隨機(jī)產(chǎn)生圖片

{

for (int i = 0; i < 10; i++)

{

for (int j = 0; j < 12; j++)

{

xia = rand() % chang; //通過一維數(shù)組給二維數(shù)組賦值

er[i][j] = a[xia];

for (int k = xia; k < chang; k++)// 將取走的元素后面的元素向前移位

{

a[k] = a[k + 1];

}

chang--;

}

}

for (int i = 0; i < 10; i++)

{

for (int j = 0; j < 12; j++)//遍歷二維數(shù)組進(jìn)行選擇 隨機(jī)產(chǎn)生圖片

{

switch (er[i][j])

{

case 1:

putimage(i * 50, j * 50, &tu[0]); break;

case 2:

putimage(i * 50, j * 50, &tu[1]); break;

case 3:

putimage(i * 50, j * 50, &tu[2]); break;

case 4:

putimage(i * 50, j * 50, &tu[3]); break;

case 5:

putimage(i * 50, j * 50, &tu[4]); break;

case 6:

putimage(i * 50, j * 50, &tu[5]); break;

case 7:

putimage(i * 50, j * 50, &tu[6]); break;

case 8:

putimage(i * 50, j * 50, &tu[7]); break;

case 9:

putimage(i * 50, j * 50, &tu[8]); break;

case 10:

putimage(i * 50, j * 50, &tu[9]); break;

case 11:

putimage(i * 50, j * 50, &tu[10]); break;

case 12:

putimage(i * 50, j * 50, &tu[11]); break;

case 13:

putimage(i * 50, j * 50, &tu[12]); break;

case 14:

putimage(i * 50, j * 50, &tu[13]); break;

case 15:

putimage(i * 50, j * 50, &tu[14]); break;

}

}

}

}

void shubiao()//處理鼠標(biāo)消息 消除圖片

{

MOUSEMSG m;//定義鼠標(biāo)變量

int r, c, r1 = 12, c1 = 12, temp = 0;

while (1)

{

m = GetMouseMsg();//得到鼠標(biāo)消息

switch (m.uMsg)//處理鼠標(biāo)消息

{

/*case WM_RBUTTONDOWN://右鍵按下重新開始

//fillcircle(m.x, m.y, 25);

//cleardevice();

break;*/

case WM_LBUTTONDOWN:

if (temp % 2 == 0)

{

r = m.x / 50;

c = m.y / 50;

}

else//if (temp % 2 != 0)

{

r1 = m.x / 50;

c1 = m.y / 50;

}

temp++;

//消除

if (temp % 2 == 0)

{

if ((er[r][c] == er[r1][c1]) && (r == r1 || c == c1))//(r == r1 || c == c1)不加這個(gè)相同就消除

{

if (r == r1 && c == c1)//r == r1 && c == c1不加這個(gè)條件 點(diǎn)兩下一個(gè)圖片會(huì)消除 小bug

{

break;

}

if (r == 0)//逐行掃描

{

switch (c)

{

case 0:fillrectangle(0, 0, 50, 50); break;

case 1:fillrectangle(0, 50, 50, 100); break;

case 2:fillrectangle(0, 100, 50, 150); break;

case 3:fillrectangle(0, 150, 50, 200); break;

case 4:fillrectangle(0, 200, 50, 250); break;

case 5:fillrectangle(0, 250, 50, 300); break;

case 6:fillrectangle(0, 300, 50, 350); break;

case 7:fillrectangle(0, 350, 50, 400); break;

case 8:fillrectangle(0, 400, 50, 450); break;

case 9:fillrectangle(0, 450, 50, 500); break;

case 10:fillrectangle(0, 500, 50, 550); break;

case 11:fillrectangle(0, 550, 50, 600); break;

}

}

if (r == 1)

{

switch (c)

{

case 0:fillrectangle(50, 0, 100, 50); break;

case 1:fillrectangle(50, 50, 100, 100); break;

case 2:fillrectangle(50, 100, 100, 150); break;

case 3:fillrectangle(50, 150, 100, 200); break;

case 4:fillrectangle(50, 200, 100, 250); break;

case 5:fillrectangle(50, 250, 100, 300); break;

case 6:fillrectangle(50, 300, 100, 350); break;

case 7:fillrectangle(50, 350, 100, 400); break;

case 8:fillrectangle(50, 400, 100, 450); break;

case 9:fillrectangle(50, 450, 100, 500); break;

case 10:fillrectangle(50, 500, 100, 550); break;

case 11:fillrectangle(50, 550, 100, 600); break;

}

}

后面的話還是一樣的代碼稽亏,是分支語(yǔ)句,行數(shù)缕题,所以不發(fā)了截歉,代碼太多了,最終的效果圖避除,在這就發(fā)下吧(加QQ群:{{315732400:0}}怎披,群內(nèi)有大量學(xué)習(xí)資源可供學(xué)習(xí))

重要的事情胸嘁,說三遍!!凉逛!不要忘了裝圖形庫(kù)性宏,圖形庫(kù),圖形庫(kù)状飞。我就說到這就結(jié)束吧毫胜,各位晚安哈,打手不易诬辈,也希望各位大佬們酵使,多多提下意見哈,~~在這里希望每一位愛好編程的伙伴們焙糟,在這條道路上越走越遠(yuǎn)口渔。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市穿撮,隨后出現(xiàn)的幾起案子缺脉,更是在濱河造成了極大的恐慌,老刑警劉巖悦穿,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件攻礼,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡栗柒,警方通過查閱死者的電腦和手機(jī)礁扮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瞬沦,“玉大人太伊,你說我怎么就攤上這事」渥辏” “怎么了倦畅?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)绣的。 經(jīng)常有香客問我,道長(zhǎng)欲账,這世上最難降的妖魔是什么屡江? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮赛不,結(jié)果婚禮上惩嘉,老公的妹妹穿的比我還像新娘。我一直安慰自己踢故,他們只是感情好文黎,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布惹苗。 她就那樣靜靜地躺著,像睡著了一般耸峭。 火紅的嫁衣襯著肌膚如雪桩蓉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天劳闹,我揣著相機(jī)與錄音院究,去河邊找鬼。 笑死本涕,一個(gè)胖子當(dāng)著我的面吹牛业汰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播菩颖,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼样漆,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了晦闰?” 一聲冷哼從身側(cè)響起放祟,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鹅髓,沒想到半個(gè)月后舞竿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窿冯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年骗奖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片醒串。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡执桌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出芜赌,到底是詐尸還是另有隱情仰挣,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布缠沈,位于F島的核電站膘壶,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏洲愤。R本人自食惡果不足惜颓芭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望柬赐。 院中可真熱鬧亡问,春花似錦、人聲如沸肛宋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至床玻,卻和暖如春毁涉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背笨枯。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工薪丁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人馅精。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓严嗜,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親洲敢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子漫玄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容