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

📄 play.c

📁 unix v7是最后一个广泛发布的研究型UNIX版本
💻 C
字号:
#include "old.h"play(f)int f;{	int t, i, ts[9];	clock();	ts[8] = 0;	if(f) goto first;loop:	intrp = 0;	move();first:	if(manflg)		goto loop;	i = mantom;	t = clktim[i];	if(!bookm())	if(!mate(mdepth, 1))		xplay();	if(intrp) {		decrem();		mantom? bremove(): wremove();		goto loop;	}	if(!abmove) {		printf("Resign\n");		onhup();	}	makmov(abmove);	i = clktim[i];	t = i-t;	times(ts);	ts[8] = ts[1];	if(i/moveno > 150) {		if(depth > 1)			goto decr;		goto loop;	}	if(depth==3 && t>180)		goto decr;	if(depth==1 && t<60)		goto incr;	if(game==3 && t<60 && depth==2)		goto incr;	goto loop;incr:	depth++;	goto loop;decr:	goto loop;}move(){	int a, *p, *p1;loop:	lmp = done();	a = manual();	p = done();	p1 = p;	while(p1 != lmp) {		p1++;		if(*p1++ == a) {			lmp = p;			makmov(a);			return;		}	}	printf("Illegal move\n");	lmp = p;	goto loop;}manual(){	int a, b, c;	char *p1;	extern out1;loop:	intrp = 0;	stage();	rline();	sbufp = sbuf;	if(match("save")) {		save();		goto loop;	}	if(match("test")) {		testf = !testf;		goto loop;	}	if(match("remove")) {		if(amp[-1] != -1) {			decrem();			mantom? bremove(): wremove();		}		if(amp[-1] != -1) {			decrem();			mantom? bremove(): wremove();		}		goto loop;	}	if(match("exit"))		exit();	if(match("manual")) {		manflg = !manflg;		goto loop;	}	if(match("resign"))		onhup();	if(moveno == 1 && mantom == 0) {		if(match("first"))			play(1);		if(match("alg")) {			mfmt = 1;			goto loop;		}		if(match("restore")) {			restore();			goto loop;		}	}	if(match("clock")) {		clktim[mantom] =+ clock();		ctime("white", clktim[0]);		ctime("black", clktim[1]);		goto loop;	}	if(match("score")) {		score();		goto loop;	}	if(match("setup")) {		setup();		goto loop;	}	if(match("hint")) {		a = xplay();		out(abmove);		printf(" %d\n", a);		goto loop;	}	if(match("repeat")) {		if(amp[-1] != -1) {			a = amp;			mantom? wremove(): bremove();			decrem();			posit(&out1, a);		}		goto loop;	}	if(*sbufp == '\0') {		pboard();		goto loop;	}	if((a=algin()) != 0) {		mfmt = 1;		return(a);	}	if((a=stdin()) != 0) {		mfmt = 0;		return(a);	}	printf("eh?\n");	goto loop;}algin(){	int from, to;	from = cooin();	to = cooin();	if(*sbufp != '\0') return(0);	return((from<<8)|to);}cooin(){	int a, b;	a = sbufp[0];	if(a<'a' || a>'h') return(0);	b = sbufp[1];	if(b<'1' || b>'8') return(0);	sbufp =+ 2;	a = (a-'a')+8*('8'-b);	return(a);}match(s)char *s;{	char *p1;	int c;	p1 = sbufp;	while((c = *s++) != '\0')		if(*p1++ != c) return(0);	sbufp = p1;	return(1);}done(){	int *p;	if(rept() > 3) {		printf("Draw by repetition\n");		onhup();	}	p = lmp;	mantom? bagen(): wagen();	if(p == lmp) {		if(check())			if(mantom)				printf("White wins\n"); else				printf("Black wins\n"); else		printf("Stale mate\n");		onhup();	}	return(p);}xplay(){	int a;	stage();	abmove = 0;	a = mantom? bplay(): wplay();	ivalue = a;	return(a);}term(){	exit(0);}

⌨️ 快捷键说明

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