最近話題のkkpとかkppとかいうやつ

オープンソースなので起こすまでもないんだが

python練習中のソースを一部晒しますね

import numpy as np
 
with open('KK_synthesized.bin', 'rb') as f:
kk = np.fromfile(f, dtype='int32').reshape(81, 81, 2)

with open('KKP_synthesized.bin', 'rb') as f:
kkp = np.fromfile(f, dtype='int32').reshape(81, 81, 1548, 2)

with open('KPP_synthesized.bin', 'rb') as f:
kpp = np.fromfile(f, dtype='int16').reshape(81, 1548, 1548, 2)

こいつらの演算は以下のようになります。

eval = e_mat # 駒得分
 
kkp_sum=[0,0]
for i in fv38f:
kkp_sum += kkp[k0][k1][i]

kpp_sum0=[0, 0]
kpp_sum1=[0, 0]
for i,j in itertools.combinations(fv38f, 2):
kpp_sum0 += kpp[k0][i][j]
for i,j in itertools.combinations(fv38e, 2):
kpp_sum1 += kpp[80-k1][i][j]
 
if turn == BLACK:
eval += (kk[k0][k1][0]+kk[k0][k1][1])/32
eval += (kkp_sum[0]+kkp_sum[1])/32
eval += (kpp_sum0[0]+kpp_sum0[1])/32
eval += (-kpp_sum1[0]+kpp_sum1[1])/32
else:
eval += (kk[k0][k1][0]-kk[k0][k1][1])/32
eval += (kkp_sum[0]-kkp_sum[1])/32
eval += (kpp_sum0[0]-kpp_sum0[1])/32
eval += (-kpp_sum1[0]-kpp_sum1[1])/32
 

 

 vscodeから貼ると間延びするみたい。

面倒だから放置する。

 

検算ツール:

局面の3駒関係

ソース管理の話

ある実装に苦労してる知人の話を聞いたが,
オープンソース界隈だと良い実装がひとつあると99.9%以上の人は
盲目的にそれをベースに使うだけで,ソースまで戻る人は少ない。
死蔵されるソースも多いし,有意義かどうかは微妙な面もある。
彼の努力が実るかどうかは正直疑わしい。
 
個人的には一昨年になるが,80年代から使われている秘伝のソース内に
比較的初歩的なバグを見つけた。フィードバックするにも管理されていないし
そもそもライセンス?って時代のものだ。
 
そして私は秘伝のソースと縁を切ることに決めた。
#縁が切れているとは言ってない
 
公開しても見る人のないソースはほぼ意味がない。
#ごくたまに中国や中東から面倒なメールを貰う程度

狼将棋の局面図の挿入テスト

【先日の一戦にて5三桂の場面】
後手:増田 
後手の持駒:飛 銀 歩三 
  9 8 7 6 5 4 3 2 1
+---------------------------+
|v香v桂 ・ ・v玉 ・ ・ ・v香|一
| ・v飛 ・v銀v金 ・v銀 歩 ・|二
|v歩 ・v歩v歩 桂 ・v金 ・v歩|三
| ・ ・ ・ ・v歩v歩 ・ ・ ・|四
| ・ ・ 角 桂 ・ ・ ・v歩 角|五
| ・ ・ 歩 ・ ・ ・ ・ ・ ・|六
| 歩 歩 ・ 歩 歩 歩 ・ ・ 歩|七
| ・ ・ 金 ・ ・ ・ ・ ・ ・|八
| 香 ・ ・ 玉 銀 ・ ・ 桂 香|九
+---------------------------+
先手の持駒:金 
先手:藤井 

狼将棋のところのSVGが出来がよかったのでテストしてみる。

流用してください的なことが書いてあるが,個別に回答頂いたわけじゃないので問題あれば削除します。

ーーー

7/13追記

MITライセンスで公開だそうな

http://www.geocities.jp/ookami_maasa/shogizumen/

rawバイトリテラルで地雷

にわかpythonユーザである。

コメントアウトしたところでユニコードうんたらとエラーが出て,謎が解けたのでメモっておく。

問題となったのは以下のようなコード

'''

p=func(r'C:\Users\xxx\Documents\work')

'''

コメントアウト前はrawバイトリテラルで ファイルパスの区切りの¥をエスケープするのが面倒で使ってた。

コメントアウトしたら普通の複数行文字列のリテラル扱いなので「\U」のところが16進ユニコードリテラル扱いされてエラー(笑)

こういうのどうしたらいいのかねぇ。

皆一行ずつ#つけてるの?

Windowsで地雷になりがちなところ

Windows苦手な人が嫌がるところを見てみましょう。

習作として以下のElixirのサンプルをWindows環境で実行してみます。

当然地雷臭がしますが、Windowsネイティブバイナリを入れていきます。

 

employment.en-japan.com

 

まず、iexがPowerShellだとInvoke-Expression のエイリアスになってる。

最低です。Creators Update以降はPowerShellがデフォルトになっているのに、基本的なコマンドが別のエイリアスで規定されています。エイリアスを外すかコマンドプロンプトを起動しましょう。

 

日本語が文字化けします。

ありがちです。Elixir含めて最近の処理系はUTF-8がデフォルトですが、Windowsは歴史あるShif-JIS系のコードをしようしています。

Windowsではchcpというコマンドを使いましょう。引数はUTF-8にするには65001としていします。つまり「chcp 65001」と打てばいいのです。

また、ありがちなのですがWindowsではエディタで作ったファイルがShif-JIS系になりがちです。確認してUTF-8にしておきましょう。

以上の対応をしても一か所ダメでした。

MS-IMEの出力はどうしてもUTF-8にできませんでした。

つまり、コマンドラインの漢字は入力しても化けて読まれます。

どうしたらいいものかなぁ。

#敢えて地雷を踏みに行ってますので、それほど危惧してません。

 

Bash on Windowsと色々かぶる。

まぁ、解決策としてUbuntu系のバイナリが使えるBash on Windowsに逃げるのが今風なのですがCreators Update以降は素敵なことにbash中でWindowsバイナリも動きます。ええ、Windows側で指定したパスに実行ファイルがあるとそれが動きます。ということで上記で入れたWindowsバイナリをアンインストールしましょう。残ってると色々奇妙な現象にクラクラします。

 

今日はこれくらいにしてあげましょう。

RYZEN写真集

RYZEN仕入れてました。

開封の儀

ん!?

本体ちっさ!!

CPUファンが入ってない1800Xなので,これだけ売ってくれればいいのよ。

なんか,黒いです。(カラー写真です,悪しからず)

適当に見繕って貰ったファンでかっ!!

BIOSの誤字が人柱感満載でいい。

 

こんなものも激しく無駄な多層梱包で別送されてまして

がっつり厳つい感じになります。

上の方がRYZEN用のファンで下がビデオカードです。

上が95Wで下が250Wと言えば,基本的に熱設計間違えてると思いますよね。