競馬予想をプログラミングしてみたら、ものすごくプログラミングを楽しく学べた件

競馬予想をプログラミングしてみたら、ものすごくプログラミングを楽しく学べた件

みなさん、こんにちは!

プログラミングを上達するには、仕事だけではなく、プライベートでもプログラミングを学ぶことが重要だという話は、このブログでも散々してきましたよね。

 

でも、その勉強が強制じゃ、あまり意味ないんですよね。

やっぱり好きでプログラミングしている人と比べると、どうしても効率が悪いですし、何より嫌々やっても長続きしないんですよね。

 

んで、ちょっと考えて見たんですよ。

 

どうすれば、もっと自発的にプログラミングをプライベートでもするようになるのかと!

技術書を片手に勉強するのももちろんいいんですが、何か自分の好きなことで、プログラミングで何か作ることができないかと考えてみました!

 

何がいいかな〜と、いろいろと考えて見たんですけれど、せっかくプログラミングをするなら、できるだけ収益につなげたいと思ったんです。

 

プログラミングを学べるかつ、お金も稼げる。

 

そして何より、自分の好きなこと。

 

うん、そうだ。

競馬予想をプログラミングしよう!!

 

さっそく競馬予想をプログラミングしてみた!!

思いたったら吉日ということで、深夜に思いついたにもかかわらず、そのまま朝まで猛烈にプログラミングしまして、わずか半日くらいでプロトタイプを完成させましたww

 

仕様としては、netkeiba.comからレースの出馬表と、出走馬の過去レース情報を引っ張ってきて、

自分が日頃から参考にしている競馬理論に当てはまる馬がいれば、プログラムが自動でそれぞれの馬にポイントを加算して、最終的にそのポイントの合計値の高い順に馬を並び替えて表示する仕組みにしました。

 

競馬理論に関しては、前走の位置取りや順位などはもちろん、ある程度の血統データもデータベースにいれて、ポイントを抽出してます!

 

東京が得意な血統の馬には3ポイント追加!みたいなw

 

今のところ、血統は父親だけ参照する仕様になってます。

 

プロトタイプは単純に素のPHPで書いて、少したってからFuelPHPというフレームワークに突っ込んで実装しました。

 

Viewは本当にシンプルにテーブルで馬の詳細を表示するだけで、cssデザインやJSで動きなんかもまだ何もつけていません。

 

そもそも予想に動きやデザインは必要ないですしね。

 

どれだけ的中率をあげられるか!!

 

これが勝負なわけです( ´ ▽ ` )ノ

結果はどうだった?

さて気になる結果ですが、こちらの写真をご覧ください。

2018年5月12日の東京2Rのプログラムの予想です。

この写真は、実際にプログラムを動かして、その結果を表示している画面です。

表の上から順に、プログラムが計算したこのレースで買うべき馬になります。

 

プログラムが計算した得点が高い順に、馬を表示しています。

備考には、今回の馬の特徴を表記してみました。

 

推奨馬のところは、基本的に固い馬を表示しています。(軸として最適)

推奨馬に表示されている馬を複勝で転がすだけで利益が出るようにするのが目的です。(複コロ革命)

んで、実際のレースの結果がこちら。

 

 

プログラムが計算した上位の馬三頭が3位までを独占してます!!!!

しかも、順位までもバッチリ!!

プログラムスゲーーーー!!

三連単買っときゃよかった〜〜。 100円で15770円なり。

 

やべー、競馬プログラミングめっちゃおもろいやんw

 

競馬予想をプログラミングでやるメリット

競馬予想をプログラミングでやることで、普段の自分の予想の条件に当てはまる馬をプログラムが淡々と計算して表示してくれます。

 

馬券を買うときは、自分の予想以外にメンタルもとても大切になってきます。

プログラミングが自動で予想をしてくれるなら、無駄なエネルギーや余計な感情を予想に入れ込むこともなく、淡々と条件に当てはまる馬を抽出してくれるというわけです。

 

あとはプログラムが抽出してくれた馬を実際に自分の中で買える馬かどうか判別するだけでいいわけです。

 

もちろんプログラミングを100%信頼するのもやっぱり危険です。

抽出した馬のリストをみて、実際にくるかどうか判断すること。

この馬はぜってーにこねぇ、、、と思ったら、買わなきゃいいだけの話です。

 

あとは毎週行われるレース結果を参考に、自分のプログラムの予想精度を上げるために、日々チューンアップしていくだけです!

 

プログラミングの素人でも競馬予想プログラムを作れる?

先ほど書きましたけれど、この予想プログラムのプロトタイプの開発にかかった時間は、わずか半日ほどです。

それからデータベースに、血統などのデータを入れる作業をしましたのでそれプラスαの時間はかかっていますが、全体的に24時間も開発に時間はかかっていないです。

 

本当に短時間に集中して一気に作ってしまった感じです。

 

これができるようになるのは、全くの素人がプログラマーに転職して1年くらい現場で毎日必死に働いて得た技量だと想像してください。

 

実際に未経験からプログラマーに転職した頃の話は、「29歳未経験からプログラマーに転職して2か月経った感想」に書いていますので、興味のある人はぜひ参考にしてみてくださいね^^

 

競馬予想プログラムは今までプログラミングを全くしたことがない人が、お手軽に作れるほど簡単なものでもないと思います。

やり方をわかってしまえば、案外、簡単なものですが、実際にプログラムを自分で調べて、動かすまでがとても難しいと思います。

 

インターネットで調べれば、いろいろと情報は出てくるかもしれませんが、全くの初心者には少々難しい情報ばかりな気がします。

 

本気で競馬予想を作りたいなと思っている人は、まずプログラミング言語の基本をサクッと身につけてから取り組むことをおすすめします!

競馬予想プログラムを作ってみてよかったこと

競馬予想プログラムを作ってみてよかったことは、何と言っても、自分の好きなことでプログラミングをすることができたということです。

 

プログラマーになって1年ばかりですが、初めて、自分の作りたいものを、自分自身の力でプログラミングで形にできたと思います。

 

自分がプログラマーに転職したのは、稼げる仕事だと思ったことがひとつ。

そして何より、ものづくりの仕事をしてみたいと思ったからです。

 

自分の作りたいと思ったものを、実際に自分でコーディングして形にする。

そんなことにとても憧れたのが、転職した大きな理由のひとつでした。

 

実際の仕事でも、毎日ゲームアプリ開発に携わっていますが、それは他人が企画して、依頼されたものをただ作っているだけです。

 

自分が本当にやりたいことは、自分が欲しいと思ったサービスを自分でコーディングして、実際に形にすることです。

 

それが今回、初めて競馬予想プログラムというものを作ることができて、とても満足しています。

 

実際にプログラマーに転職して、初めて、「ああ、実力がついてきたな〜〜」と感じることができました。

 

また実際に自分でプログラムを設計し、ゼロから開発してみると、プログラムを作る上で必要な様々な知識を全体的に学ぶことができました。

 

普段、業務をただこなすだけでは、すでに既存のプログラムに手を加えるだけで、実際にゼロベースでプログラムを設計し、コードを書くなんてことはありません。

 

もちろん、与えられた仕事を淡々とこなすこともとても大切なことですが、プログラムを実際に設計して、ゼロから作り出す経験があるかどうかでは、プログラマーとしての技量が天と地ほども違ってくるように感じています。

 

できはどうあれ、普段なかなか調べることがないプログラムを設計する上で必要な知識を調べながらプログラムを書くことができたのは貴重な経験でした。

 

こういった知識は、もちろん書籍やネットで調べれば出てくるので、学ぼうと思えばいつでも学べるのですが、やはり何か目的がないと、自分では学ぶことができないでしょう。

 

何か自分の作りたいものをプログラミングで形にすることは、モチベーションも保ちやすく、どんどん積極的にプログラミングを学ぶことができるので、とてもおすすめのプログラミング学習方法だと再確認いたしました。

 

これからどんどん競馬予想プログラムをチューンアップして、的中率をあげていきたいと思っています。