當前位置:編程學習大全網 - 源碼下載 - 哪些遊戲有源代碼?

哪些遊戲有源代碼?

1.算法

1.首先,使用壹個結構數組來標記蛇的X位置和Y位置,以及每個節點的方向。用變量確定蛇的長度。

2.當蛇移動而不轉彎時,使用計時器自動移動。不管蛇是什麽形狀,每次都只需要把每壹段向後移動(放棄蛇尾,用蛇尾的前壹段替換新的蛇尾):如果蛇本身是snake[0]到snake[3],也就是把snake[0]到snake[2]壹起移動到snake[1]到snake[3]:把snake[2]的XY坐標賦給snake[3]的XY坐標, 並將snake[1]的XY坐標賦給snake[2]的XY坐標,snake[0]然後判斷蛇頭的方向,然後將蛇頭向這個方向向前移動壹格,就是蛇頭snake[0]的XY坐標。 蛇除了蛇頭以外的每壹段的方向都是由函數SetDirection()決定的(顯然在這種情況下,蛇頭的方向保持不變)。SetDirection()的思路是根據蛇的每壹段與前壹段的相對位置來確定這壹段的方向。(其實這個功能是多余的,真正用的只是蛇頭的方向)。

3.蛇轉彎時,每段向後移動壹次,蛇頭的位置沿轉彎方向移動,由轉彎方向決定。

4.蛇吃食物時,長度增加壹,蛇頭的位置就變成了食物的位置,方向不變。蛇本身的每個節點的XY位置向後移動。如果蛇本身是snake[0] to snake[3],就是把snake[0]to snake[3]to snake[1]to snake[4]壹起移動。

5.對於基於對話框的應用程序,響應鍵消息應該是PreTranslateMessage,而不是像文檔視圖模式那樣是OnKeyDown。

6.蛇每轉壹次,只能有壹個方向鍵可以響應,就是要麽左右轉,要麽上下轉。黑魚左轉或右轉時,只能上下轉動;當蛇頭的方向是向上或向下時,它只能向左和向右轉。

7.食物的位置由rand函數隨機生成。

2.添加以下函數和變量

1 void華芳閣(int邊昌,int gridShumu);//如果在400*400的正方形裏畫20*20的正方形,那麽bianChang = 400;gridShumu = 20

2 void InitSnackSite();//初始化蛇的位置。

4 int snakeLength//指示蛇的長度。

5 int foodX//食物的x位置

6 int foodY//食物的Y位置

7 bool start//標誌開始了嗎?

8 bool重啟;//標記是否重新開始?

10結構蛇

11 {

12 int x;

13 int y;

14 char方向;//壹個位置的方向是前壹個位置相對於這個位置的方向,由SetDirection()決定。

15 }蛇[200];

16

17 void drawed(int x,int y);//指定0*0到20*20的點,畫出相應的顏色,下同(紅頭綠身藍尾)。

18 void DrawGreen(int x,int y);

19 void DrawBlue(int x,int y);

20 void DrawBlack(int x,int y);//根據SetFoodXY()確定的foodX和foodY繪制食物。

21

22 void draw snakefood();//根據數組snakeSite的標識信息類繪制蛇的形狀、位置和顏色。

23 void SetFoodXY();//隨機畫出食物的XY位置。

24

25 bool左右;//確定能不能上下(蛇本身就是上下的,再按也沒用)

26 bool upDown//確定能不能左右行走(蛇本身左右行走,再按左右也沒用)

27

28 void move site();//在蛇移動的過程中,設置除“蛇頭”以外的各段的X、Y位置,依次向前移動。

29 void set direction();//設置蛇移動時除了“蛇頭”以外的各個部分的方向。

30

31 void左轉();//當蛇向左轉時,

32 void turn right();//當蛇向右轉時,

33 void GoUp();//蛇起來的時候。

34 void GoDown();//當蛇倒下時,

妳可以參考這裏:blogs.com/jncpp/archive/2012/07/24/2606908.html.

基於MFC實現的原創貪吃蛇遊戲,附源代碼下載。

  • 上一篇:如何鑒定紅玉的真假?
  • 下一篇:Svip ◆質保期1月,至今9000多單沒有掉線。這個理論永遠不會被放棄。
  • copyright 2024編程學習大全網