タグ

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

  • Scratchで人工知能 | Webシステム開発/教育ソリューションのタイムインターメディア

    最近は、も杓子も「人工知能」と「小学生からプログラミング」を話題にするようだ。 それで、「子供+人工知能」について考えてみた。子供向けプログラミング言語としては、MITのメディアラボが作って提供しているScratchが非常に有名であるので、これで何かAI的なものを作ってみようというのが普通の考えだろう。 Scratchのサイトに行くと、いろいろ公開されているアプリを見ることができる。簡単なゲームなどが多数あり、そのなかにはSUDOKU(ナンプレ、数独はニコリの®)というパズルを解くものも多数ある。ナンプレを解くくらいは簡単に動くだろうと思われるが、それではAIというには情けない。もっと頑張ったものを作ってみないとダメだ。 ということで、実は3年前に、ナンプレの問題を自動生成するプログラムを組んでみた。いや、正しくは、インターンシップに来た学生に作ってもらい、Scratchの評価をしたのだ

    Scratchで人工知能 | Webシステム開発/教育ソリューションのタイムインターメディア
    field_combat
    field_combat 2016/07/04
    ナンプレの問題を自動生成
  • JavaScript でオセロを実装する(ネット対戦編) | Webシステム開発/教育ソリューションのタイムインターメディア

    問題 以前、JavaScript でオセロを実装していたのですが、この実装には一つ大きな問題がありました。 AI相手にゲームをするのは、それはそれで楽しいものの、 やはりこの手のゲームは人間同士で対戦したくなるものです。 一応、あの実装は人間同士で対戦できると言えばできるのですが、 同じPCの前に座って交代しながら操作する形になので、色々と不便です。 インターネット全盛のこの時代、やはりネット対戦できるようにしたいですよね。 しかしプレイヤー間の通信やプレイ中のゲームの状態の共有は一体どうすれば良いのやら。 オセロのようなターン制の単純なゲームでさえネット対戦対応するには課題が山盛りです。 どうにかして簡単にサクサクっとネット対戦できるようにできないものでしょうか。 回答 実はFirebaseを使えば簡単にサクサクっと対応できます。 これは JSONなデータを読み書きできるストレージサービ

    JavaScript でオセロを実装する(ネット対戦編) | Webシステム開発/教育ソリューションのタイムインターメディア
    field_combat
    field_combat 2015/03/23
    firebase。ネットワーク対戦実装したいと思ってたけど、閑古鳥だとなぁと萎えるし。とはいえ機能だけ実装しちゃうのはアリかもと思えてきた
  • Railsなプロジェクトで利用している便利なGem一覧 | Webシステム開発/教育ソリューションのタイムインターメディア

    RubyにはGemと呼ばれるサードパーティのライブラリが豊富に存在します。 Gemは大変便利なもので、こういう機能ほしいなと思った際に The Ruby Toolbox や RubyGems.org や Google で検索すると大抵誰かがその機能を持ったGemを作っていたりします。 gemを利用するのも、RubyGems.orgに登録されているものならば と入力することで利用可能となります。 Gemはだれでも簡単に開発でき、審査無しですぐに公開できるため、日々大量のGemたちがRubyGems.orgに登録されています。反面、長年保守されていないGemや品質の低いGemも大量にRubyGems.orgに登録されているのが現状です。 同じ機能を持ったGemも大量に登録されていたりして、どのライブラリを利用してよいのか迷う事も多々あります。 今回は弊社プロジェクトで実際に利用している、便利な

    Railsなプロジェクトで利用している便利なGem一覧 | Webシステム開発/教育ソリューションのタイムインターメディア
  • JavaScript でオセロを実装する(AI高速化編) | Webシステム開発/教育ソリューションのタイムインターメディア

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

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

    問題 VimExcelを組み合わせて全く新しいSQLクエリーを生成する でも述べたように、諸事情で Excel を使う機会はよくあるのですが、 その時に困るのが文字列処理です。 Excel は組み込みでCLEAN、TRIM、UPPER、PHONETICなどの豊富な関数が用意されているものの、 何故か正規表現を使った文字列比較や文字列置換は標準で関数が用意されていません。 単純な処理ならば組み込み関数を組み合わせてどうにかできるものの、 「s/,+/,/g や s/,$// ができたらなぁ……」 と思うことはしばしばあります。 どうにかして Excel の数式で正規表現を使うことはできないでしょうか。 解答 結論から言うと、デフォルトの状態では正規表現を使うことはできません。 しかし以下のステップを踏むことで正規表現が利用できます (以下の例では Excel 2007 を使用しています)。

    Excelの数式で正規表現を使う | Webシステム開発/教育ソリューションのタイムインターメディア
  • 1