!コンピューターの打つ手を、ゆっくり確認出来るようにした。
!続「パソコンが相手のオセロ・ゲーム」Ver7.0
! oth34p.dll に更新。98SE での「0th33p.dllを ロードできない」を解消。
!このプログラムは、uBASIC 用の、小山オセロを、十進BASIC に移植したものです。 !対戦する「知能」の部分が、機械語( oth34p.dll ) になっていますので、 !下記から DownLoad し、このプログラムと同じフォルダーに置いて下さい。 !レジストリーは使用せず、汚しません。 !DownLoad の時の警告は、心配要りません、無視してください。
!http://homepage2.nifty.com/neutro/asm/oth34p.dll
!-------------------希望者のみ---------------------- !ソース.asm が入用な方。 !http://homepage2.nifty.com/neutro/asm/oth34p.asm ! !その他、全ファイルの欲しい方。 !http://homepage2.nifty.com/neutro/asm/othello.htm !---------------------------------------------------
! 1984/03/10 for N88BASIC by Yoichi KOYAMA ! modified for UBASIC(98) 1989 by Yuji KIDA ! 1989/10/02 modified by Yoichi KOYAMA ! modified for UBASIC(AT) 1994 by Yuji KIDA ! !------------------------------------------- ! modified for 十進BASIC 2008 by バットマン ! ! ** KOYAMA OTHELLO GAME for 十進BASIC **
FUNCTION oth33p(dx,r$) ASSIGN "oth34p.dll", "start00" ! DOS版の機械語を逆アセンブルして移植した。 END FUNCTION
OPTION CHARACTER byte SET TEXT BACKGROUND "OPAQUE" ! plot text with background color 0 SET WINDOW -0.8, 13.2, 13,-1 LET xc=(13+1)/(501/7) ! 半角/全角=7/14pix /桁、screen=501x501pix. LET xc2=xc+xc LET xc4=xc2+xc2 !---- LET XL=9 LET YY=5.5 LET YC=2 DIM U(2),GT(2) ! LET CIN=BVAL("1000",16) LET CCH=BVAL("2000",16) LET CPL=BVAL("3000",16) LET CFN=BVAL("4000",16) LET CMN=BVAL("6000",16) LET INI=BVAL("8001",16) LET CCHexe=BVAL("9000",16) LET LTB=BVAL("a000",16) LET RAN=BVAL("b000",16) LET OWT=BVAL("c000",16) LET r$=r$&REPEAT$(CHR$(0),38) ! RANDOMIZE
!----- SUB RANDOM LET r$="" FOR j=1 TO 8 LET x=1 LET y=0 FOR i=1 TO 8 IF RND<0.5 THEN LET y=y+x LET x=x*2 NEXT i LET r$=r$&CHR$(y) NEXT j LET r$=r$&REPEAT$(CHR$(0),38-8) !----- CALL printr CALL sens( RAN) !----- END SUB
!----- SUB set_WT DATA 1000,100,100,100,1000,-1200,-10, -20, -20,-10, 80,-120, -80, -60 LET r$="" FOR i=1 TO 14 READ w IF w<0 THEN LET w=w+BVAL("10000",16) LET r$=r$&CHR$(MOD(w,256))&CHR$(IP(w/256)) NEXT i LET r$=r$&REPEAT$(CHR$(0),38-14*2) !----- CALL printr CALL sens( OWT) !----- END SUB
SUB SEL(wx,wy,w$, vx,vy,v$, xs,xp,n,r) LET xe=xs+xp*ABS(n) SET LINE COLOR "red" DO WHILE NOT( 0<r AND r<=ABS(n) ) PLOT TEXT,AT vx,vy :v$ PLOT TEXT,AT wx,wy :w$ ! 続き1
|