//gotoxy的坐标和数组的坐标是相反的,起先没想到,想了好久的。。= =!
//又忘了把菜园子弄中间了。。。= =!大家自己慢慢挪吧。。。。
//3.老鼠在菜园出口处遇见一只猫"¤",吓得往回逃,沿着阶梯状路线逃到入口处。
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
void gotoxy(int x, int y);
void main()
{
//菜园 8行 26列 起点(2.1)
char garden[10][31]={ {"┏━━━━━━━━━━━━━┓"},
{" **************************┃"},
{"┃**************************┃"},
{"┃**************************┃"},
{"┃**************************┃"},
{"┃**************************┃"},
{"┃**************************┃"},
{"┃**************************┃"},
{"┃************************** "},
{"┗━━━━━━━━━━━━━┛"},};//终点(28,9)
int i, j;
for(i=0; i<10; i++)
{
for(j=0; j<31; j++)
printf("%c", garden[i][j]);
printf("\n");
}
int mousex=2, mousey=1;
gotoxy(mousex, mousey);
printf("@");
int k;
char c;
while(1)
{
k=_kbhit();
if(k)
{
garden[mousey][mousex]=' ';
gotoxy(mousex, mousey);
printf(" ");
c=_getch();
if(c=='l'&&mousex<27)
mousex++;
if(c=='k'&&mousey<8)
mousey++;
gotoxy(mousex, mousey);
printf("@");
garden[mousey][mousex]=' ';
}
if(mousex==27&&mousey==8)
{
gotoxy(29, 8); printf("¤");
garden[8][27]=' ';
break;
}
}
while(1)
{
if(garden[mousey-1][mousex]==' ')
{
gotoxy(mousex, mousey);
printf(" ");
mousey--;
gotoxy(mousex,mousey);
printf("@");
}
if(garden[mousey][mousex-1]==' ')
{
gotoxy(mousex, mousey);
printf(" ");
mousex--;
gotoxy(mousex,mousey);
printf("@");
}
Sleep(200);
}
getchar();
}
void gotoxy(int x, int y) //定位到第y行的第x列
{
int xx=0x0b;
HANDLE hOutput;
COORD loc;
loc.X=x;
loc.Y=y;
hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOutput, loc);
return;
}