现在的位置: 首页 > 综合 > 正文

方向键控制移动移动.cpp

2013年02月04日 ⁄ 综合 ⁄ 共 3868字 ⁄ 字号 评论关闭
Code:
  1. #include<stdio.h>   
  2. #include<conio.h>   
  3. #include<string.h>   
  4. #include<iostream.h>   
  5. #include<windows.h>   
  6.   
  7. void gotoxy(int x,int y)   
  8. {   
  9.     COORD c;   
  10.     c.X=x;   
  11.     c.Y=y;   
  12.     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);   
  13.        
  14. }   
  15. static int pointx=0,pointy=0;   
  16. //static int x=0,y=0;//x表示列,y表示行   
  17.   
  18. void main()   
  19. {   
  20.     int x=0,y=0;   
  21.     int i=1;   
  22.     char ch1,ch2,ch3,ch4;   
  23.     ch1='/x4b';   
  24.     ch2='/x4d';   
  25.     ch3='/x48';   
  26.     ch4='/x50';   
  27.        
  28.     char t;   
  29.     while(1)   
  30.     {   
  31.         t=getch();   
  32.         if(t==ch1)//往左
      
  33.         {   
  34.             x=pointx;   
  35.             y=pointy;   
  36.             //if(left==0)//第一次往左   
  37.             //{   
  38.             if((x==0) && (y==0))//一开始就往左走,起点
      
  39.             {   
  40.                 printf("●");   
  41.                 pointx++;//此时光标在(1,0),point==1
      
  42.            
  43.             }   
  44.   
  45.             else  
  46.             {   
  47.                 if(x==2)//point==1光标到“起点”的下个位置了,定位到起点同样输出●
      
  48.                 {   
  49.                     gotoxy(x-2,y);   
  50.                     printf("●");   
  51.                     pointx--;   
  52.                 }   
  53.                 else if(x==1)   
  54.                 {}   
  55.                    
  56.                 else  
  57.                 {   
  58.   
  59.                     gotoxy(x-2,y);   
  60.                     pointx--;   
  61.                     printf("←");   
  62.   
  63.                 }      
  64.             }   
  65.         }   
  66.         else if(t==ch2)//往右
      
  67.         {   
  68.             x=pointx;   
  69.             y=pointy;   
  70.   
  71.             if((x==0) && (y==0))   
  72.             {   
  73.                 printf("●");   
  74.                 pointx++;   
  75.             }   
  76.             else  
  77.             {   
  78.                 if(x!=78)   
  79.                 {   
  80.                     gotoxy(x,y);//如果不重新定位以前的图标会存在,重新定位后以前图标消失
      
  81.                     printf("→");   
  82.        
  83.                     pointx++;   
  84.                 }   
  85.                 else  
  86.                 {   
  87.                     gotoxy(x,y);   
  88.                     printf(" ");   
  89.                     pointx=0;   
  90.                     pointy++;   
  91.                 }   
  92.                    
  93.             }   
  94.         }   
  95.         else if(t==ch3)    
  96.         {   
  97.             x=pointx;   
  98.             y=pointy;   
  99.                
  100.             if((x==0) && (y==0))   
  101.             {   
  102.                 printf("●");   
  103.                 pointx++;   
  104.   
  105.             }   
  106.             else if(y==0) {}   
  107.             else  
  108.             {   
  109.                 gotoxy(x,y);   
  110.                 printf(" ");   
  111.                 x=++pointx;   
  112.                 gotoxy(x-2,y-1);   
  113.                 x=pointx=x-2;   
  114.                 y=pointy=y-1;   
  115.                 if((x==0) && (y==0))   
  116.                 {   
  117.                     printf("●");   
  118.                     pointx++;   
  119.                 }   
  120.                 else  
  121.                 {   
  122.                     printf("↑");   
  123.                     pointx++;   
  124.                 }   
  125.             }   
  126.         }   
  127.   
  128.         else if(t==ch4)    
  129.         {   
  130.             x=pointx;   
  131.             y=pointy;   
  132.                
  133.             if((x==0) && (y==0))   
  134.             {   
  135.                 printf("●");   
  136.                 pointx++;   
  137.             }   
  138.             else  
  139.             {   
  140.                    
  141.                 if(y<298)   
  142.                 {   
  143.                     gotoxy(x,y);   
  144.                     printf(" ");   
  145.                     x=++pointx;   
  146.                     gotoxy(x-2,y+1);   
  147.                     pointx=x-2;   
  148.                     pointy=y+1;   
  149.                     printf("↓");   
  150.   
  151.                     pointx++;   
  152.   
  153.                 }   
  154.                 else if(y==298)   
  155.                 {   
  156.                     gotoxy(x,y);   
  157.                     printf(" ");   
  158.                     x=++pointx;   
  159.                     gotoxy(x-2,y+1);   
  160.                     x=pointx=x-2;   
  161.                     pointy=y+1;   
  162.                     if(x==0)   
  163.                         printf("●");   
  164.                     else printf("↓");   
  165.                     pointx++;   
  166.   
  167.                 }   
  168.                    
  169.             }   
  170.   
  171.         }   
  172.     }   
  173. }  

 无聊之作,基于控制台程序环境下,利用键盘上的方向键可以控制光标的移动,

抱歉!评论已关闭.