visual.c

来自「<B>Digital的Unix操作系统VAX 4.2源码</B>」· C语言 代码 · 共 69 行

C
69
字号
#ifndef lintstatic char sccsid[] = "@(#)visual.c	4.2	(Berkeley)	5/27/83";#endif not lint# include	"trek.h"/***  VISUAL SCAN****	A visual scan is made in a particular direction of three sectors**	in the general direction specified.  This takes time, and**	Klingons can attack you, so it should be done only when sensors**	are out.*//* This struct[] has the delta x, delta y for particular directions */struct xy	Visdelta[11] ={	-1,	-1,	-1,	 0,	-1,	 1,	 0,	 1,	 1,	 1,	 1,	 0,	 1,	-1,	 0,	-1,	-1,	-1,	-1,	 0,	-1,	 1};visual(){	register int		ix, iy;	int			co;	register struct xy	*v;	co = getintpar("direction");	if (co < 0 || co > 360)		return;	co = (co + 22) / 45;	v = &Visdelta[co];	ix = Ship.sectx + v->x;	iy = Ship.secty + v->y;	if (ix < 0 || ix >= NSECTS || iy < 0 || iy >= NSECTS)		co = '?';	else		co = Sect[ix][iy];	printf("%d,%d %c ", ix, iy, co);	v++;	ix = Ship.sectx + v->x;	iy = Ship.secty + v->y;	if (ix < 0 || ix >= NSECTS || iy < 0 || iy >= NSECTS)		co = '?';	else		co = Sect[ix][iy];	printf("%c ", co);	v++;	ix = Ship.sectx + v->x;	iy = Ship.secty + v->y;	if (ix < 0 || ix >= NSECTS || iy < 0 || iy >= NSECTS)		co = '?';	else		co = Sect[ix][iy];	printf("%c %d,%d\n", co, ix, iy);	Move.time = 0.05;	Move.free = 0;}

⌨️ 快捷键说明

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