lab_laboratory

情報学生のアウトプットを行っていくためのブログ

プログラミング初心者は写経するべき!!日経ソフトウェアの将棋のコードを写経してみた

 

タイトル通りですが日経ソフトウェアのかなり古い

 こちらの 将棋対局ソフトのHTMLとjavaScriptのコードを写経してみました.

日経ソフトウエア 2017年 11 月号

日経ソフトウエア 2017年 11 月号

 

 

実際に写経をした部分は,将棋の駒の動かし方を表示するコードなのでまだ対局のほうはまだ手を付けてないです・・・(^-^;

 

実際に写経した結果がこちら

f:id:lab-lab:20180916204125p:plain

駒をどう動かせばいいかがわかると思います.

 

細かいコードを貼ってしまうと,著作権侵害になってしまうのでコードのことは書けませんがなぜ将棋のコードを写経したのかを話していきます

なぜ将棋対局ソフトを作りたいのか?作ってどうするのか?

私は普段pythonでプログラミングを行っているので,このアルゴリズムを知りたかったので今回写経してみました.写経してこんな風にプログラミングしてるんだと大いに勉強になってます.

本題に戻りますが,ズバリ!私はこのコードをpythonで作り直してそこから実際のプロ棋士棋譜を解析して将棋AIを作りたいと考えています.

私は機械学習やAIなどに興味があるのでそこにつなげられる足掛かりにAIで結構有名な将棋AIに目を付けました!!将棋AIを作りたいと思っても棋譜を眺めていてもどんな儀情報を解析すれば,学習を進めていくことができるのかが全く分からないのでいきなりAIで学習させることを考えるより一歩ずつ進めるため,対局ソフトを作っていこうと思います.

 

写経を初心者にお勧めする理由は,二つ.

アルゴリズムが理解できること 

これは経験がモノを言うのかもしれませんが,私自身研究でプログラムを書くとき頭の中でプログラムのアルゴリズムを想像できると,スラスラとコードが書けます.

つまりアルゴリズムが理解できることは,初心者が今後プログラムを作る場合にアルゴリズムを構築することができる!!ということはコードが書けることといってもいいです.

実際に成果物が出来ること

プログラミングって文字列をただただ書いていく単純な作業で退屈なんです.なので写経で成果物が完成するときの達成感を得て,モチベーションを高めることは特に初心者には必要なことだと思っています.

 実際コードを書くとエラーが出てきたり,飽きてきたりするものなのでモチベーションを保つために,写せば完成する.写経を行うといいと思いますし,成果物を誰かに自慢してもいいんです!

私は高校生の頃プログラミングして簡単なものでしたがプログラムが完成した時はとてもうれしかったですし,プログラムを友達に自慢して,すごいって言ってもらう経験があったからこそプログラマになりたいと思うようになりました.

なので私は写経を初心者の方にお勧めします.

 

今回は,私のプログラミングのやりたいことについての進捗で記事を書かせてもらいました.

 

余談ですが

写経をしている最中に流してたアニメ「宇宙より遠い場所」めっちゃよかったです.

必死になって目的を果たそうとしている女子高生たちの青春が見ていて感動を与えてくれるようないいアニメでした