game.c

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

C
55
字号
#ifndef lintstatic	char *sccsid = "@(#)game.c	1.3 83/05/20";#endif#include "externs.h"maxturns(shipnum)int shipnum;{	register int turns;	struct File *ptr;	turns = specs[scene[game].ship[shipnum].shipnum].ta;	if ((ptr = scene[game].ship[shipnum].file) -> drift > 1 && turns){		turns--;		if(ptr -> FS == 1)			turns = 0;		turns |= 0100000;	}	return(turns);}maxmove(shipnum, dir, fs)int shipnum, dir, fs;{	register int riggone = 0, Move, full, flank = 0;	struct shipspecs *ptr;	full = scene[game].ship[shipnum].file -> FS;	ptr = &specs[scene[game].ship[shipnum].shipnum];	Move = ptr -> bs;	if (!ptr -> rig1) riggone++;	if (!ptr -> rig2) riggone++;	if (!ptr -> rig3) riggone++;	if (!ptr -> rig4) riggone++;	if ((full || fs) && fs != -1){		flank = 1;		Move = ptr -> fs;	}	if (dir == winddir)		Move -= 1 + WET[windspeed][ptr -> class-1].B;	else if (dir == winddir + 2 || dir == winddir - 2 || dir == winddir - 6 || dir == winddir + 6)		Move -= 1 + WET[windspeed][ptr -> class-1].C;	else if (dir == winddir + 3 || dir == winddir - 3 || dir == winddir - 5 || dir == winddir + 5)		Move = (flank ? 2 : 1) - WET[windspeed][ptr -> class-1].D;	else if (dir == winddir + 4 || dir == winddir - 4)		Move = 0;	else 		Move -= WET[windspeed][ptr -> class-1].A;	Move -= riggone;	Move = Move < 0 ? 0 : Move;	return(Move);}

⌨️ 快捷键说明

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