第12回 基礎プログラミング I レポート課題 氏名:佐竹聡美 学籍番号:c1090816 語学クラス:英語1 コース:社会福祉 チーム名:イナゴ食べないの? チームホームページアドレス:http://roy/~c109001/inago/inagotabenaino.html プロジェクト名:世界地図、世界タイピング 1、チーム全体の進み具合 100%を完成とすると、今の進み具合は70%の進みです。 お互い協力しながら進めています。 2、プロジェクト全体の進み具合 世界地図はあと地図を作るだけです。 世界タイピングはあとデータを増やすだけです。また、タイピングの早さによっ てボーナス点を得られるようにするためにその基準が必要である。それを実行す るためにチーム内でテストを実施し、その平均点でボーナス点の基準を決める。 3、プロジェクト担当部分 ・世界タイピングの企画書 ・世界タイピングのデモ版 ・世界地図を作成中(チーム全員) 4、チーム内のプロジェクト外メンバーに指摘された点について ・世界タイピングについて 見にくいので見やすくする。 5、上記の指摘に対する改良の進展具合 ・世界タイピングについて 文字を大きくする(作成中) 6、デモ版とその説明 ・世界地図のデモ版担当:成澤龍空 ・世界タイピングのデモ版担当:自分 <デモ版> #!/usr/koeki/bin/ruby #インタプリタ宣言文 $KCODE ="e" #文字化け防止 s =0 a = 0 k=0 e_name =Array.new #あとで外部データから新しくデータをとってくる j_name =Array.new #あとで外部データから新しくデータをとってくる kaisuu = 0 #問題数を数えるのに使用 time = 0 #タイム計算に使用 point = 0 #スコア計算に使用 seikai = 0 #正解数計算に使用 start = 0 #スコア計算時に際し、スタート時間を記録するときに使用 finish = 0 #スコア計算時に際し、スタート時間を記録するときに使用 usrname = 0 #ユーザー名を入れてもらうときに使用 open("tiping_demo.dat","r") do |tehon| #外部からデータをとってくるが、そのデータをsekai.datと定義し、tehonに集める while type = tehon.gets #tehoに取りこむことをデータの終わりまで繰り返す if /(\S+)\s+(\S+)/ =~ type #もし外部のデータ配列が文字→空白→文字だったら j_name[s] =$1 #j_nameという配列は外部データの2つ目の配列とする e_name[s] =$2 #e_nameという配列は外部データの2つ目の配列とする s +=1 #次の行に進むためにsにひとつ足すことにより、進む end #ifのおわり end #whileのおわり end #openのおわり print("タイピングを始めます! sを押して下さい!:") #主旨説明 sigh=gets.chomp #そのコマンドをsighに取り入れる if sigh =="s" #もしsighにsと入力されたら先の処理に進む else #それ以外の文字が入力されたら exit(0) #異常終了 end #ifのおわり STDERR.print("ユーザー名を入れて下さい。リターンキーで確定後、2秒後にスタート:") #ユーザ名の入力を指示 usrname = gets.chomp #その文字の改行文字をとり、取りこむ sleep (2) #ktremの動き2秒間を止める(スリープさせる) print(`banner "Start"`) #Ktremにバナーを出す start=Time.now.to_i #時間を整数化することに、タイムを計算できるようにする while a < 5 #a(問題数)が20になるまで繰り返す srand s = rand(48) #s(配列番号)を乱数化(ランダムにする)することにより、ランダムに問題を出す printf("入力単語和訳:%s\n",j_name[s]) #入力してほしい単語の和訳を表示 printf("入力単語:%s\n",e_name[s]) #入力してほしい単語を表示 STDERR.print("入力欄:") #入力欄を表示 nyuuryoku = gets.chomp #そこに入った文字の改行文字を取り除き、取りこむ if nyuuryoku ==e_name[s] #もし入力してほしい単語と、入力された単語が同じだったら print("正解\n\n") #結果表示 seikai+=1 #正解数を1つふやす point+=10 #ポイントを10点ふやす else #それ以外の単語が入力されたら(間違っていたら) print("不正解\n\n") #結果表示 point -= 5 #ポイントを5点減らす end #ifのおわり a += 1 #aに1を足すことによって 問題数を進める end #open(読みこみ)のおわり finish = Time.now.to_i #時間を整数化することにより、タイムを計算できるようにする print(`banner "Stop"\n`) #バナーを出す time=finish-start #先に求めた、フィニッシュの時間からスタートの時間を引くことにより、タイムを求める if time < 20 #もしそのタイムが20(秒)以下だったら(仮のボーナス設定) point +=20 #pointに20を足す end #ifのおわり printf("タイム:%d秒\n",time) #結果表示 printf("正解数:%d問\n",seikai) #結果表示 printf("得点:%d点\n",point) #結果表示 day=Time.now #あとでホームページに結果を表示する際のプレイした日付を表示するための記録をする open("score.html","a") do |score| #外部データのscore.htmlに書きこむ score.print("\n") #htmlであることを宣言する score.print("
\n") score.print("\n") score.print("\n") #本文であることを宣言 score.print("ユーザー名:%s | \n",usrname) #結果表示 score.print("
実施日/時間:%s | \n",day) #結果表示 score.print("
タイム:%d秒 | \n",time) #結果表示 score.print("
正解数:%d問 | \n",seikai) #結果表示 score.print("
得点:%d点\n | ",point) #結果表示 score.print("