第7回 基礎プログラミング II レポート課題 氏名:川島哲 学籍番号:c1090489 語学クラス:英語3 コース(系):政策マネ A. a.添付ファイルreadme.rb参照 b. b-1 後期以降の作成を眺めていたところ、解説文を加えれば面白くなるのでと思い作 成にあたった。 b-2 プログラム名:gunex.rb #!/usr/koeki/bin/ruby $KCODE="e" #EUC変換 def timer(ex) #おまけ機能用の計算メソッド ex * 60 end hard = Hash.new(0) hard["ファミリーコンピュータ"]=25000,"NES","任天堂","最もヒットしたゲーム機、初期はそんなに売れてなかったが「スーパーマリオブラザーズ」を皮切りに大ヒットをとばす。初期はアーケードゲームの移植を売りにしてた。2コンにマイクがある理由はボタンつけるより安かったから。" hard["メガドライブ"]=21000,"GENESIS","セガ","驚異の16ビットを名乗りアメリカで売れたセガのゲーム機、romカセットだが周辺機器によりCDも再生できる。電話線を繋なぐことで出来るゲーム図書館等のお陰で「セガは時代が早すぎた」とも言われている。" hard["スーパーファミコン"]=25000,"SNES","任天堂","表示できる色数が増え、拡大縮小機能を持った。この頃からソフト一本約一万円という時代が始まる。人工衛星からゲームを配信する「サテラビュー」というサービスもあったがこちらは余り普及しなかった。" hard["プレイステーション"]=39800,"PlayStation","SCE","SONYがゲーム業界に初参戦、CDーROMを使用した大容量のゲームが特長。3DポリゴンとFFが参入したことで一躍人気商品になる。後年にはサイズが小さくなりモニターもついたタイプも発売された。" hard["セガサターン"]=44800,"SEGA SATURN","セガ","PSと同時期にセガが送りだしたディスクゲーム機、CDを使っているがソフトによっては拡張メモリとなるROMカートリッジを指さなければ起動しないものもあった。特殊なチップを積んでいるためゲーム自体の移植が困難であると言われている。" hard["ピピンアットマーク"]=64800,"Pippin@","バンダイ,アップル","アップルとバンダイが共同開発したインターネットが出来るハード。しかし高い上にソフトのラインナップが微妙なのですぐに撤退した。しかしカラオケ店などでは現役稼働中とか" hard["バーチャルボーイ"]=15000,"VIRTUAL BOY","任天堂","家庭用3Dゲーム機…なのだが双眼鏡にスタンドがついたようなデザインで、プレイヤーはテレビではなく(そもそもテレビに繋がない)その双眼鏡部分を覗く形でプレイする。プレイする時の姿勢と目に非情に悪い。任天堂唯一の失敗作と名高い" hard["ニンテンドウ64"]=25000,"NINTENDO64","任天堂","任天堂が64bitを謳って出したハード。操作系統に3Dスティックを設置。コントローラーに拡張スロットを設け「振動パック」や「GBスロット」が取り付けられる。ゲーム機史上ではじめてコントローラースロットが4つになったハードでもある。" hard["ドリームキャスト"]=29900,"Dreamcast","セガ","セガサターンの後継機。電話線を繋げてインターネットが出来る他コントローラーに小型メディア「ビジュアルメモリ」を着脱できる。初期出荷で力尽き大量の在庫を抱えセガのハード事業撤退の引き金となった。あと起動音がうるさい" hard["プレイステーション2"]=39800,"Play station","SCE","PSの後継機。DVDビデオ再生機能があり爆発的に売れる要因となった。またグラフィックの質も高くDC、64とのハード戦争の勝者となる。内蔵しているCPUチップが軍用に使えるため国外持ち出し禁止など噂がたった。結果として約10年もの間ソフトが供給されることとなる。" hard["ゲームキューブ"]=25000,"Gamecube","任天堂","PS2以上のグラフィックを持ち、DVD以上の容量を持った独自規格のディスクを使用している。しかしソフトが集まらずどんどん値段が落ち最終的にはオープン価格にまで落ち込んだ。それでも任天堂は黒字だったとか。" hard["Xbox"]=34800,"Xbox","マイクロソフト","マイクロソフトが放ったデカイゲーム機。これとGC、ps2では一番スペックが高いのだが日本ではほとんど売れなかった。それでも世界では大ヒットゲームのひとつとして名を連ねてる。" hard["PCエンジン"]=24800,"TurboGrafx-16","NEC","CDROMを使用した初のゲーム機、音声がでるようになったハドソンとNECの合作。細かいところだとソフトがそのままCDサウンドトラックになる。" print("収録ゲーム機一覧\n") print("ファミリーコンピュータ、メガドライブ、スーパーファミコン、プレイステーション、ピピンアットマーク、プレイステーション2、PCエンジン、ゲームキューブ、Xbox、ドリームキャスト\n") dx = 0 STDERR.print("1を入力で一覧モード、2を入力で検索モード、3でタイマー機能になります。") dx = gets.chomp.to_i if dx == 1 #コマンド1、一覧表示させるモード for game , price in hard #一覧を表示させる #gameをkeyに設定,priceを関連付ける print("\n") #テンプレ文 printf("機種名:%s\n",game) printf("海外名:%s\n",price[1]) printf("値段:%d円\n",price[0]) printf("会社名:%s\n",price[2]) printf("解説\n%s\n",price[3]) print("\n") end elsif dx == 2 #コマンド2、エラーしない限りは調べたら即終了 while true STDERR.print("上記の中から見たいハードを選択してください\n") why = gets.chomp game = hard[why] #p game.key?(price) if game == 0 #エラー文、どれにも当てはまらない場合 print("\nエラー\n入力ミスではありませんか?\n略称には対応してませんので正式名称で入力してください。\n") #elsif why == "q" #将来実装予定途中終了機能 #break else print("\n") #コマンド1選択時と同じテンプレ文 printf("機種名:%s\n",why) printf("海外名:%s\n",game[1]) printf("値段:%d円\n",game[0]) printf("会社名:%s\n",game[2]) printf("解説:\n%s\n",game[3]) print("\n") break end end elsif dx == 3 STDERR.print("おまけのタイマー機能、タイムアタックにどうぞ\n時間を入力してください(分):") tt = gets.chomp.to_i timer(tt).downto(1) do |start| printf("残り%d 秒 現在%d秒 \n", start,timer(tt)-start) #経過時間と残り時間 sleep(1) end printf("%c[%dm TIME UP\n",0x1b,35) #タイムアップ、色を変えて目を惹く形にした。 end b-3. 元にしたプログラムとして過去に自分が課題用に作ったhashタイプのプログラム (hash_choice.rb,hash_ary_print)を混ぜて作ってある、またタイマー機能は講義ページのロケット発射プログラム を改変した。 (改良点) )hash_ary_print.rbのテンプレ文を項目ごとに行を変え解説文を加えた。 )hash_choice.rbのエラー文をループさせるタイプに変更、またコマンド入力で 該当データを出力する方式に変更 )講義プログラムdownto_rocket.rbを自分で時間を調整出来るように変更、また 経過時間も表示する形にした。 b-4. 実行画面 コマンド1を入力した場合 pan{c109048}% ./gunex.rb [~/Ruby] 収録ゲーム機一覧 ファミリーコンピュータ、メガドライブ、スーパーファミコン、プレイステーション、ピピンアットマーク、プレイステーション2、PCエンジン、ゲームキューブ、Xbox、ドリームキャスト 1を入力で一覧モード、2を入力で検索モードになります。1 機種名:ゲームキューブ 海外名:Gamecube 値段:25000円 会社名:任天堂 解説 PS2以上のグラフィックを持ち、DVD以上の容量を持った独自規格のディスクを使用している。しかしソフトが集まらずどんどん値段が落ち最終的にはオープン価格にまで落ち込んだ。それでも任天堂は黒字だったとか。 機種名:バーチャルボーイ 海外名:VIRTUAL BOY 値段:15000円 会社名:任天堂 解説 家庭用3Dゲーム機…なのだが双眼鏡にスタンドがついたようなデザインで、プレイヤーはテレビではなく(そもそもテレビに繋がない)その双眼鏡部分を覗く形でプレイする。プレイする時の姿勢と目に非情に悪い。任天堂唯一の失敗作と名高い 機種名:スーパーファミコン 海外名:SNES 値段:25000円 会社名:任天堂 解説 表示できる色数が増え、拡大縮小機能を持った。この頃からソフト一本約一万円という時代が始まる。人工衛星からゲームを配信する「サテラビュー」というサービスもあったがこちらは余り普及しなかった。 機種名:PCエンジン 海外名:TurboGrafx-16 値段:24800円 会社名:NEC 解説 CDROMを使用した初のゲーム機、音声がでるようになったハドソンとNECの合作。細かいところだとソフトがそのままCDサウンドトラックになる。 機種名:セガサターン 海外名:SEGA SATURN 値段:44800円 会社名:セガ 解説 PSと同時期にセガが送りだしたディスクゲーム機、CDを使っているがソフトによっては拡張メモリとなるROMカートリッジを指さなければ起動しないものもあった。特殊なチップを積んでいるためゲーム自体の移植が困難であると言われている。 機種名:ニンテンドウ64 海外名:NINTENDO64 値段:25000円 会社名:任天堂 解説 任天堂が64bitを謳って出したハード。操作系統に3Dスティックを設置。コントローラーに拡張スロットを設け「振動パック」や「GBスロット」が取り付けられる。ゲーム機史上ではじめてコントローラースロットが4つになったハードでもある。 機種名:ファミリーコンピュータ 海外名:NES 値段:25000円 会社名:任天堂 解説 最もヒットしたゲーム機、初期はそんなに売れてなかったが「スーパーマリオブラザーズ」を皮切りに大ヒットをとばす。初期はアーケードゲームの移植を売りにしてた。2コンにマイクがある理由はボタンつけるより安かったから。 機種名:Xbox 海外名:Xbox 値段:34800円 会社名:マイクロソフト 解説 マイクロソフトが放ったデカイゲーム機。これとGC、ps2では一番スペックが高いのだが日本ではほとんど売れなかった。それでも世界では大ヒットゲームのひとつとして名を連ねてる。 機種名:ピピンアットマーク 海外名:Pippin@ 値段:64800円 会社名:バンダイ,アップル 解説 アップルとバンダイが共同開発したインターネットが出来るハード。しかし高い上にソフトのラインナップが微妙なのですぐに撤退した。しかしカラオケ店などでは現役稼働中とか 機種名:メガドライブ 海外名:GENESIS 値段:21000円 会社名:セガ 解説 驚異の16ビットを名乗りアメリカ売れたセガのゲーム機、romカセットだが周辺機器によりCDも再生できる。電話線を繋なぐことで出来るゲーム図書館等のお陰で「セガは時代が早すぎた」とも言われている。 機種名:プレイステーション2 海外名:Play station 値段:39800円 会社名:SCE 解説 PSの後継機。DVDビデオ再生機能があり爆発的に売れる要因となった。またグラフィックの質も高くDC、64とのハード戦争の勝者となる。内蔵しているCPUチップが軍用に使えるため国外持ち出し禁止など噂がたった。結果として約10年もの間ソフトが供給されることとなる。 機種名:ドリームキャスト 海外名:Dreamcast 値段:29900円 会社名:セガ 解説 セガサターンの後継機。電話線を繋げてインターネットが出来る他コントローラーに小型メディア「ビジュアルメモリ」を着脱できる。初期出荷で力尽き大量の在庫を抱えセガのハード事業撤退の引き金となった。あと起動音がうるさい 機種名:プレイステーション 海外名:PlayStation 値段:39800円 会社名:SCE 解説 SONYがゲーム業界に初参戦、CDーROMを使用した大容量のゲームが特長。3DポリゴンとFFが参入したことで一躍人気商品になる。後年にはサイズが小さくなりモニターもついたタイプも発売された。 コマンド2を入力(該当項目があった場合) pan{c109048}% ./gunex.rb [~/Ruby] 収録ゲーム機一覧 ファミリーコンピュータ、メガドライブ、スーパーファミコン、プレイステーション、ピピンアットマーク、プレイステーション2、PCエンジン、ゲームキューブ、Xbox、ドリームキャスト 1を入力で一覧モード、2を入力で検索モードになります。2 上記の中から見たいハードを選択してください メガドライブ 機種名:メガドライブ 海外名:GENESIS 値段:21000円 会社名:セガ 解説: 驚異の16ビットを名乗りアメリカ売れたセガのゲーム機、romカセットだが周辺機器によりCDも再生できる。電話線を繋なぐことで出来るゲーム図書館等のお陰で「セガは時代が早すぎた」とも言われている。 (該当項目がなく、追加で入力した場合) pan{c109048}% ./gunex.rb [~/Ruby] 収録ゲーム機一覧 ファミリーコンピュータ、メガドライブ、スーパーファミコン、プレイステーション、ピピンアットマーク、プレイステーション2、PCエンジン、ゲームキューブ、Xbox、ドリームキャスト 1を入力で一覧モード、2を入力で検索モード、3でタイマー機能になります。2 上記の中から見たいハードを選択してください PC-FX エラー 入力ミスではありませんか? 略称には対応してませんので正式名称で入力してください。 上記の中から見たいハードを選択してください ファミリーコンピュータ 機種名:ファミリーコンピュータ 海外名:NES 値段:25000円 会社名:任天堂 解説: 最もヒットしたゲーム機、初期はそんなに売れてなかったが「スーパーマリオブラザーズ」を皮切りに大ヒットをとばす。初期はアーケードゲームの移植を売りにしてた。2コンにマイクがある理由はボタンつけるより安かったから。 コマンド3を入力(タイマーを1分にセット) pan{c109048}% ./gunex.rb [~/Ruby] 収録ゲーム機一覧 ファミリーコンピュータ、メガドライブ、スーパーファミコン、プレイステーション、ピピンアットマーク、プレイステーション2、PCエンジン、ゲームキューブ、Xbox、ドリームキャスト 1を入力で一覧モード、2を入力で検索モード、3でタイマー機能になります。3 おまけのタイマー機能、タイムアタックにどうぞ 時間を入力してください(分):1 残り60 秒 現在0秒 残り59 秒 現在1秒 残り58 秒 現在2秒 残り57 秒 現在3秒 残り56 秒 現在4秒 残り55 秒 現在5秒 残り54 秒 現在6秒 残り53 秒 現在7秒 残り52 秒 現在8秒 残り51 秒 現在9秒 残り50 秒 現在10秒 残り49 秒 現在11秒 残り48 秒 現在12秒 残り47 秒 現在13秒 残り46 秒 現在14秒 残り45 秒 現在15秒 残り44 秒 現在16秒 残り43 秒 現在17秒 残り42 秒 現在18秒 残り41 秒 現在19秒 残り40 秒 現在20秒 残り39 秒 現在21秒 残り38 秒 現在22秒 残り37 秒 現在23秒 残り36 秒 現在24秒 残り35 秒 現在25秒 残り34 秒 現在26秒 残り33 秒 現在27秒 残り32 秒 現在28秒 残り31 秒 現在29秒 残り30 秒 現在30秒 残り29 秒 現在31秒 残り28 秒 現在32秒 残り27 秒 現在33秒 残り26 秒 現在34秒 残り25 秒 現在35秒 残り24 秒 現在36秒 残り23 秒 現在37秒 残り22 秒 現在38秒 残り21 秒 現在39秒 残り20 秒 現在40秒 残り19 秒 現在41秒 残り18 秒 現在42秒 残り17 秒 現在43秒 残り16 秒 現在44秒 残り15 秒 現在45秒 残り14 秒 現在46秒 残り13 秒 現在47秒 残り12 秒 現在48秒 残り11 秒 現在49秒 残り10 秒 現在50秒 残り9 秒 現在51秒 残り8 秒 現在52秒 残り7 秒 現在53秒 残り6 秒 現在54秒 残り5 秒 現在55秒 残り4 秒 現在56秒 残り3 秒 現在57秒 残り2 秒 現在58秒 残り1 秒 現在59秒 TIME UP #←赤色に変化してます。 b-5. 考察 時間計算が正しいのかを確かめる pan{c109048}% bc -l [~/Ruby] 1 * 60 60 モノによっては馴染がないハードもあるのでテキスト量が偏ってしまう。また携 帯機等は省いているので今後追加する必要がある。 タイマー機能は分数での表示が出来ない状態なので今後改善する必要がある。 参考及び改良元 プログラム /西村まどか http://roy/~madoka/2010/r2/prog/downto_rocket.rb Wikipedeia 各ハードページ バーチャルボーイ http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%BC%E3%83%81%E3%83%A3%E3%83%AB%E3%83%9C%E3%83%BC%E3%82%A4 ドリームキャスト http://ja.wikipedia.org/wiki/%E3%83%89%E3%83%AA%E3%83%BC%E3%83%A0%E3%82%AD%E3%83%A3%E3%82%B9%E3%83%88 メガドライブ http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%AC%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96 ピピンアットマーク http://ja.wikipedia.org/wiki/%E3%83%94%E3%83%94%E3%83%B3%E3%82%A2%E3%83%83%E3%83%88%E3%83%9E%E3%83%BC%E3%82%AF プレイステーション2 http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AC%E3%82%A4%E3%82%B9%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B32 PCエンジン http://ja.wikipedia.org/wiki/PC%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3 Xbox http://ja.wikipedia.org/wiki/Xbox ニンテンドウ64 http://ja.wikipedia.org/wiki/NINTENDO64 課題用提出プログラム:hash_ary_print.rb hash_choice.rb d.広告ページアドレス http://roy/~c109048/advertise2/ B. a.普遍ワールド http://roy/~c109048/ b.仕様書及び取扱説明書 http://roy/~c109048/advertise2/readme c.プログラムリンク http://roy/~c109048/advertise2/gunex.rb d.改良元及びレポート hash_choice.rb http://roy/~c109048/advertise2/hash_choice.rb hash_ary_print.rb http://roy/~c109048/advertise2/hash_ary_print.rb 第二回提出レポート http://roy/~c109048/advertise2/info2-2.txt 第三回提出レポート http://roy/~c109048/advertise2/info2-3.txt 感想) これで全部教わった…といわれてもあまり実感がわかない。プログラムのほうは ゲームでもつけておけばよかったかなあとも思ったり 共同学習者 田村 周 遠藤 太朗