JAPLA研究会資料 2017/8/5

Similar documents
JAPLA研究会資料 2007/4/28

JAPLA研究会資料 2017/6/17

JAPLA研究会資料 2017/6/17

Z...QXD (Page 1)

untitled


manu_fi„‰ž½À°_‚““⁄ÊßÝÌ_‘oŠÍ

ニュース和歌山-5月23日1面

Taro-Basicの基礎・条件分岐(公


2

JAPLA /12/07 gl2 1 1 J Java C C++ J APL J J J J J J 5.01a for Windows 2 gl2 J gl2 isigraph isigraph isigraph gl2 gl2 J Help Mapping Mode gl2

1

広報さっぽろ 2016年8月号 厚別区

サービス付き高齢者向け住宅賠償責任保険.indd

JAPLA研究会資料 2011/1/29


人間石川馨と品質管理


橡Taro9-生徒の活動.PDF

u u u 1 1

A

2

APL/Jシンポジウム 

JAPLA研究会資料

JAPLAシンポジウム資料 2009/12/5

J研究会資料 2006/11/25


将棋将棋とは 古代インドで生まれた チャトランガ というゲームがルーツと言われています チャトランガは世界各国に伝わり 使う道具やルールが変化して 将棋となりました 将棋はタテ9つ ヨコ9つ 計 81マスの盤と8 種類の駒を使い2 人のプレイヤーが1 対 1で勝ち負けを競うゲームです 自分が1つの駒

untitled



1009.\1.\4.ai

好きですまえばし



1


JAPLAシンポジウム資料 2006/12/9

untitled

untitled

untitled


明治大模擬2

C 04 D 10 D 11 D 12 D A 14 D 16 D 17 D 18 D 19 D D A A A 33 D D A 21 D 22 D 23 D 23 D 24 D 27 D 34 D 35 D 36 D 38 D A A 40 D

Taro-リストⅠ(公開版).jtd

KL-V450 Printer Driver

a b GE(General Erectrics) 9 4 irr (JAPLA 2009/12) Example1 120 P = C r + C 2 (1 + r) C t 1 (1 + r) t 1 + C t + F (1 + r) t 10

P (32LX10)

IT障害に対して配慮すべき法的事項

C-720 Ultra Zoom 取扱説明書

Quick Sort 計算機アルゴリズム特論 :2017 年度 只木進一

JAPLA研究会資料 2010/9/ Excel_

2

AHPを用いた大相撲の新しい番付編成

P.3 P.4 P.9 P.11

431 a s a s a s d a s a 10 d s 11 f a 12 g s 13 a 14 a 15

Page () &

1007.\1.ai

PFQX2227_ZA

JAPLA研究会資料 2010/4/24

発展プログラミング (5) 例題 5-03( 応用プログラム 3 目並べ その 2) 勝敗判定機能をそなえた 3 目並べ のゲーム盤を作りましょう 必要な変数を考えましょう 1 マス目の状態を保持する配列 整数型 :mas[] 2 何手目かを数える変数 整数型 :nante 3 ゲームが終了したかど

FIVA取扱説明書

取扱説明書_KX-PW100CL

GP05取説.indb

5

Taro-プログラミングの基礎Ⅱ(公

Table of Contents Greeting

合わせを許す フリースタイルチェス という対戦形式も考案され, 発展を遂げている. この対戦では, あまり強くない人間 + コンピュータ + 良いプロセス が グランドマスター + コンピュータ + 良くないプロセス に勝利するということが起こっている. このことは, コンピュータをどう使いこなすか

PowerPoint プレゼンテーション


dlshogiアピール文章

現在は J803 までが発表されていますが 筆者は J 言語の grid addon を必要としていますが J802 J803 には現在のところ Grid addon が含まれていないため j801 を採用しました このリストの MAC バージョンが iphone に対応するアプリかどうかは筆者には

Microsoft Word - 将棋のお供マニュアル_ doc

VE-GP32DL_DW_ZA

2

2

C C C - J TH-D TH-D TH-D C C C C C - J TH-D TH-D TH-D C - J TH-D TH-D TH-D C C C C

2

人工知能学会研究会資料 SIG-FPAI-B Predicting stock returns based on the time lag in information diffusion through supply chain networks 1 1 Yukinobu HA


.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

2 3

by CASIO W61CA For Those Requiring an English/Chinese Instruction

要旨 : データステップ及び SGPLOT プロシジャにおける POLYGON/TEXT ステートメントを利用した SAS プログラムステップフローチャートを生成する SAS プログラムを紹介する キーワード :SGPLOT, フローチャート, 可視化 2

NOTE P, A,. A P ( A, P ),,.,. P A. (set) (set), (). (element), (element).,.,. ( A, B, X, Y, P ), { } (),..3 (union) A, B,A B, A B (union),. A B = {x x

1

基本サンプル

untitled

*Ł\”ƒ‚ä(DCH800)

Case 0 sqlcmdi.parameters("?tencode").value = Iidata(0) sqlcmdi.parameters("?tenname").value = Iidata(1) 内容を追加します sqlcmdi.executenonquery() Case Else

JAPLA研究会資料 2018/6/16

31 33

1. 入力画面

bc0710_010_015.indd

プレスリリース_ _AIシリーズ_fix

2

PX-047A Series

RQT8189-S.indd

1 2

Transcription:

JAPLA 研究会資料 2017/9/9 J で将棋の対局を実感して楽しむ - その 2 修正版 - 指し手と持ち駒の表示 西川利男 先月 JAPLA 例会で報告した J の上での将棋はいかがでしたか 発表の後 鳥邊錬太郎氏より 指したときに駒がどう動くのかわからない その経過がわかるように また志村正人氏よりは 相手の駒を取って それぞれ持ち駒がどうなっていうのか示してほしい というご指摘があった これを受けて 以下のようなシステムへの追加 改良を行ったものである (1) 現在の指し手を 青色の円で囲んでその位置を示す (2) 先手 後手のそれぞれについて 現在の持ち駒を表示する 以下は 前回の発表を修正するものである 1.J による将棋システムの実際中盤からの戦闘の開始 後手 8 六歩で突いてきたのを先手同歩で受けた となし ころが 後手は思いがけいところから角を繰り出これを取った - 1 -

それに対して先手は同角と受けた - 2 -

さらにこれに対して 後手は同飛車と 両者の息のつまるような応戦の盤面のようすをみていただきたい 青丸し手のち駒のいただ で囲った指表示と 持表示をみてきたい このためのプログラムの追加 修正版は 付録として示した - 3 -

J プログラム リスト - 追加 修正した版 NB. Sashite Display one by one with press down Go button =============== IS =: 0 JS =: 0 ToriKA =: '' ToriKB =: '' shogi_go_button=: 3 : 0 ========================================== wr 'No. ', (": St), ' =======' if. 91 = St wr '=== end ===' goto_utikoma. if. 0 < St kesu_sashite '' Sab =. St { SDATA UT =. shogi_test_button St NB. 付加文字 NB. display Sashite data on edit box SS =. (> 0{Sab), (> 1{Sab), (> 2{Sab) wr '* データベースから次の指手の読み込み *' wr SS,' ', (>(2 St){(' 先手 ';' 後手 ')), ' St = ', (": St) wd 'set Sashite * ', SS,' ', (>(2 St){(' 先手 ';' 後手 ')), ' St = ', (": St) Kan_ind =:, > }: SS NB. wr Kan_ind 'i j' =: ind_adj kanj_to_n Kan_ind NB. 指手前の盤面の状態 ================================== if. ((St >: TestStA) *. (St <: TestStB)) wr '* 指す直前の盤面 *' if. 0 = St wr ShBan if. 0 < St wr ShBanOld if. 0 < St NB. wr ShBanOld wr '* 指手位置の盤面 ( 指す前 ) *' wr (<i, j) { ShBanOld NB. 英字駒名ボックス wr ToriKoma =. komaconv_a2j > (<i, j) { ShBanOld NB. 漢字駒名 wr ' 先手持ち駒 ', ToriKB wd 'set Sente * ', ToriKB wr ' 後手持ち駒 ', ToriKA wd 'set Gote * ', ToriKA NB. 相手駒を取ったときの処理 ========================================= ======= NB. ToriKoma Display in 'Sente', or 'Gote' Editbox === 2017/8/9 ============ if. 0 = St goto_skip. - 4 -

if. (<'_') ~: (<i, j) { ShBanOld ToriKoma =. (<IS, JS){ShBan wr 'Totta! ', > ToriKoma T =. (2 St) select. T case. 0 NB. 先手 ToriKBB =., > komaconv_a2j > (<i, j) { ShBanOld NB. ToriKBB =. > (KOMAB i. ToriKoma) { KOMAJ wr ' 先手 ', ToriKBB, ' を取る ' ToriKB =: ToriKB, ToriKBB wr ' 先手持ち駒 ', ToriKB wd 'set Sente * ', ToriKB case. 1 NB. 後手 ToriKAA =:, > komaconv_a2j > (<i, j) { ShBanOld NB. ToriKAA =. > (KOMAA i. ToriKoma) { KOMAJ wr ' 後手 ', ToriKAA, ' を取る ' ToriKA =: ToriKA, ToriKAA wr ' 後手持ち駒 ', ToriKA wd 'set Gote * ', ToriKA else. label_skip. Komaj =: (4, 5) {, > SS SG =. (2 St){(1, _1) Komaa =: SG sgsel Komaj wr (": i, j),' ',, Komaa NB. 先手 :SG=+1, 後手 :SG=_1 (0 0 255) koma_circle i, j NB. 指手の駒名のグラフ盤面 カラー表示 (, Komaa) koma_paint i, j NB. 指手の駒名のグラフ盤面 表示 ShBan =: (<, Komaa) (<i, j) } ShBan NB. 棋譜配列更新 駒名 NB. if. ((St >: TestStA) *. (St <: TestStB)) NB. wr ShBan { S NB. NB. 打ち込みのため 持ち駒リストからはずす if. 1 = UT select. (2 St) case. 0 NB. 先手 ToriKB =: ToriKB exclude Komaj wd 'set Sente * ', ToriKB case. 1 NB. 後手 ToriKA =: ToriKA exclude Komaj wd 'set Gote * ', ToriKA goto_utikoma. - 5 -

NB. 駒の動きの選択 ============================================== select. Komaj case. ' 歩 ' ij =. (i+sg), j case. ' 金 ';' と ' ij =. ((i+sg),j-1);((i+sg),j);((i+sg),j+1);(i,(j-1));(i,(j+1)); ((i-sg),j) case. ' 銀 ' ij =. ((i+sg),j-1);((i+sg),j);((i+sg),j+1);((i-sg),j-1);((i- SG),j+1) case. ' 桂 ' ij =. ((i+2*sg),j-1);((i+2*sg),j+1) case. ' 王 ' ij1 =. ((i+sg),j-1);((i+sg),j);((i+sg),j+1);((i-sg),j-1) ij2 =. (i,j-1);(i,j+1) ij3 =. ((i-sg),j);((i-sg),j+1) ij =. ij1, ij2, ij3 case. ' 飛 ';' 竜 ' ija =. }. <"(1) (9 i + i.9),. j ijb =. }. <"(1) i,. (9 j + i.9) NB. revised ij =. ija, ijb case. ' 角 ';' 馬 ' ijc =. }. <"(1) (9 i + i.9),. (9 j + i.9) NB. revised 2017/31 ijd =. }. <"(1) (9 i - i.9),. (9 j + i.9) NB. revised 2017/31 ij =. ijc, ijd NB. 駒の動きの選択おわり NB. 空白の検出 ===================================================== ij =. 9 (L:0) ij NB. 候補インデックス 調整 AA =. ij { ShBan NB. 候補駒名の取り出し BB =. (<,Komaa) = ij { ShBan NB. 同一テストをした後 NB. 単一インデックスの取り出し if. ((St >: TestStA) *. (St <: TestStB)) wr '* 空白処理 *' wr ij wr AA wr BB select. Komaj case. ' 金 ';' 銀 ';' 王 ';' 桂 ';' 飛 ';' 角 ';' と ';' 竜 ';' 馬 ' ij =., > BB # ij ij =. 9 ij NB. ' 駒名上 ' の処理 =============== NB. == 63 手 == S64 =: (1,3)$'4';' 三 ';' 金上 ' の処理 if. 3 = UT - 6 -

ij =. (0, 1) { ij NB. ' 駒名直 ' の処理 =============== NB. == 74 手 == S75 =: (1,3)$'4';' 三 ';' 金直 ' の処理 =============== if. 4 = UT ij =. (2, 3) { ij NB. ' 駒名成 ' の処理 =============== NB. == 64 手 == S65 =: (1,3)$'2';' 一 ';' 歩成 ' の処理 =============== if. 2 = UT KOMAN =. (, Komaa),'N' NB. rename komaa, attaching 'N' after komaa for 成 ShBan =: (<, KOMAN) (<i, j) } ShBan (KOMAN) koma_paint i, j 面表示 NB. 棋譜配列更新 駒名 NB. 指手の駒名のグラフ盤 NB. 空白処理後表示 if. ((St >: TestStA) *. (St <: TestStB)) wr '* 指した後の盤面 *' wr (": ij), 'BL' ('BL') koma_paint ij NB. 駒の移動後の空白のグラフ盤面表示 ShBan =: (<'_') (<ij) } ShBan NB. 棋譜配列更新 空白 if. ((St >: TestStA) *. (St <: TestStB)) wr ShBan label_utikoma. IS =: i JS =: j ShBanOld =: ShBan wr FF St =: St + 1 ) exclude =: 4 : '((i. # x.) -. (x. i. y.)) { x.' NB. 'abcccde' exclude 'c' => 'abccde' NB. 'abccde' exclude 'c' => 'abcde' koma_paint =: 3 : 0 : 'X Y' =. y. glbmpxywh (50 + 100 * Y), (850-90 * X), 80, 80 glbmp PathShBan, (x.), '.bmp' glshow '' - 7 -

) koma_circle =: 3 : 0 : 'X Y' =. y. glrgb x. glpen 6 0 glellipse (42 + 100 * Y), (845-90 * X), 96, 92 glshow '' ) kesu_sashite =: 3 : 0 (255 255 255) koma_circle IS, JS (, Komaa) koma_paint IS, JS grid_lines '' ) - 8 -