タグ

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

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

    これまでのあらすじ 新人の力量を測るための課題としてオセロの作成を指示したが、 指示した当人が作れないようでは話にならないので実際に作り始めた。 一先ず盤面が4×4で黒も白も人間が指す一人二役の寂しいオセロは実装できたのだが、 快適に遊ぶには大きな問題が潜んでいたのであった。 実は4×4で既に重い問題 実際に前回作成したオセロを実行すると、 ゲームが遊べるようになるまでに割りと待たされます。 それもそのはずで、あの実装は ゲーム中で取り得る局面を予め全て列挙 していたからです。 しかも4×4という最小限の盤面のオセロですらゲーム中に出現し得る局面 = ゲーム木に含まれるノード数は 284,881個 あります(※回転すると同じになる盤面等は個別に数えて、同一盤面でも手番のプレイヤーが異なるなら別と数えて、パスした場合も1個と数えています)。 そりゃあ待たされるに決まってますし、無闇矢鱈にメモ

    JavaScript でオセロを実装する(遅延評価編) | Webシステム開発/教育ソリューションのタイムインターメディア
  • シンタックスハイライトを実装する(Ruby & Parslet 編) | Webシステム開発/教育ソリューションのタイムインターメディア

    問題 世の中にはシンタックスハイライトを行うツールが既に多数存在しています。例えば以下のようなものがあります: GNU Source-highlight (コマンドラインツール)SHJS (JavaScriptでの実装; クライアントサイドで動的にハイライトする)SyntaxHighlighter (SHJSと同様) メジャーな言語やフォーマットなら標準でシンタックスハイライトの設定が同梱されていますが、 ニッチな言語やフォーマットだとまずそのような設定は存在しません。 それならば独自に設定を書けばいいのですが、 大抵のツールでは構文の定義方法が特定のパーツに該当する正規表現を並べるだけなので、 言語によっては構文の妥当な記述が不可能な場合もあります。 となると独自に実装せざるを得ません。 例えば Vim の :help ドキュメントを良い感じに Web ブラウザ上で見るためのツール を作

    シンタックスハイライトを実装する(Ruby & Parslet 編) | Webシステム開発/教育ソリューションのタイムインターメディア
  • gitでアレを元に戻す108の方法 | Webシステム開発/教育ソリューションのタイムインターメディア

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

    gitでアレを元に戻す108の方法 | Webシステム開発/教育ソリューションのタイムインターメディア
    raomito
    raomito 2012/08/21
  • Vimで心地良い自動インデント設定を書くためのポイント9個 | Webシステム開発/教育ソリューションのタイムインターメディア

    問題 Vimではデフォルトで500種類以上の言語をシンタックスハイライトすることができます。 また、シンタックスハイライト以外の設定も充実しており、 デフォルトでは約100種類の言語で専用の自動インデントが行われるようになっています。 この約100種類は普段使用する範囲ならば何の問題もないのですが、 人口比率の少ない言語で何かを書こうとしたら デフォルトでは専用インデント設定がなかったというケースは案外あります。 文法がC系の言語であれば'smartindent'で誤魔化すことができるのですが、 人口比率が少ない言語は大抵の場合 'smartindent' が使えない言語です。 という訳で独自の自動インデントの設定を書く必要が出てきました。 しかしどう書けばよいのでしょうか。 解決方法 例として Haskell 用のインデント設定を書くことにしましょう。 Haskellはメジャーな言語では

    Vimで心地良い自動インデント設定を書くためのポイント9個 | Webシステム開発/教育ソリューションのタイムインターメディア
    raomito
    raomito 2012/07/05
  • 1