2016.04.16 新天地へ
KOMARIです。

掘木さんの(´・ω・`)催促を受けて、C++をいじっています。
カテゴリを見て気づいた方もいるでしょう。
そう、あのねこりすのdllを自分で作ってみることにしました。
そもそもねこりすってなんぞや?って方はぜひ遊んでね(宣伝)
(・ω・)こっからだうんろーど(・ω・)

で、このねこりすのパズルモードでは、ランダム生成された問題を裏で解けるかどうか判定したりしてます。
ねこりすを制作していた当時、技術がなかった私のために、そのためのDLLを掘木さんが組んでくれました。
(HSP初めてまともに作ったのがねこりすだったりする)
そのDLLに問題とカーソルの形を投げると、最短手(カーソルの位置と回転状態)を教えてくれます。
そんなDLLがあったわけですが、結局私が組みなおすことは今までありませんでした。

つい先日、掘木さんと久々に話している時に、DLLを組みなおしたらどうやとの話を受けました。
まあ、前からこのDLLの組みなおしに関しては何回か話があがっていました。
掘木さん曰く、「一回ガチのアルゴリズムと格闘すると、いい経験になるでぇ(・ω・)」とのことです。

そんなこんなで5日ほど前からDLLを組んでみてるわけですが…(・ω・)
組むこと自体は簡単なのですが、最適化(答えが出るまでの時間の短縮)に苦労しました。
アルゴリズムそのものの改変に始まり、変数の宣言の仕方、格納方法、最適なコンテナの選択、コンパイラに渡すコマンドラインの設定…etc
動くものが出来上がってからは、掘木さんが作ったDLLより速いDLLを作ることを目標にプログラミングしていました。

そして今日やっとできあがりました。
テストに使った問題は以下です。

Z型 0は空白
043400
033130
032110
024210
331421
344313

2日前に3時間39分8秒389かけて答えを捻出したものがこちら。

nekodll1.jpg

どうやら最短手は7手のようです。手ごわいですね。
まあ、答えが出るまでに時間がかかりすぎて使い物になりませんけどね。
最適化に詰まり、掘木さんに相談して助言を受けました。
それは、明らかに大幅に速度をあげるものだったので、早速取り入れました。
実際、とあるリストの型<vector>を<boost::set>にしただけで、速度が格段にあがりました。
<std::set>だと、"operator<"の書き方が悪いのか、うまく動かないので、boostライブラリの方を使ってみました。(リストの中の順番にこだわりは全くありませんからね)
ということで、今日改めて実行した結果がこちらです。

nekodll2.jpg

うーん、最適化ってすばらしい(・ω・)   おしまい



で、結局掘木さんのDLLの速度には勝てたわけです。
なおこっちがDLLを作ることにしたのを見て、掘木さんももう一度DLLを作り直すことにしたようです。
そのDLLに速度負けたらまた作り直し?(ゲー'A`ェ)…ソンナノイヤダ
まあ、自分としては、とても満足いくものがてきたと思います。
このDLLを組んだことで、少しだけC++(とアルゴリズム)の世界を知ることができたような気がします。
いい経験になりました。経験がないと鍛えられないもんね。



そんなこんなで、プログラミングのモチベがあがったから、なんかゲーム作れたらいいなあ…。
では、また次回の記事でお会いしましょう(ノ・ω・ヽ)
2013.04.04 ひっそりと
ひっそりと登場 掘木です。まだ生きてますよ

本家ねこりすはKOMARIさんが内部を組んでいますが、それとは完全に独立した形でこちらでpazzlesolverを組んでいたのでその中に使われてるルーチンでも書いていこうかなと。

あいつの内部はC++になりそこなったCで記述された移動パターン全数探査なツリー構造を作ることで解いてます。非常に鈍いです。それ以外思いつかんかった\(^o^)/
非常に鈍いとはいえ、それなりにメモリ節約、処理速度向上のための無駄撤去は徹底したつもりなのです。

主にこのあたりでも書いておこうかなと。
1.縦横3連消しチェックの能率化
2.メモリの節約案

#以降はC記述のHSPの見栄えに近い謎流儀なソースを含みます。
... 続きを読む
こんにちは、KOMARIです。

ねこりすについてのお知らせです。

バージョン1.00を公開して以降、結構な頻度で更新を行っております。

バグをみつけたかたはご一報ください。

私自身もユーザーとしてプレイをし、バグの発見に勤しんでおります。

パズル生成速度の向上にむけて、掘木氏にDLLの改善を申し出たところです。

この場を借りて、改めて、忙しい中DLLを作成してくれた掘木氏に感謝をしたいと思います。

ちなみに私は今日やっと解禁要素をすべて出すことができました・・・いやぁしんどかったです。

ねこりすの完成度のさらなる向上にむけて一層努力していく所存です。



ところでダウンロードはこちらのホームページからできますのでお気軽にしてみてください。

http://mathyippee.web.fc2.com/

パズルを解いたり、ノーマルモードの比率短縮は結構しんどいし時間もかかりますけど達成感はほんとにあります。



特にパズルは掘木氏が5時間かかって解けなかった問題もあります



それではまた次回の記事でお会いしましょう!
さて、KOMARIです。

とうとう、ねこりす(暫定完成版)が完成しました。

ぜひともDLしてデバッグやらなんやらして楽しく遊んでくださいね!

ダウンロードはこちらのホームページから。

http://mathyippee.web.fc2.com/



↑すごく・・・コピペです。

ダウンロードは近日中にできるようになると思います!

zzz氏にアップを頼んでおきます。

ちなみに、今ダウンロードできるのは旧verなので注意してください!
さて、KOMARIです。

とうとう、ねこりす試公開verのアップをしました。

ぜひともDLしてデバッグやらなんやらして楽しく遊んでくださいね!

ダウンロードはこちらのホームページから。

http://mathyippee.web.fc2.com/

それでは。
... 続きを読む