2013年10月28日月曜日

シミュレーター(コンソール版)



この間のWindowsForm版の奴はあまりにも計算速度が遅いし、自分のコードがわけわからなくなったので(こっちがメインの理由)もっかい下地から作りなおして

・リーグ、チーム、プレイヤーの数を自由にユーザーが作成可能
・1チームだけだと試合と言えないので2チームで試合を可能
・誰が出塁しているのかを保存してランナーの個性をつける
・試合結果を年度ごとに保存してそのサマリーを書き出せる
・シミュレータのベースとなってるのはBattingRunsという考え方なのですが、その係数をいじっていろいろな条件でシミュレータを動かす
・一軍登録、二軍登録を作る

という機能を加えてみました。コンソールだけど。
その結果クラスがめちゃくちゃ大量に発生してしまって管理が大変です…
オブジェクト指向の設計の方法とかいう本をちょいちょい読みながら作ってるんですが、クラスの量が大量になってくるとオブジェクト指向の良さが生きてくる感じがします。
最初の頃に比べてだいぶC#の用語(メソッドとかプロパティとか)の意味もだいぶつかめてきました。C#の技術本読んだだけで理解したつもりになってたのが作ってる途中でどんどんわかってきて、前自分が書いたコードが汚くみえて書き直すことばっかりです。なんかこうやっていろいろわかっていくのが実感できるのは楽しいです。
これからオブジェクト指向も勉強しないといけないですね。

2013年10月24日木曜日

C#でデータベースを作る

野球シミュレーターで計算した値を何処かに保存しとくのに、いちいちCSVファイルで出力するの面倒臭いし毎回読み込まないといけないし…って悩んでいたんですが、いちいち書き込むんじゃなくデータベースを使えばええんでは?という助言をもらったので試すことに

まず、そもそもの問題としてデータベースが何者なのか全くわかってない(もちろん作り方も全くわからない)上にどうやってアクセスをすればよいのかもわからず、Googleにいろんな検索ワードをぶち込みながら色々なページを読みかじってましたが、数年前のちょっと古い記事がヒットすることも多くて今の自分の環境(VisualStudio2012)でも動くのかわからないし、やたらと僕からすると高度な内容がつらつら続いてて読むのが辛かったりとだいぶ時間をロストしました

おぼろげに

・SQL?とかいう形式でやりとりをするらしい
・データベースにアクセスするやり方(ライブラリ?)がいろいろあるらしい
・どうやらデータベースをサーバーに置いてそれにアクセスすることもできるらしい

とかいうことはわかったような気がしてるんですが、めっちゃとんちんかんなこと言ってる気がしてならないです(間違ってたらごめんなさい)
でまあ最終的にこの記事にあるSQLAerverCompactというのを使うことにしました。Microsoftがタダでくばってるアクセス用のライブラリらしいですね、Microsoft素晴らしい
http://hoshii-mono.com/features/subcategory-16.php

これで今のところうまく通信出来てるみたいなのでコイツ使いながらやってきたいと思います

2013年10月21日月曜日

C#で打線シミュレーターを作る

前にシミュレーターを作りかけで投げ出してたんですが、今度はWindowを出して普通のソフトっぽく動かせるようなやつを作ってみようかなと思いたって、ここ2日ぐらいこないだ作ってたコンソールアプリを流用しながら、Windowsフォームを使って(ようするに普通のソフトみたいな外観で)ユーザーがスタメンの選手とか選手の成績とかの設定をいじって、その時の打線の様子をシミュレートできるもんを作ってました。

スクリーンショットはこんな感じ。なんか適当に配置していたらやたらと横長になってしまいました



元々のシミュレーターは、プログラムの中身に誰をスタメンにするのかとかその選手がどのぐらい打てるのかっていう情報を埋め込まないといけないちょっと不便なものだったので追加の機能として

・今読み込まれている選手データを表示してその成績を表示する
・ユーザーが新しい選手データを登録できる
・スターティングメンバーを選手データから選択して配置する
・シミュレーター本体の処理がめっちゃ重いので、今どのぐらい処理が終わっているかを見れるようにする

をできるようにしました。
といっても、読み込むデータに制限が多すぎたりちょっと不便なことも多いので改良しなくちゃいけないことも多いので、もうちょっと柔軟性をもたせたプログラムに変更していかないと、っていう状態です。

それにまだ外部からCSVで選手データを読み込んだり、シミュレーターを動かした結果を保存したりとか、結果をグラフでわかりやすく(できればかっこよく)表示する、みたいな基本的な機能もできていないので当分はそれを実装するのを目標にちょいちょい改良できればなぁと思ってます。

2013年10月14日月曜日

遂に

カープが遂にAクラス&CSファーストステージ全勝通過!素晴らしきことです

CSファイナル二戦目のチケットを運良く手に入れることができてたのでもしかしたらカープ戦が見れるかも…とは思ってましたがまさか本当に来るとは!

張り切って応援してきたいと思います!このまま日本一行ってしまえ!