⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
字号:
#ifndef lintstatic	char *sccsid = "@(#)main.c	1.1 83/03/17";#endif#include "externs.h"#define distance(x,y) (abs(x) >= abs(y) ? abs(x) + abs(y)/2 : abs(y) + abs(x)/2)range(fromship, toship)register int fromship, toship;{    int bow1r, bow1c, bow2r, bow2c;    int stern1r, stern1c, stern2c, stern2r;    register int bb, bs, sb, ss, result;    if (fromship > scene[game].vessels	    || toship > scene[game].vessels) /* just in case */	return(30000);    if (!pos[toship].dir)	return(30000);    stern1r = bow1r = pos[fromship].row;    stern1c = bow1c = pos[fromship].col;    stern2r = bow2r = pos[toship].row;    stern2c = bow2c = pos[toship].col;    result = bb = distance((bow2r - bow1r), (bow2c - bow1c));    if (bb < 5)	{	drdc(&stern2r, &stern2c, pos[toship].dir);	drdc(&stern1r, &stern1c, pos[fromship].dir);	bs = distance((bow2r - stern1r) ,(bow2c - stern1c));	sb = distance((bow1r - stern2r) ,(bow1c - stern2c));	ss = distance((stern2r - stern1r) ,(stern2c - stern1c));	result = min(bb, min(bs, min(sb, ss)));	}    return(result);}drdc(dr, dc, dir)register int *dr, *dc;int dir;{    switch (dir)	{	case 1:	    (*dr)++;	    break;	case 2:	    (*dr)++;	    (*dc)--;	    break;	case 3:	    (*dc)--;	    break;	case 4:	    (*dr)--;	    (*dc)--;	    break;	case 5:	    (*dr)--;	    break;	case 6:	    (*dr)--;	    (*dc)++;	    break;	case 7:	    (*dc)++;	    break;	case 8:	    (*dr)++;	    (*dc)++;	    break;	}}

⌨️ 快捷键说明

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