Clojureでゲーム作りたい

Clojureでゲームプログラミングその1 実験編|ざる魂

上のサイトを見て、Leiningenを使って書き直してみました。

作業メモなので説明不足のところがあるかもしれません。

環境

OS:Windows7

Microsoft Windows [Version 6.1.7601]

Leiningen

lein -v

Leiningen 2.3.4 on Java 1.8.0 Java HotSpot(TM) 64-Bit Server VM

作業

lein new sample

cd sample

vim project.clj

(defproject sample "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.5.1"]]
  ;以下を追加
  :main sample.core)

vim src\sample\core.clj

(ns sample.core)
(import (javax.swing JFrame))

(defn -main [& args]
  (def frame (JFrame. "Clojure SampleGame")) 
  (doto frame
  (.setSize 640 480)
    (.setVisible true)))

lein run

ウインドウが表示されたら成功です。

残りは明日以降に。

追記:実行可能Jarファイルの作成

vim project.clj

(defproject sample "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.5.1"]]
  :main sample.core
  ;以下を追加
  :aot [sample.core])

vim src\sample\core.clj

(ns sample.core
  ;nsに以下を追加
  (:gen-class))
(import (javax.swing JFrame))

(defn -main [& args]
  (def frame (JFrame. "Clojure SampleGame")) 
  (doto frame
  (.setSize 640 480)
    (.setVisible true)))

lein uberjar

java -jar target\sample-0.1.0-SNAPSHOT-standalone.jar

SICPのための環境設定

SICP(http://mitpress.mit.edu/sicp/)を読み進めるためのEmacs設定のメモ。

CentOS7で進めていますが、他LinuxBSD等でも大丈夫なはずです。

原文 Welcome to the SICP Web Site

和訳 計算機プログラムの構造と解釈 第二版

1.Gaucheのインストール

CentOSGaucheをインストールします。

mkdir tmp

cd tmp/

wget http://prdownloads.sourceforge.net/gauche/Gauche-0.9.4.tgz

tar zxvf Gauche-0.9.4.tgz

cd Gauche-0.9.4/

./configure && make && make install

無事インストールを終え、

gosh

とタイプしてGaucheインタプリタが起動したら成功です。

2.Emacsの設定

O'Reilly Japan - プログラミングGauche

上記の本に記載されている方法を丸コピします。

~/.emacs.d/init.elを作成し、以下のように記述します。

;~/.emacs.d/init.el
(modify-coding-system-alist 'process "gosh" '(utf-8 . utf-8))
(setq scheme-program-name "gosh -i")
(autoload 'scheme-mode "cmuscheme" "Major mode for Scheme." t)
(autoload 'run-scheme "cmuscheme" "Run an inferior Scheme process." t)
(defun scheme-other-window()
  "Run scheme on other window"
  (interactive)
  (switch-to-buffer-other-window
    (get-buffer-create "*scheme*"))
  (run-scheme scheme-program-name))

(define-key global-map
  "\C-cs" 'scheme-other-window)

設定が済んだら、

emacs test.scm

などとタイプし、Emacsを起動します。

Gaucheの起動 C-c s
バッファの移動 C-c o
S式の評価 C-x e

以上

書き初めGo言語

きっかけ

以前から気になっていたGo言語を始めてみようと思います。

私はWindowsをメインで使っているので、GUIなアプリを作れる環境をセットアップしてみます。 GUIライブラリにはWALKを使います。

参考 WindowsでGo言語でGUIするにはWALKがいいかもしれない - Qiita

1.Goをインストール

go1.4.windows-amd64.msiを使ってGoをインストールします。 GOROOTとGOPATHを設定します。

2.Gitをインストール

後ほど、

go get github.com/lxn/walk

のようにコマンドを叩いて、ライブラリをインストールするのですが、その際にGitが必要となります。

以下のページからGit-1.9.5-preview20141217.exeを用いてgitをインストールします。

注意点として、コマンドプロンプトからgitが使えるようにパスを通す設定を選んでインストールしてください。デフォルトではGit for Bashからしか使えない(パスを通さない)設定になっています。

3.WALKのインストール GithubのページにあるReadmeに従ってセットアップします。

lxn/walk · GitHub

test.go, test.manifestを用意し、walkとrsrc toolをインストールしてから、go buildをします。 するとGo.exeが生成されます(※生成されるファイル名だけ何故かReadmeと違いました)。

ReadmeのSample Outputが表示されれば完了です。

Go言語でGUIミニゲームとか作れるようになりたいなぁ…。