- #include<stdio.h>
- #include<conio.h>
- #include<string.h>
- #include<iostream.h>
- #include<windows.h>
- void gotoxy(int x,int y)
- {
- COORD c;
- c.X=x;
- c.Y=y;
- SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
- }
- static int pointx=0,pointy=0;
- //static int x=0,y=0;//x表示列,y表示行
- void main()
- {
- int x=0,y=0;
- int i=1;
- char ch1,ch2,ch3,ch4;
- ch1='/x4b';
- ch2='/x4d';
- ch3='/x48';
- ch4='/x50';
- char t;
- while(1)
- {
- t=getch();
- if(t==ch1)//往左
- {
- x=pointx;
- y=pointy;
- //if(left==0)//第一次往左
- //{
- if((x==0) && (y==0))//一开始就往左走,起点
- {
- printf("●");
- pointx++;//此时光标在(1,0),point==1
- }
- else
- {
- if(x==2)//point==1光标到“起点”的下个位置了,定位到起点同样输出●
- {
- gotoxy(x-2,y);
- printf("●");
- pointx--;
- }
- else if(x==1)
- {}
- else
- {
- gotoxy(x-2,y);
- pointx--;
- printf("←");
- }
- }
- }
- else if(t==ch2)//往右
- {
- x=pointx;
- y=pointy;
- if((x==0) && (y==0))
- {
- printf("●");
- pointx++;
- }
- else
- {
- if(x!=78)
- {
- gotoxy(x,y);//如果不重新定位以前的图标会存在,重新定位后以前图标消失
- printf("→");
- pointx++;
- }
- else
- {
- gotoxy(x,y);
- printf(" ");
- pointx=0;
- pointy++;
- }
- }
- }
- else if(t==ch3)
- {
- x=pointx;
- y=pointy;
- if((x==0) && (y==0))
- {
- printf("●");
- pointx++;
- }
- else if(y==0) {}
- else
- {
- gotoxy(x,y);
- printf(" ");
- x=++pointx;
- gotoxy(x-2,y-1);
- x=pointx=x-2;
- y=pointy=y-1;
- if((x==0) && (y==0))
- {
- printf("●");
- pointx++;
- }
- else
- {
- printf("↑");
- pointx++;
- }
- }
- }
- else if(t==ch4)
- {
- x=pointx;
- y=pointy;
- if((x==0) && (y==0))
- {
- printf("●");
- pointx++;
- }
- else
- {
- if(y<298)
- {
- gotoxy(x,y);
- printf(" ");
- x=++pointx;
- gotoxy(x-2,y+1);
- pointx=x-2;
- pointy=y+1;
- printf("↓");
- pointx++;
- }
- else if(y==298)
- {
- gotoxy(x,y);
- printf(" ");
- x=++pointx;
- gotoxy(x-2,y+1);
- x=pointx=x-2;
- pointy=y+1;
- if(x==0)
- printf("●");
- else printf("↓");
- pointx++;
- }
- }
- }
- }
- }
无聊之作,基于控制台程序环境下,利用键盘上的方向键可以控制光标的移动,