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

📄 tz.bas

📁 smallbasic for linux
💻 BAS
字号:
#!/usr/local/bin/sbrun -g#sec:Main''	TIC-TAC-TOE''	SmallBASIC 0.6.0 example'declare sub displaydeclare sub userdeclare sub computerdeclare func checkDIM MAT(9), PW(8), ST(3)LABEL RESTARTFOR I=1 TO 9	MAT(I)=0NEXTcls? cat(1);"Tic-Tac-Toe";cat(0)? chr$(27)+"[92m"? "A SmallBASIC example"at 0,130? "X=USER, O=CPU" ? "Are you want to play first"; INPUT selWINNER=0IF UCASE$(LEFT$(sel,1))="Y" THEN	PLAYER=-1ELSE	PLAYER=1FI' startWHILE 1	IF PLAYER=-1 		DISPLAY		USER	ELSE		COMPUTER	FI	winner=CHECK	PLAYER=-PLAYER	IF WINNER THEN exitWENDDISPLAYAT 0,130:? cat(1);IF WINNER=-1	? "YOU WIN!"ELIF WINNER=1	? "I WIN!"ELSE	? "TIE!"FI? cat(92)AT 0,148INPUT "PLAY AGAIN?",SELIF UCASE$(LEFT$(SEL,1))="Y" THEN GOTO RESTARTEND#sec:display' disp'===================Sub DISPLAYLocal N, Oclsrect 0,0,160,140 color 15 filledline 20,40,140,40line 20,80,140,80line 60,0,60,120line 100,0,100,120FOR N=1 TO 9 STEP 3	y=int(n/3)*40+20	FOR O=0 TO 2		x=(o+1)*40		IF MAT(O+N)=1			circle x,y,10		ELIF MAT(O+N)=-1			line x-10,y-10,x+10,y+10			line x+10,y-10,x-10,y+10		FI	NEXTNEXTend#sec:user' user'===================Sub USER	func upos	local p,x,y	while pen(0)=0:wend	x=pen(4):y=pen(5)	p=int((x-20)/40)+1	if y>80		p=p+6	elif y>40		p=p+3	fi	upos=p	endLocal p,x,ypen onwhile 1	p=upos	if mat(p)=0		exit	else		beep	fiwendpen offMAT(P)=-1end#sec:computer' comp'===================Sub COMPUTERlocal i,p,w'===================Sub CCFIN(p)MAT(P)=1end'===================Func SELPOS(i)IF I < 4	ST(1)=(I-1)*3+1	ST(2)=(I-1)*3+2	ST(3)=(I-1)*3+3ELIF I < 7	ST(1)=(I-3)	ST(2)=(I-3)+3	ST(3)=(I-3)+6ELIF I=7	ST(1)=1:ST(2)=5:ST(3)=9ELSE	ST(1)=3:ST(2)=5:ST(3)=7FIIF MAT(ST(1))=0	selpos=ST(1)ELIF MAT(ST(2))=0	selpos=ST(2)ELSE	selpos=ST(3)FIend'===================' WINNER MOVEFOR I=1 TO 8	IF PW(I)=2		p=SELPOS(i)		CCFIN p		exit sub	FINEXT' DEFENCE MOVEFOR I=1 TO 8	IF PW(I)=-2		p=SELPOS( i)		CCFIN p		exit sub	FINEXT'' SIMPLE MOVE - THIS LETS USER TO WIN' BECAUSE IT DOES NOT CALCULATE THE' FREE CELLS'IF MAT(5)=0  P=5ELSE  FOR I=1 TO 9    IF MAT(I)=0 THEN      P=I      CCFIN p		exit sub    FI  NEXTFIend#sec:winner' check'===================func Checklocal i, cnt, wFOR i=1 TO 3	PW(i)=MAT((i-1)*3+1)	PW(i)=PW(i)+MAT((i-1)*3+2)	PW(i)=PW(i)+MAT((i-1)*3+3)	PW(i+3)=MAT(i)+MAT(i+3)+MAT(i+6)NEXTPW(7)=MAT(1)+MAT(5)+MAT(9)PW(8)=MAT(3)+MAT(5)+MAT(7)FOR i=1 TO 8	IF PW(i)=-3 THEN W=-1	IF PW(i)= 3 THEN W=1NEXTIF W=0 THEN 	CNT=0	FOR i=1 TO 9		IF MAT(i) THEN CNT=CNT+1	NEXT	IF CNT=9 THEN W=999FIcheck=wend

⌨️ 快捷键说明

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