専門ゼミナール学園祭展示物:横スクロールシューティングゲーム「SkyRush」公開2012年度の専門ゼミナールIでは、Pharoによるプログラミング入門を行っています。今年は横スクロールシューティングゲームに挑戦し、学園祭にて展示発表しました。2日間の展示に使用したソースの準備ができたので公開いたします。展示ではKinectを使って自機をコントロールしましたが、Kinectがなくてもゲームが試せるようにKinect無し版も公開します。公開するファイル1日目に展示したもの大森慎司が作成したゲームです。上下左右の矢印キーで自機を操作し、zキーでビームを、xキーでボムを発射します。OSCおよびKinectOSCパッケージが必要)ゲーム本体(Kinect無し版)2日目に展示したもの網野理恵が作成したゲームです。zキーでビームを発射します。OSCおよびKinectOSCパッケージが必要)ゲーム本体(Kinect無し版)Kinect関連ソフトのインストールKinectとの接続には、KinectOSCパッケージを利用しています。KinectOSCパッケージの導入や接続については、以下のページを参考にしてください。Browserで.stファイルを選び、Installボタンを押してください。起動時に読み込むため画像ファイルはPharoのイメージがあるフォルダに格納しておいてください。起動した画面をクリックしないとキーボードで操作できないので注意してください。Licenseに従います。X上のPharoで利用する際には、以下のパッチを導入してください。Browserで.csファイルを選択し、FileInしてください。Pharo前期の専門ゼミナールの後半に題材として取り上げた弾幕ゲシュタルトのソースを公開します。2011/2」の「脳内麻薬とゲーム(土本さん)」で紹介されているゲームです。「がまぐ」ではJavaのソースが公開されていますが、これをPharoで実現するためにCRCカードの作成からはじめて、各学生が自分たちで完成させるまでを学びました。ここで紹介するのは、実際の動きを見せるために作成したもので、学生には見せていないものです。いえ、JackPotと同様、とてもストレートな作り方をしており、サブクラス化もあえてしていません。Pharoにおけるゲーム作成の参考になれば幸いです。keyUp:を使用している関係上、キーコードの判定部分が機種依存になっています。Macのソースを別ファイルにして配布しています。Danmaku>keyUp:を修正してください。1.2.1を想定していますが、1.3でも動作するはずです。1.2.1の場合、CogVMの使用を強くお勧めします。ダウンロード配布時ソースコード(Mac版)配布時ソースコード(Windows版)インストールWindows,Macの環境に応じた上記ファイルをダウンロードし、適当なフォルダに置きます。Browserを開き、上記ファイルを見つけて、Filinします。openInWorldとしてください。現れた画面をクリックすると、キー入力を受け付けるようになります。遊び方としては、上下左右の矢印キーを使って飛んでくる赤い玉をよけるだけです。前期の専門ゼミナールの前半に題材として取り上げたJackPotのソースを公開します。2011/2」の特集:ゲームデザインで取り上げられている土本さんによるゲームです。「がまぐ」ではJavaのソースが公開されていますが、これをPharoに移植してゼミで使い、Pharoの使い方やSmalltalk/80の文法などを学びました。最初は配布したソースコードによってゲームの動作を把握します。itを選んで実行します。※利用しているPharoのバージョンは1.2.1です。ダウンロードするか、末尾のZIPファイルをダウンロードして展開してください。※入力キーコードの違いにより、配布時ソースコードをMac版とWindows版に分けています。★ステップ2★ゲームに対して簡単な変更を加えます。ステップ1のままではすぐに負けてしまうため、自機のスピードを2倍にします。★ステップ3★ステップ2で簡単になりすぎたゲームを改良します。具体的には宝物を取った時に待つようにします。★ZIPファイル★なお、Pharo/Squeakに不慣れなWindowsユーザーのために、ステップ1からステップ3のファイルを同梱し、ステップ1の状態になっているzipファイルを公開します。Pharoプロジェクト課題(4)後期に開発するソフトウェアは「4択問題集」です。問題とその選択肢(4つ)が表示され、利用者は選択肢の番号を入力していく。全ての出題が終わると、点数(正解数÷出題数)や正答・誤答の詳細が表示される。さまざまな学習に役立つように工夫する。課題4一組の4択問題(問題文、選択肢)を表す複合的データ(オブジェクト)を作成しなさい。クラス定義が必要な言語ではクラスを定義した上でオブジェクトを作成しなさい。課題3のプログラムのデータの扱いを、上記のオブジェクトを利用する形に書き換えなさい。3年生研修プロジェクト課題(3)後期に開発するソフトウェアは「4択問題集」です。問題とその選択肢(4つ)が表示され、利用者は選択肢の番号を入力していく。全ての出題が終わると、点数(正解数÷出題数)や正答・誤答の詳細が表示される。さまざまな学習に役立つように工夫する。課題3問題文と選択肢(4つ)を、メモ帳などを使ってファイルに格納しなさい。このとき、1行目が問題文、2〜5行目が選択肢となるようにしなさい。ファイルから問題文と選択肢を読み込んで、4択問題を出題するように課題2のプログラムを改造しなさい。3年生研修プロジェクト課題(2)後期に開発するソフトウェアは「4択問題集」です。問題とその選択肢(4つ)が表示され、利用者は選択肢の番号を入力していく。全ての出題が終わると、点数(正解数÷出題数)や正答・誤答の詳細が表示される。さまざまな学習に役立つように工夫する。課題2選択肢を適当にシャッフルして表示するように改良しなさい。3年生研修プロジェクト課題(1)後期に開発するソフトウェアは「4択問題集」です。問題とその選択肢(4つ)が表示され、利用者は選択肢の番号を入力していく。全ての出題が終わると、点数(正解数÷出題数)や正答・誤答の詳細が表示される。さまざまな学習に役立つように工夫する。課題1適当な問題文と選択肢4つを考えなさい。?問題と選択肢を表示し、(1〜4の)入力を即し、それが正解ならば「正解」、不正解ならば「不正解」と表示するプログラムを作りなさい。実行例(表示の仕方は各自で工夫すること)文字列中で同じ文字が繰り返される場合、繰り返し部分をその反復回数と文字の組に置き換えて文字列を短くする方法はどれか。