新しく発言する  EXIT  インデックスへ

パソコンが相手をする「オセロ・ゲーム」勝...


  パソコンが相手をする「オセロ・ゲーム」勝てるか? SECOND 2008/08/23 07:49:16 
パソコンが相手をする「オセロ・ゲーム」勝てるか?  返事を書く  ノートメニュー
SECOND <jjqdmekgpt> 2008/08/23 07:49:16
!パソコンが相手をする「オセロ・ゲーム」勝てるか?

!このプログラムは、uBASIC 用の、小山オセロを、十進BASIC に移植したものです。
!対戦する「知能」の部分が、機械語( oth33p.dll ) になっていますので、
!下記から DownLoad し、このプログラムと同じフォルダーに置いて下さい。
!レジストリーは使用せず、汚しません。
!DownLoad の時の警告は、心配要りません、無視してください。

!http://homepage2.nifty.com/neutro/asm/oth33p.dll

!-------------------希望者のみ----------------------
!ソース.asm が入用な方。
!http://homepage2.nifty.com/neutro/asm/oth33p.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 "oth33p.dll", "start00" ! DOS版の機械語を逆アセンブルして移植した。
END FUNCTION

! ASSIGN 文が、時々、”文法の誤り 0th33p.dll をロードできない”
! という警告を出す場合がある(win98SE)。RUN し直すと動作します。原因不明?
! winXP では全くない、が、わからない。

OPTION CHARACTER byte
SET TEXT BACKGROUND "OPAQUE" ! plot text with background color 0
SET WINDOW -1,13,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)

!-----
SUB RANDOM
RANDOMIZE ! 620 ! 引数有りは「再現」する。(整数0〜4294967295)
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
LET AR0=oth33p( RAN,r$)
CALL printA32
CALL printr
!-----
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
LET AR0=oth33p( OWT,r$)
CALL printA32
CALL printr
!-----
END SUB

! 続き1
  !続き1 SECOND 2008/08/23 07:50:29 
  │└!続き2 SECOND 2008/08/23 07:51:40 
  │ └!続き3 SECOND 2008/08/23 07:52:45 
  │  └!続き4 SECOND 2008/08/23 07:53:45 
  Win98SEの方で「0th33p.dllをロードできない... SECOND 2008/09/13 18:00:37 
  !コンピューターの打つ手を、ゆっくり確認出... SECOND 2008/09/13 18:50:45  (修正1回)
   └!続き1 SECOND 2008/09/13 18:52:22  (修正1回)
    └!続き2 SECOND 2008/09/13 18:53:47  (修正1回)
     └!続き3 SECOND 2008/09/13 18:55:17  (修正2回)
      └!続き4 SECOND 2008/09/13 18:56:52  (修正1回)
       └DELETED  SECOND  2008/09/13 19:28:19  (削除)

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。