📄 robot.c
字号:
/* robot.c -- robot */
#include <conf.h>
#include <kernel.h>
#include <io.h>
#include <tty.h>
#include "game.h"
int robotx;
int roboty;
robot()
{
int oldx, oldy;
int direc;
int diffx;
int diffy;
robotx = rand()%(XMAXFIELD-3)+2;
roboty = rand()%(YMAXFIELD-3)+2;
direc = EAST;
oldx=robotx;
oldy=roboty;
while (TRUE) {
sleep10(1);
diffx = targetx-robotx;
diffy = targety-roboty;
if (diffy<0) { /* NORTH */
if (diffx>0)
direc = NE;
else if (diffx<0)
direc = NW;
else
direc = NORTH;
}
else if (diffy>0) { /* SOUTH */
if (diffx>0)
direc = SE;
else if (diffx<0)
direc = SW;
else
direc = SOUTH;
}
else { /* HORIZONTAL */
if (diffx>0)
direc = EAST;
else if (diffx<0)
direc = WEST;
else
direc = SIT;
}
switch (direc) {
case SIT: continue;
case NORTH: if (roboty > 1) --roboty; break;
case SOUTH: if (roboty < YMAXFIELD) ++roboty; break;
case WEST: if (robotx > 1) --robotx; break;
case EAST: if (robotx < XMAXFIELD) ++robotx; break;
case NE: if (roboty>1 && robotx<XMAXFIELD) {
--roboty; ++robotx; } break;
case NW: if (roboty>1 && robotx>1) {
--roboty; --robotx; } break;
case SE: if (roboty<YMAXFIELD && robotx<XMAXFIELD) {
++roboty; ++robotx; } break;
case SW: if (roboty<YMAXFIELD && robotx>1) {
++roboty; --robotx; } break;
}
newsend(pidplotter,3,oldx,oldy,' ');
newsend(pidplotter,3,robotx,roboty,'R');
oldx=robotx;
oldy=roboty;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -