Coder Social home page Coder Social logo

kmycode / kmy-keiba Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 2.0 6.83 MB

競馬データを閲覧できるソフト「KMY競馬」を開発します

License: Other

C# 98.05% JavaScript 1.85% VBScript 0.04% Inno Setup 0.07%
sqlite3 csharp net6 wpf keiba jra-api nvlink jvlink

kmy-keiba's People

Contributors

kmycode avatar

Stargazers

 avatar

Watchers

 avatar  avatar

kmy-keiba's Issues

レース傾向分析画面の改良

タイム・脚質・荒れ度などでボタンを分けるのをやめて、
「傾向分析(←ここに計算後のデータをまとめる)」「対象レース一覧」の2画面だけでいいのではないか

image

坂道指数

坂で「追い越した回数―追い越された回数」を、上り・下り別に計算する

NVLink.NVCloseの呼び出しが完了しない

地方競馬DATAのNVCloseメソッドの呼び出しが完了せず、以下の処理が実行できない。
現状は地方競馬情報を取得するときに限り、Closeメソッドを呼ばないようにしている。ただしそのまま続けてOpenを呼び出すと、AlreadyOpenエラーが起きる。
いったんアプリを終了して再度起動した場合、Openはできる。

将来的に、メインアプリでデータをダウンロードする場合はDownloaderアプリを起動するという運用を想定している(メインアプリは64bitであり、64bitだとUmaConnが動作しないため)ので、現状開発に影響はないが、Closeしないままアプリを終了するというのもなんだか気持ち悪い

想定される原因

OpenGetsCloseメソッドを同じスレッド上で実行していない

対処したがだめだった。対処漏れがあるかもしれない
EntityFrameworkをはじめとしたどっかのフレームワークやライブラリの内部でConfigureAwait(false)をやっているのでは?調査が必要

このようなプログラムになっているので、await this.LoadAsyncの中のどこかにConfigureAwait(false)が1つでも混じっていればDisposeメソッドの呼び出しは別スレッドになってしまう

            using (var reader = link.StartRead(dataspec,
              option,
              this.StartTime.Value,
              this.IsSetEndTime.Value ? this.EndTime.Value : null))
            {
              await this.LoadAsync(reader, loadSpecs, true, false);
            }

想定される理由その2

エントリーポイントに[STAThread]をつけていない。
今度試してみる

レース結果→それぞれの馬のレース短評

数文字でかまわないのでなんか生成する。
どこで失速したか、追い上げがすごかったかなど
record構造体にenumやパラメータを保存して、ToStringによってコメント出力できると理想的

image

集団突破指数

コーナー通過順位で複数馬の集団に入った馬が、次のコーナー通過順位で同じ集団に入っている他の馬より先になっていた回数、またはその馬数など

ダウンロード失敗時の復帰処理

ユーザーはとかく長い処理中は離席しがち。

現状のダウンローダでは、一度ダウンロードに失敗すると
未ダウンロードのデータを処理しないまま途中で終わってしまうようになっているので、
エラーが起きても最後まで処理されるよう修正する必要がある

レース予想で、出場馬の予想脚質を上書きする機能

でもってもともとの脚質とは別の変数に入れたい
RaceHorseDataクラスで、RunningStyle(レース結果から推測した脚質評価)とExpectedRunningStyle(レース前にユーザーが予想した脚質)を共存させる感じ

ただし本アプリの展開予想機能は、上書きした脚質をもとに予想処理するようにする

レース予想→全体

この画面を作る

脚質の組み合わせによる展開予想、タイム指数、後3ハロン指数
前走、騎手成績、調教師成績などやりたい
後でissue分ける

image

ダウンローダとアプリを連携する

64bitアプリから32bitアプリを起動する方法→cmd /c downloader.exe

情報を交換する方法、おそらくファイルでやり取りする。WCFは使えない
標準出力は使えないか調べる

ダウンローダを常時起動して情報をファイルまたは標準入力でやり取り、か?

NVLinkで取得期間の終端時刻を指定しても最新まですべてのデータを取得する

JVLinkと同じ方法でNVLinkでデータ取得期間を指定した場合、
「2015年から2018年までのデータ」を取得しようとしても、
「2015年から2022年(プログラム実行時点の最新)までのデータ」を取得しようとしてしまう。

データの更新時刻が範囲外であれば取得しない処理が対策として考えられるが、
**競馬(JVLink)でも終端時刻を指定してもまれに範囲外のデータが取り込まれるケースがあるので、
その発生条件を特定できない限り、上記処理を安易に付け足すのはあまりよくないのではないかと。
最終的には、更新時刻だけでなく例えばレースのIDの中に入っている日付も分岐に使うべきか。

原因として、JVLinkとNVLinkで細かい仕様が異なるというのが考えられるが、NVLinkのマニュアルが入手できてないので詳細は不明

レースでの馬の調子を予想する機能

基本は、坂路・ウッドチップ調教の成績、体重増減から推測
ユーザーが自分で設定できる機能があればなおよい(パドックとかのデータは取得できないため)

レース予想で、展開をシミュレーションする機能

予想脚質から展開を考える
タイム指数、上がり指数から、その脚質を維持できるか・最後の直線でいけるかを、時系列でシミュレートする

シミュレーション画面で、予想脚質、天気などを変えられればなおよい

レース予想で、天気・馬場を上書きする機能

JV-Link、NV-Linkから配信されるデータとは別に、ユーザーが自分で天気や馬場を書き換えられ、それをもとにして予想できる機能
もちろんRaceDataクラスにおいて、本来の天気・馬場とは別の変数を新設し、そこに保存する

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.