最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實現(xiàn)拼圖游戲代碼(graphics圖形庫)

 更新時間:2018年05月03日 14:14:06   作者:DB偉  
這篇文章主要為大家詳細介紹了C++實現(xiàn)拼圖游戲代碼,帶有graphics圖形庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C++實現(xiàn)拼圖游戲的具體代碼,供大家參考,具體內(nèi)容如下

#include<stdio.h> 
#include<stdlib.h> 
#include<conio.h> 
#include<windows.h> 
#include<graphics.h> 
#include<string.h> 
int map[4][3]; 
int num = 0; 
IMAGE image1, image2, image3, image4, image5, image6, image7, image8, image9, image10, image11, image12, image13; 
void Initmap()//初始化數(shù)組 
{ 
 for (int i = 0; i < 4; i++) 
 { 
 for (int j = 0; j < 3; j++) 
 { 
 map[i][j] = rand() % 100; 
 } 
 } 
 map[2][3] = 100; 
 
} 
void PaintInit()//獲取圖片地址內(nèi)容 
{ 
 loadimage(&image1, L"./image/1.jpg", 100, 100); 
 loadimage(&image2, L"./image/2.jpg", 100, 100); 
 loadimage(&image3, L"./image/3.jpg", 100, 100); 
 loadimage(&image4, L"./image/4.jpg", 100, 100); 
 loadimage(&image5, L"./image/5.jpg", 100, 100); 
 loadimage(&image6, L"./image/6.jpg", 100, 100); 
 loadimage(&image7, L"./image/7.jpg", 100, 100); 
 loadimage(&image8, L"./image/8.jpg", 100, 100); 
 loadimage(&image9, L"./image/9.jpg", 100, 100); 
 loadimage(&image10, L"./image/10.jpg", 100, 100); 
 loadimage(&image11, L"./image/11.jpg", 100, 100); 
 loadimage(&image12, L"./image/back.jpg", 400, 200); 
 loadimage(&image13, L"./image/border.jpg", 50, 300); 
 
} 
int finMin(int a)//找到數(shù)組里面最小的數(shù),然后將設定的圖片給對應的數(shù); 
{ 
 int flag=1; 
 
 for (int i = 0; i < 4; i++) 
 { 
 for (int j = 0; j < 3; j++) 
 { 
 if (a > map[i][j]) 
 { 
 flag++;//如過flag 不加上去不變表示沒有比他大的數(shù) 
 } 
 } 
 } 
 return flag; 
} 
void GameInit()//游戲初始化 
{ 
 
 int min=map[0][0]; 
 putimage(450, 0, &image12); 
 putimage(400, 0, &image13); 
 for (int i = 0; i < 4; i++) 
 { 
 for (int j = 0; j < 3; j++) 
 { 
 if (finMin(map[i][j]) == 1) 
 { 
  putimage(i * 100, j * 100, &image1); 
 } 
 if (finMin(map[i][j]) == 2) 
 { 
  putimage(i * 100, j * 100, &image2); 
 } 
 if (finMin(map[i][j]) == 3) 
 { 
  putimage(i * 100, j * 100, &image3); 
 } 
 if (finMin(map[i][j]) == 4) 
 { 
  putimage(i * 100, j * 100, &image4); 
 } 
 if (finMin(map[i][j]) == 5) 
 { 
  putimage(i * 100, j * 100, &image5); 
 } 
 if (finMin(map[i][j]) == 6) 
 { 
  putimage(i * 100, j * 100, &image6); 
 } 
 if (finMin(map[i][j]) == 7) 
 { 
  putimage(i * 100, j * 100, &image7); 
 } 
 if (finMin(map[i][j]) == 8) 
 { 
  putimage(i * 100, j * 100, &image8); 
 } 
 if (finMin(map[i][j]) == 9) 
 { 
  putimage(i * 100, j * 100, &image9); 
 } 
 if (finMin(map[i][j]) == 10) 
 { 
  putimage(i * 100, j * 100, &image10); 
 } 
 if (finMin(map[i][j]) == 11) 
 { 
  putimage(i * 100, j * 100, &image11); 
 } 
  
 } 
 } 
 
} 
void PlayGame() 
{ 
 int x, y; 
 MOUSEMSG m; 
 int newA; 
 char ch; 
 int r, c; //找到當前空白塊的下標 // 
 for (int i = 0; i < 4; i++) 
 { 
 for (int j = 0; j < 3; j++) 
 { 
 if (map[i][j] == 100) 
 { 
 r = i; 
 c = j; 
 } 
 } 
 } 
 
 
 ch = getch(); 
 switch (ch) 
 { 
 
 case 'W':case 'w' : 
 { 
 
 if (c - 1<0)return; 
 newA = map[r][c]; 
 map[r][c] = map[r][c-1]; 
 map[r][c-1] = newA; 
 num++; 
 break; 
 } 
 case 'S':case 's': 
 { 
 if (c + 1>2)return; 
 newA = map[r][c]; 
 map[r][c] = map[r][c+1]; 
 map[r][c+1] = newA; 
 num++; 
 break; 
 } 
 case 'A':case 'a': 
 { 
 if (r - 1<0)return; 
 newA = map[r][c]; 
 map[r][c] = map[r-1][c]; 
 map[r-1][c] = newA; 
 num++; 
 break; 
 } 
 case 'd':case 'D': 
 { 
 if(r+1>3)return; 
 newA = map[r][c]; 
 map[r][c] = map[r+1][c]; 
 map[r+1][c] = newA; 
 num++; 
 break; 
 } 
 } 
} 
int main()//最后如果圖像游戲如果拼完整后,數(shù)組的數(shù)會是從小到大的,以此來判別是否拼圖完整 
{ 
 TCHAR sql[200]; 
 initgraph(850, 300); 
 Initmap(); 
 PaintInit(); 
 
 while (1) 
 { 
 cleardevice(); 
 BeginBatchDraw(); 
 GameInit(); 
 outtextxy(650, 210, _T("原圖")); 
 _stprintf(sql, _T("走了:%d"), num); 
 outtextxy(500, 250, sql); 
 EndBatchDraw(); 
 PlayGame(); 
 } 
 getch(); 
 closegraph(); 
 system("pause"); 
 return 
}

效果圖:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C++實現(xiàn)區(qū)塊鏈的源碼

    C++實現(xiàn)區(qū)塊鏈的源碼

    這篇文章主要介紹了C++實現(xiàn)區(qū)塊鏈的源碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • C++深入探究友元使用

    C++深入探究友元使用

    采用類的機制后實現(xiàn)了數(shù)據(jù)的隱藏與封裝,類的數(shù)據(jù)成員一般定義為私有成員,成員函數(shù)一般定義為公有的,依此提供類與外界間的通信接口。但是,有時需要定義一些函數(shù),這些函數(shù)不是類的一部分,但又需要頻繁地訪問類的數(shù)據(jù)成員,這時可以將這些函數(shù)定義為該類的友元函數(shù)
    2022-07-07
  • 淺析C++中前置聲明的應用與陷阱

    淺析C++中前置聲明的應用與陷阱

    以下是對C++中前置聲明的應用與陷阱進行了詳細的分析介紹,需要的朋友參考下
    2013-07-07
  • C++如何將運行結果保存到txt中

    C++如何將運行結果保存到txt中

    這篇文章主要介紹了C++如何將運行結果保存到txt中問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 利用C/C++實現(xiàn)較完整貪吃蛇游戲

    利用C/C++實現(xiàn)較完整貪吃蛇游戲

    這篇文章主要為大家詳細介紹了利用C/C++實現(xiàn)較完整貪吃蛇游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 詳解C/C++如何發(fā)送與接收Kafka消息

    詳解C/C++如何發(fā)送與接收Kafka消息

    系統(tǒng)之間通信方式很多如:系統(tǒng)之間調(diào)用(http/rpc等),異步間接調(diào)用如發(fā)送消息、公共存儲等,算法工程為C/C++工程,本文將介紹如何在C/C++中如何發(fā)送與接收Kakfa消息(包含:Kafka的SASL認證方式),并提供了詳細的源碼和講解,需要的朋友可以參考下
    2024-07-07
  • C語言判斷一個數(shù)是否是2的冪次方或4的冪次方

    C語言判斷一個數(shù)是否是2的冪次方或4的冪次方

    本文中我們來看一下如何用C語言判斷一個數(shù)是否是2的冪次方或4的冪次方的方法,并且判斷出來是多少次方,需要的朋友可以參考下
    2016-06-06
  • C++之構造函數(shù)默認值設置方式

    C++之構造函數(shù)默認值設置方式

    這篇文章主要介紹了C++之構造函數(shù)默認值設置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C++類與對象深入之引用與內(nèi)聯(lián)函數(shù)與auto關鍵字及for循環(huán)詳解

    C++類與對象深入之引用與內(nèi)聯(lián)函數(shù)與auto關鍵字及for循環(huán)詳解

    朋友們好,這篇播客我們繼續(xù)C++的初階學習,現(xiàn)在對一些C++的入門知識做了些總結,整理出來一篇博客供我們一起復習和學習,如果文章中有理解不當?shù)牡胤?還希望朋友們在評論區(qū)指出,我們相互學習,共同進步
    2022-06-06
  • 如何在C++類的外部調(diào)用類的私有方法

    如何在C++類的外部調(diào)用類的私有方法

    這篇文章主要介紹了如何在C++類的外部調(diào)用類的私有方法,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-09-09

最新評論

新津县| 夏津县| 北辰区| 新昌县| 梨树县| 屯留县| 玛曲县| 兰溪市| 如东县| 亳州市| 名山县| 乌兰察布市| 小金县| 盐边县| 万宁市| 余江县| 玉山县| 墨脱县| 灌南县| 蚌埠市| 资中县| 垣曲县| 门头沟区| 宣化县| 德江县| 印江| 武定县| 柳林县| 南溪县| 崇礼县| 泰顺县| 聊城市| 泸水县| 丰宁| 三台县| 炉霍县| 舒兰市| 奎屯市| 新和县| 伊通| 清河县|