タグ

ブックマーク / www.timedia.co.jp (3)

  • JavaScript でオセロを実装する(AI高速化編) | Webシステム開発/教育ソリューションのタイムインターメディア

    これまでのあらすじ まともなオセロの対戦AIの作成を開始したものの、 「4手先を読む」だけでも検討にかかる時間が長く、 とても快適に遊べるとは言えない状態でした。 これでは肝心のAIの形勢判断を調整する以前の問題であり、 先読みする手数を増やしてAIの「腕前」を上げることも困難です。 先読みする手数を減らせば快適に遊べるようにはなりますが、 それでは「目先のことしか考えない」弱いAIにしかなりません。 どうにかしてAIの動作速度を改善できないものでしょうか。 ボトルネックはどこにあるのか これまでのオセロの作成過程を振り返ってみましょう。 最初に4×4の最小盤面で一人二役で遊ぶものを実装しました。 これはほとんどの部分が関数型で書かれた明瞭簡潔な実装だったのですが、 その引き換えに全局面を事前に計算するという超富豪的な実装になっていました。 この問題に対しては各局面の計算を遅延評価すること

    JavaScript でオセロを実装する(AI高速化編) | Webシステム開発/教育ソリューションのタイムインターメディア
  • 美しいプログラムを書く(業務用Webアプリケーション保守編) | Webシステム開発/教育ソリューションのタイムインターメディア

    あらすじ あなたはとある業務用 Web アプリケーションの開発・保守を任されています。 このアプリケーションは ASP.NET を用いて作成されており、 クライアントサイドは一部 jQuery を利用してナウなヤングにバカウケの UI を実装しています。 さて、今回は 商品情報の変更履歴を一覧表示する。一覧から2つのバージョンを選んで差分を表示できるようにする。 という機能を実装することになりました。 これ自体はちゃちゃっと実装し、以下のようなHTMLが生成されるようにしました: ... <table> <tr> <th>A</th> <th>B</th> <th>変更日時</th> <th>変更者</th> </tr> <tr> <td><input type="radio" name="new_version" value="9"/></td> <td></td> <td>2012-0

    美しいプログラムを書く(業務用Webアプリケーション保守編) | Webシステム開発/教育ソリューションのタイムインターメディア
  • gitでアレを元に戻す108の方法 | Webシステム開発/教育ソリューションのタイムインターメディア

    以前gitで一度行った変更をなかったことにする方法4つを紹介しましたが、 日常的に git を使用していると他にも様々な 「なかったことにしたい」「元に戻したい」 という状況に遭遇します。 そのひとつひとつについて対処方法を紹介していきます。 目次 問題1: ライブラリの新機能を試すためにあれこれ適当なコードを書いてみた。でももう要らない。問題2: トピックブランチをマージしたけど実はまだ不完全だった。マージをやり直したい。問題3: リリース後に発覚したバグ。原因は30日前に自分が行ったコミットだった。なかったことにしたい。問題4: 新しいコミットしようとして間違えてgit commit –amendで書き換えてしまった。元に戻したい。問題5: 色々作業していたら作業ディレクトリの内容が混沌としてきた。一度綺麗な状態にしたい。問題6: 作業ディレクトリにゴミファイルが溜まってきた。一度綺麗

    gitでアレを元に戻す108の方法 | Webシステム開発/教育ソリューションのタイムインターメディア
  • 1