關於貪喫蛇的學習(2)

根據老師提供的學習材料,我首先查資料瞭解了一下 kbhit函數的用法。

1.源自 頭文件<conio.h> 

 

2. 原型:extern int kbhit(void);
  
   用法:#include <stdio.h>
  
   功能:檢測按鍵
  
   說明:檢測鍵盤是否有鍵按下。
         如果有鍵按下,則返回對應鍵值;否則返回零。
         kbhit不等待鍵盤按鍵。無論有無按鍵都會立即返回。
  
   舉例:

       // kbhit.c
      
       #include <stdio.h>

       main()
       {
         int i=0;
        
         clrscr();
        
         while(!kbhit())
         {
           clrscr();
           printf("%05d",i++);
         }
        
         clrscr();
         printf("End.");
        
         getchar();
         return 0;
       


智能蛇的僞碼如下圖所示:

輸出字符矩陣
    WHILE not 遊戲結束 DO
        wait(time)
        ch=whereGoNext(Hx,Hy,Fx,Fy)
        CASE ch DO
        ‘A’:左前進一步,break 
        ‘D’:右前進一步,break    
        ‘W’:上前進一步,break    
        ‘S’:下前進一步,break    
        END CASE
        輸出字符矩陣
    END WHILE
    輸出 Game Over!!! 
在查閱了一些資料後,我着重學習了用自動尋路方法智能移動的貪喫蛇遊戲算法。

主要是利用了廣度尋路算法,能夠搜索出一條從蛇頭到目標食物點的一條可行的最短的路徑,並且在蛇運動的過程當中,實時的調整這一條可行路徑。喫食物的策略是優先喫大食物,然後喫小食物,因爲大食物分數多,如果不喫,過一會就會消失。

主函數:


運行結果:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章