chess の LaTeX 続続続

先日は、後々の利用を考えて

\newchessgame[id=s1,setfen=7K/8/k1P5/7p]
STUDY BY RICHARD R\'ETI\\
\chessboard[marginwidth=0.1cm,label=false]

としていたのだが、図面表示をシンプルにやってみる。

cp_501.jpg

\raisebox{12em}W \chessboard[setfen=7K/8/k1P5/7p]

手番「W」は、12em 上げて書いた。
\newchessgame の指定は、\chessboard の指定でも 大丈夫なのだった。
以下同じように使えるが、、

\raisebox{12em}W \chessboard[setpieces={Pa3, Kh2, pf3, ka2}]

\raisebox{12em}W \chessboard[setpieces={Ka7, Pf5, Pe2},addpieces={pe7, pf6, kc2},]

\def で定義したものは、また定義し直さなければならないようだった。

\def\mypieces{Kb6, Pc6, rd5, ka1}
\raisebox{12em}W \chessboard[setpieces=\mypieces]

この 4 問目は特に面白いので解いてみて欲しいのだ。

PDF は ホームにアップしたので、英語での説明を読みたい御仁はそちらへ。



スポンサーサイト



chess の LaTeX 続続

対局だけではなく、 Endgame Study も表示してみる。出典は 『Chess Positions』 C.H.O'D. Alexander
20220226CP_c.jpg
出版は 1974年だ。出て間もない頃に丸善で買った。当時そのほかにチェスの本で入手できるのは Dover の本ぐらいだった。当然海外への注文で時間もかかるし、訳分からない丸善レート換算で費用もかさむのだった。日本に輸出禁止の本もあった。たかが、チェスの本なのにと思ったりしたことだった。
その Set 5. The End-game の 4図を作ってみる。文章も入れて雰囲気も作る。
20220226CP_1.jpg

1 は fen(Forsyth-Edwards Notation) を利用した

\newchessgame[setfen=7K/8/k1P5/7p]

STUDY BY RICHARD R\'ETI\\
\chessboard[marginwidth=0.1cm,label=false]

FEN の記述は例えば以下のように長いものだが、省略して使えるのがいい

rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - 1 2

’/’ をスペースで置き換えれば TMK フォーマットとソックリなのだった。

2 は 駒指定を利用した。

\newchessgame[setpieces={Pa3, Kh2, pf3, ka2}]

3 は 駒指定は長くなりがちなので、白と黒に分けてみた。

\newchessgame[setpieces={Ka7, Pf5, Pe2},addpieces={pe7, pf6, kc2},]

4 は 駒指定は定義してから使う。newchessgame のオプションが簡潔になるのがいいのかも

\def\mypieces{Kb6, Pc6, rd5, ka1}

\newchessgame[setpieces=\mypieces]

盤表示のオプションは

\chessboard[marginwidth=0.1cm,label=false]

のように毎回指定している。設定する方法はあるハズなのだが、まだ理解できていない。

chess の LaTeX 続

変化手順・図面を表示してみる。(出典は『Move by Move The Sicilian Dragon』 by Carsten Hansen)アマゾンの見本
SicilianDragon06a.jpg
ソースは、昨日のに続けて、、、

\mainline{10... Rc8}

とし、ゲームの手順を表示したところで、変化手順 a) にはいる

\newchessgame[newvar=game6,id=a]
\styleB
a)  \mainline{10... d5 11. f5 Bc8 12. exd5 Nb4 13. Bf3 gxf5 14. a3 fxg4 
15. Bg2 Na6 16. Qd3 Qd6 17. O-O-O Nh5 18. h3},
\chessboard

newvar=game6 という key で ゲームの手順10手目黒番から始めることができるのが、上手い仕掛けだ。\styleB は手順を改行せずに表示する指定。変化手順 b)も同様だ

\newchessgame[newvar=game6,id=b]
b) \mainline{10... Na5 11. g5 Nd7 12. Qd2 Rc8 13. h4 Nc4 14. Bxc4 Rxc4 15. h5} 
\chessboard

変化手順 b) の途中から b12) に入る

\resumechessgame[id=b,moveid=12w]
b12) \mainline{12. Bd4 f6!?} 
\chessboard

b) から b1) となってから b11)、 b12) となるのだが、すっ飛ばしている。で b2)

\resumechessgame[id=b,moveid=11w]
b2) \mainline{11. f5 Bc4 12. Nxa5 Bxe2 13. Qxe2 Qxa5 14. O-O-O Rfc8 
15. Bd4 Nd7 16. Nd5 Bxd4 17. Rxd4 Qxa2 18. Nxe7+ Kf8 19. Nxc8 Rxc8 
20. Rhd1 Qa1+ 21. Kd2 Qxb2 22. Ke1 Ne5}
\chessboard

次に、 c) に行くのだが、レベルとしては b3) が相応しいのかもしれない。

\resumechessgame[id=b,moveid=11w]
c) \mainline{11. Bd4!?}
\chessboard

SicilianDragon06b.jpg
図面が次ページに行ってしまったが、まあしかたない。で、変化手順は終わり、ゲーム手順に戻る。

game position after 10 ... Rc8.
\resumechessgame[id=game6]
\chessboard

手順を 1手1行表示のタイプに戻して

\styleC
\mainline{11. g5  Nd7}

変化手順・図面を挟み

\newchessgame[newvar=game6,id=a]
\styleB
\mainline{11... Ne8 12. h4 Na5 13. h5 Nc4 14. Bxc4 Rxc4 15. Qd3}
\chessboard

また、ゲーム手順に戻って終了

\resumechessgame[id=game6]
\styleC
\mainline{12. h4 Nb4 13. Nd4 Qa5 14. h5 Bc4 15. a3?}
\chessboard
\mainline{15... Na2! 16. Bxc4 Nxc3 17. Qd3  Nd5+! 18. Bd2 Nxf4 19. Bxa5 Nxd3+ 20. cxd3 Bxd4 21. hxg6 hxg6}
\chessboard
\mainline{22. Bc3 Bxc3+ 23. bxc3 Ne5 24. Bd5 Rxc3 25. d4 Nf3+ 26. Kf2 Nxg5 27. Bxb7 Rb8 28. Rhb1 Ne6}
\end{document}



chess の LaTeX

将棋盤を、LaTeX で表示させることをしたりしていたが、chess ではもの凄いものが利用できる。
SicilianDragon06.jpg
これの LaTeX のソースは、以下の通り簡単なもの。
手順を入れるだけで盤面を作ってくれるのが凄い。

\begin{document}

\begin{center}Game 6 \\ 

\textbf{T.Thorhallsson-G.Jones} \\ Reykjavik 2013 \end{center} 

\newchessgame[id=game6]

\styleC

\mainline{1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 g6 6. Be2 Bg7 7. Be3 O-O 8. f4 Nc6 9. Nb3 Be6 10. g4}

\chessboard

\end{document}


まだ、マニュアルのほんの一部しか理解出来ていないが、痒い所がちゃんと掻けるようになっているような感じだ。昔買った本で、P-Q4 P-K3 のような notation のものを、自分で LaTeX 化するような夢も実現可能なのかもしれない。手順は Net で検索すれば出てくるだろうし。時間が無限にかかるような「沼」だ、、、。


「鬼滅の刃」の将棋盤

「鬼滅の刃」の将棋盤、ローソンで販売していたのだが入手出来なかった。詰とうほくでは、冬眠蛙さんが使っている。

そのユニークな特徴としては、盤面が色分けされていることと、2-5-2 というマス目の境で折り畳むことだ。

kimetsu2108_shogi_image.png

さて、最近 Chess の本ばかり見ているのだが、盤面に違和感が、、

濃い色と薄い色が chess 盤とは逆のようなのだった。

Chess で a1 は 濃い色。

将棋も同じように座標を振ると a1 に当たる場所は 11 or 99 で 薄い色なのだった。

まあ、どちらでもいいのだが、、


2層アーキテクチャー

2層アーキテクチャーは、ずーっと昔にに作ったことがあった。それは、T-BASE が出来たときに、作者索引を作ったことだった。 Excel で作ってもよかったのだが、そのころの Excel の行数は確か 65536 行までという制限があった。T-BASE の図面の収録数はすぐにその制限を越えてしまうのは明らかだった。
そこで選んだのが、 ローカルの Paradox。まあ、同じボーランドが Delphi と Paradox を作っているのだから何も考えなければそうなるのだった。
20220216Delphi.jpg
詰将棋パラダイスの作者索引を印刷したりしたのだった。その時に名前の入力ミスがかなりあることが解った。名前のミスがあるということは、その他のミスも多数ある。でT-BASE の修正作業をということになると思ったのだが、どうなったことやら、、

最近の Delphi では 基礎から学べるFireDACデータアクセス再入門 を見ると、以下のようであった。
20220216DelphiFireDAC.jpg
ということで、FireDAC とDBMS を接続する環境ができればいい訳だ。
簡単に接続できるハズなのだが、なぜかうまく行っていないのだった。まあ、トシの所為ではなく、独学の為にアナがあるという事なのだろう。

KLASINIC THEME


最近、聞き齧った用語、忘れないように 「EoCP」informant  の記述を貼っておこう。

KlasinicTheme.jpg

3層アーキテクチャーとは

このまえの、詰とうほくで、詰将棋データベースの進み具合を尋ねたところ、あまり捗捗(はかばか)しくないようだった。
で、その後、自分でもあれこれ調べてみた。以下は IBM のサイトから

3層アーキテクチャー
アプリケーションを3つの論理層と物理コンピューティング層に分離する3層アーキテクチャーは、従来のクライアント/サーバー・アプリケーション用の優れたソフトウェア・アーキテクチャーです。

3つの層の詳細
プレゼンテーション層
プレゼンテーション層とは、アプリケーションのユーザー・インターフェースかつアプリケーションの通信層であり、エンド・ユーザーはこの層でアプリケーションと対話します。 その主な目的は、ユーザーに情報を表示し、情報をユーザーから収集することです。 この第1層は、デスクトップ・アプリケーションであるWebブラウザー、またはグラフィカル・ユーザー・インターフェース(GUI)などで実行できます。 Webプレゼンテーション層は通常、HTML、CSS 、JavaScriptを使用して開発されます。 デスクトップ・アプリケーションは、プラットフォームに応じてさまざまな言語で記述することができます。

アプリケーション層
アプリケーション層(論理層または中間層とも呼ばれます) は、アプリケーションの中核です。 この層では、プレゼンテーション層で収集された情報が処理されます (場合によっては、データ層の他の情報に対して処理が行われます)。 その際、特定のビジネス・ルール・セットであるビジネス・ロジックが使用されます。 アプリケーション層は、データ層内でデータの追加、削除、または変更を行うこともできます。

アプリケーション層は通常、Python、Java、Perl、PHPまたはRubyを使用して開発され、API呼び出しを使用してデータ層と通信します。 

データ層
データ層(データベース層、データ・アクセス層、またはバックエンドと呼ばれることもあります) は、アプリケーションによって処理された情報が保管され、管理される場所です。 これは、PostgreSQL、MySQL、MariaDB、Oracle、DB2、Informix、Microsoft SQL Serverなどのリレーショナル・データベース管理システムである場合、またはCassandra、CouchDB、MongoDBなどのNoSQLデータベース・サーバー内にある場合があります。 

3層アプリケーションでは、すべての通信がアプリケーション層を経由します。 プレゼンテーション層とデータ層は、相互に直接通信できません。

まず、最初にデータを作るのだが、後で拡張するのは容易だから、とりあえず、T-BASE を移植する。まあ、リレーショナル・データベース管理システムを使うことにになるのだろう。MySQLやMicrosoft SQL Serverなのか、また、サーバーではなく、スタンドアロンだったら 無料のSQLiteか。これで、データ層は出来たことになるのかな。

アプリケーション層は、SQL文を、詰将棋向けのラッパーでくるむだけだ。

プレゼンテーション層。入力は柿木将棋ファイルや、名前などは簡単だが、検索条件の入力方法がやや面倒だが、 SQL 入力で誤魔化す手もあるか。

で出力だが、、

これは、図面データなら、je t'aime の使い回しで画面用(html)、 TMKファイルを作り、Suiho や For You で印刷用(PDF)。画像データなら、今昔詰将棋の使い回しで画面用(html)という案配にはなっているのだった。