⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fangkuai.lst

📁 51单片机游戏程序包括图纸
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.01  FANGKUAI                                                               04/27/2007 22:08:22 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE FANGKUAI
OBJECT MODULE PLACED IN fangkuai.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE fangkuai.c COMPACT BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "t6963c.h"
   2          #include "typedef.h"
   3          #include "key.h"
   4          
   5          #define X_START 5
   6          #define Y_START 0
   7          #define MIN_SLOW_SPEED  300
   8          #define BX_START  30
   9          #define BY_START  15
  10          #define Nothing   100
  11          
  12          
  13          //全局数据
  14          code uchar Game_Char[]={0x27,0x41,0x4d,0x45};
  15          code uchar Over_Char[]={0x2f,0x56,0x45,0x52};
  16                                                                      
  17          static uchar xx,yy;         //方块的位置
  18          static uint  Game_Score=0;
  19          static uchar xdata Platform[14][21];    //游戏平台数据
  20          static uchar This_shape;                                //当前形状
  21          static uchar Next_shape=0;
  22          static uint  Game_Speed=MIN_SLOW_SPEED;  //等级速度,正常情况,方块下降的速度
  23          static uchar Game_Stop=1;
  24          static uchar Game_Level=0;
  25          
  26          /////////////////////////////////////////////////////////////////////////////////
  27          /////////////////////////////////////////////////////////////////////////////////
  28          /////////方块形状的定义//////////////////////////////////////////////////////////
  29          /////////////////////////////////////////////////////////////////////////////////
  30          struct POINT{
  31                        uchar x;
  32                        uchar y;
  33                       };
  34          
  35          struct SHAPE{
  36                         struct POINT point[4];
  37                                     uchar next;  //下一个形状
  38                                   } 
  39          
  40          
  41          xdata shape[19]={ 
  42            
  43                             { 1,0,0,1,1,1,2,1,1  },
  44                                             { 1,0,1,1,2,1,1,2,2  },
  45                                             { 0,0,1,0,2,0,1,1,3  },
  46                                             { 1,0,0,1,1,1,1,2,0  },
  47                                              
  48                                             { 1,0,2,0,1,1,1,2,5  },
  49                                             { 0,0,1,0,2,0,2,1,6  },
  50                                             { 2,0,2,1,2,2,1,2,7  },
  51                                             { 0,0,0,1,1,1,2,1,4  },
  52          
  53                                             { 1,0,2,0,2,1,2,2,9  },
  54                                             { 2,0,0,1,1,1,2,1,10 },
  55                                             { 1,0,1,1,1,2,2,2,11 },
C51 COMPILER V7.01  FANGKUAI                                                               04/27/2007 22:08:22 PAGE 2   

  56                                             { 0,0,1,0,2,0,0,1,8  },
  57          
  58                                             { 0,0,0,1,1,1,1,2,13 },
  59                                             { 1,0,2,0,0,1,1,1,12 },
  60          
  61                                             { 2,0,1,1,2,1,1,2,15 },
  62                                             { 0,0,1,0,1,1,2,1,14 },
  63          
  64                                             { 1,0,1,1,1,2,1,3,17 },
  65                                             { 0,1,1,1,2,1,3,1,16 },
  66          
  67                                             { 1,0,2,0,1,1,2,1,18 },      
  68                                                   
  69                                          };   
  70          
  71          ////////////////////////////////////////////////////////////////////////////
  72          //**************************************************************************
  73          //= 函数原型:void Init_GamePlatform()
  74          //= 功    能: 初始化游戏平台
  75          //= 参    数: 无                        
  76          //= 返 回 值: 无
  77          //= 函数性质:公有函数
  78          //= 注    意:
  79          //*************************************************************************** 
  80          void Show_score(uchar);
  81          void Init_GamePlatform()
  82          {
  83   1        uchar i;
  84   1        uchar j;
  85   1        uchar N_Hanzi;
  86   1        
  87   1        Wr_line(1,33,13,64,1 );       //初始化游戏平台边界    画游戏区域
  88   1        Wr_line(1,33,14,64,1 );   //画上横线
  89   1        Wr_line(0,33,15,100,1);
  90   1        Wr_line(0,34,15,100,1);  //画左竖线
  91   1        Wr_line(1,33,115,64,1);  
  92   1        Wr_line(1,33,116,64,1);  //画下横线
  93   1        Wr_line(0,95,15,100,1);
  94   1        Wr_line(0,96,15,100,1);  //画右竖线
  95   1      //--------------------------------------------------------
  96   1        for(i=1;i<13;i++)             //游戏平台数据清零
  97   1        {
  98   2          for(j=0;j<20;j++)
  99   2                {
 100   3                  Platform[i][j]=0;
 101   3                }
 102   2         }
 103   1         for(i=1;i<13;i++)
 104   1         {
 105   2            Platform[i][20]=1;   //游戏平台最下面一行的每一个方块位置为1,作为下边界
 106   2              }
 107   1         
 108   1         for(j=0;j<20;j++)            //游戏平台左右方块位置置1,作为左右边界
 109   1         {
 110   2            Platform[0][j]=1;
 111   2                Platform[13][j]=1;
 112   2         }
 113   1      //--------------------------------------------------------- 
 114   1        N_Hanzi=0;             
 115   1        for(j=3;j<=12;j=j+2)     //输入“冯燕辉制作”汉字
 116   1        {
 117   2           hanzhi(1,j,N_Hanzi,1);
C51 COMPILER V7.01  FANGKUAI                                                               04/27/2007 22:08:22 PAGE 3   

 118   2               N_Hanzi++;   //指向下一个汉字
 119   2        }
 120   1        
 121   1        hanzhi(13,3,6,1);      //输入“分”汉字
 122   1        hanzhi(13,8,8,1);   //输入“级”汉字
 123   1      
 124   1        Show_score(0);        //显示初始分数
 125   1        Show_num(13,11,Game_Level);    //显示初始等级水平
 126   1        Game_Speed=MIN_SLOW_SPEED/(Game_Level+1);  //根据水平确定速度
 127   1      
 128   1      //------------------------------------------------------------------
 129   1        Game_Score=0;
 130   1        xx=X_START ;
 131   1        yy=Y_START ;
 132   1      }
 133          ////////////////////////Init_Game/////////////////////
 134          void Init_Game()
 135          {
 136   1        Game_Stop=1;
 137   1        Init_GamePlatform();
 138   1        hanzhi(7,3,9,1);       //输入“按”汉字
 139   1        Show_num(7,6,7);       //显示7
 140   1        hanzhi(7,8,10,1);      //输入“开”汉字
 141   1        hanzhi(7,10,11,1);     //输入“始”汉字
 142   1      }
 143          //**************************************************************************
 144          //= 函数原型:void XiaoFengKuai(uchar x,uchar y,uchar mode)
 145          //= 功    能: 显示一个小方块
 146          //= 参    数: 小方块的横x,坚坐标y,mode=1:显示小方块,mode=0:删除小方块                  
 147          //= 返 回 值:
 148          //= 函数性质:私有函数
 149          //= 注    意:
 150          //*************************************************************************** 
 151          void XiaoFengKuai(uchar x,uchar y,bit mode)
 152          {
 153   1         uchar x1=5*x+BX_START;       //将方块在平台的位置转化成LCD的点坐标(地址转换)
 154   1         uchar y1=5*y+BY_START;         
 155   1         uchar i;
 156   1      
 157   1         if(mode==1)
 158   1         {
 159   2      
 160   2             for(i=0;i<5;i++)
 161   2             {
 162   3                Point(x1+i,y1,1); //画一条横线
 163   3             }
 164   2      
 165   2      
 166   2              y1+=4;
 167   2      
 168   2              for(i=0;i<5;i++)
 169   2              {
 170   3                 Point(x1+i,y1,1); //画第二条横线
 171   3               }
 172   2      
 173   2              for(i=0;i<5;i++)
 174   2              {
 175   3                 Point(x1,y1-i,1); //画第1条坚线
 176   3               }
 177   2      
 178   2               x1+=4;
 179   2      
C51 COMPILER V7.01  FANGKUAI                                                               04/27/2007 22:08:22 PAGE 4   

 180   2              for(i=0;i<5;i++)
 181   2              {
 182   3                 Point(x1,y1-i,1); //画第2条坚线
 183   3               }
 184   2      
 185   2              y1-=4;
 186   2              for(i=0;i<5;i++)
 187   2              {
 188   3                 Point(x1-i,y1+i,1); //画斜线
 189   3              }
 190   2         }
 191   1      
 192   1        else
 193   1        {
 194   2                 for(i=0;i<5;i++)
 195   2              {
 196   3                Point(x1+i,y1,0); //画一条横线
 197   3              }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -