Let's write β

プログラミング中にできたことか、思ったこととか

2048ゲームをRubyで

2048というゲームがなかなかプレイするのにも、AIを作るのにも面白そうだったので、 自分でいじれるように書いて見ました。 require "curses" def make_board() board = Array.new(4).map!{ Array.new( 4, nil ) } end def available_pos(board) pos = [] bo…

DIMACS CNFパーサーを書いた。

SATソルバーの実装に昨日あたり興味がわきまして、手始めにデータ構造とDIMACS CNFファイルのパーサーを書いて見ました。ファイルから読み込めるようになると今後開発するときのデバッグも用意になりますものね。 module Main where import System.Environme…

MySQLで削除のCASCADEを確認する

Pythonを久々に復習していました。復習がてらちょっとMySQLに接続してDELETEのCASCADEが連鎖的に影響を与える範囲を一覧するスクリプトを書きました。

JavaのSwingでネストしたJSplitPaneを扱う

今とあるツールを久々にJavaのSwingで書いている時に、複数のコンテンツをパッキングしてその間にサイズ調整の棒を表示してユーザーがリサイズできるようにする必要が生じました。JSplitPaneをあてにしていたのですが、どうも奴は2つのコンポーネントしか扱…

Mozart-Oz v2をMacOSXのHomeBrew経由のEmacs.appでつかう。

Mozart.appが更新されていた。 以前の記事ではMozart 1.4.0という少し古いバージョンをEmacs.appで使う方法について書いていたのですが、Mozartのホームページに更新がかかったことを知り、確認してみるとページも綺麗になりMozart-Oz v2という少し新しくな…

Business Card Raytracer in CL.

Redditを眺めていたらHaskellでRayTracingをしてみたよ的な記事が流れてきました。 So I (kind of) made a Haskell clone of the business card Ray Tracer : haskellその説明を眺めてみると何やら名刺サイズのレイトレーシングというものが話題になっていた…

CodeIQのナムドット問題。僕の回答

結城先生がCodeIQに定期的に出題なさっているのですが、今回のナムドット問題をやってみました。 挑戦者求む!【アルゴリズム】古代文献を復元しよう! by The Essence of Programming 結城 浩│CodeIQ 問題の出力に着目してみると、ドットでくぎられている数…

Oz(Mozart)環境をMacOSX 10.8でセットアップした

Ozという言語マルチパラダイム言語があるようで、あまり僕の周囲にはユーザーがいないように 見えるのですが、それでもOzはすごいすごいと聞くので、体験してみねばという事で開発環境の 整備をしました。最近iOS関連の開発をする事になってMacOSXを使ってい…

ClojureでWebApp開発に必要なN個のこと

PerlでWebAppの開発に必要なN個のこと - Islands in the byte streamのClojure版です。あるプログラミング言語で実際にWebAppを開発できるようになるまで、何が必要だろうか。言語仕様の習得は終えているとしよう。おそらく、最低限以下のような知識が必要だ…

NasmでLifeGame

更新が非常に空きました。久々にアセンブラです。 %include "stdio.inc" section .bss array0: resb 8 array1: resb 8 flag: resb 1 section .text global start start: mov rcx,flag mov byte [rcx],0 mov rax,1 mov rbx,0 mov rcx,1 call setCell mov rax,…

SECD Machine in Lisp

;; List Utilities (defun head (lst) (car lst)) (defun tail (list) (cdr list)) ;; Lambda Expression (defun lam-expr (var body) `(lambda ,var ,body)) (defun is-lambda (list) (and (listp list) (eql 'lambda (car list)))) (defun bv (lam) (cadr …

ちょっとした物

ちょっとした物です。 ちょっとした物その2、オートマトンをDOT言語に。