程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C/C++完成貪吃蛇慢慢活動後果

C/C++完成貪吃蛇慢慢活動後果

編輯:關於C++

C/C++完成貪吃蛇慢慢活動後果。本站提示廣大學習愛好者:(C/C++完成貪吃蛇慢慢活動後果)文章只能為提供參考,不一定能成為您想要的結果。以下是C/C++完成貪吃蛇慢慢活動後果正文


本文實例為年夜家分享了C/C++完成貪吃蛇慢慢活動後果的代碼,供年夜家參考,詳細內容以下

重要應用構造數組和構造指針,再用easyx圖形庫停止的畫圖,以供評論辯論和進修

#include <conio.h>
 
//樹立貯存蛇身的構造體
struct snack
{
  int x;
  int y;
 
};
//決議偏向
int fangxiang=3;//w=0,s=1,a=2,d=3
// 按鍵變量
char anjian=0;
//調劑坐標關系
int tiaozheng(struct snack *a);
// 挪動函數
int move(struct snack *a);
//打印圖象
int print(struct snack *a);
//速度
int v=10;
 
 
int main()
{
 
  initgraph(640, 480);  
 
  struct snack na[10] ={0};
  while(anjian!='q')
  {
    if(kbhit())
    {
      anjian=getch();
      switch(anjian)
      {
 
          //w=0,s=1,a=2,d=3
      case 'w':
        if(fangxiang!=1)
        fangxiang=0;
        break;
      case 's':
        if(fangxiang!=0)
        fangxiang=1;
        break;
      case 'a':
        if(fangxiang!=3)
        fangxiang=2;
        break;
      case 'd':
        if(fangxiang!=2)
        fangxiang=3;
        break;
      default:
        break;
      }
       
    }
 
 
      //清屏函數
      cleardevice();
      move(na);
      print(na);
      //防止法式運轉過快
      Sleep(60);
      tiaozheng(na);
     
  }
 
  closegraph();     
  return 0;
}
 
 
 
int tiaozheng(struct snack *a)
{
    //從最初以個元素開端,順次停止坐標的傳遞
     
    for(int i=9;i>0;i--)
    {
    a[i].x=a[i-1].x;
    a[i].y=a[i-1].y;  
    }
     
 
   
      return 0;
 
}
 
int print(struct snack *a)
{
  for(int i=0;i<10;i++)
  {
    //停止畫圖
    putpixel(a[i].x,a[i].y,RGB(100-10*i,255,100-10*i));
    circle(a[i].x,a[i].y,5);
  }
  return 0;
}
 
int move(struct snack *a)
{
    //w=0,s=1,a=2,d=3
  switch(fangxiang)
  {
 
    //按鍵呼應,並對超越界面的點停止重置
      case 0:
        a[0].y=a[0].y-v;
        if(a[0].y<0)
          a[0].y=480;
        break;
      case 1:
        a[0].y=a[0].y+v;
        if(a[0].y>480)
          a[0].y=0;
        break;
      case 2:
        a[0].x=a[0].x-v;
        if(a[0].x<0)
          a[0].x=640;
        break;
      case 3:
        a[0].x=a[0].x+v;
        if(a[0].x>640)
          a[0].x=0;
        break;
      default:
        break;
  }
  return 0;
}

因時光無限,沒有斟酌應用new來完成蛇身的長度的可控,僅應用初始值來完成,其次是未應用全局變量,全體比擬紛亂,願望年夜家發明其他成績,迎接指出!!!

以上就是本文的全體內容,願望對年夜家的進修有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved