ITPASS実習レポート01
ITPASS実習レポート01
嵩 由芙子 joho08
問い1 数あて:ある任意の引数を正解の数として入力し、その数をあてるゲームです。
Quiz1のスクリプト
Quiz1の引数を82とした時の実行結果の例
使い方
・まず、./quiz1.sh (引数)というコマンドを実行させて下さい。
(引数)に打ち込まれた数をあてるスクリプトです
・入力を促すメッセージが出るので、それに従いあなたの予想する数を打ち込んで下さい。
・あなたが予想した数が正解より大きいか、小さいかを教えてくれます
。
・範囲を狭めていって正解するまで繰り返してください。
・正解の数が打ち込まれると、正解という旨が表示され、終了します。
工夫したこと&感想
正解の数を自分で入力するのではなくてランダムで選ばれるようにしていたのですが、
引数を使用しないといけないということだったので、急いで作ってみました。
問い1 " 数あて ;ある数字(1〜99)をランダムで自動的に読み込みます。その数字をあてて下さい。
Quiz1"のスクリプト
Quiz1"の実行結果の例
使い方
・入力を促すメッセージが出るので、それに従いあなたの予想する数を打ち込んで下さい。
・あなたが予想した数がパソコンが思い浮かべた数より大きいか、小さいかを教えてくれます。
・範囲を狭めていって正解するまで繰り返してください。
・正解の数が打ち込まれると、正解という旨が表示され、終了します。
工夫したこと&感想
うまくいくか心配でしたが、思っていたよりもすんなりとできました♪ 乱数 $RANDOM の便利さに感動しました。
問い2 素因数分解 ;素因数分解した数を入力すると、素因数分解した結果を表示してくれます。
Quiz2の スクリプト
Quiz2の実行結果の例
使い方
・素因数分解したい数字を入力してください
・素因数分解した結果が表示されます
工夫したこと&感想
表示される結果やquiz2.txtに書き込まれる結果を、
見やすいように並列表記になるようにしてみました。
最初に、因数分解したい数が偶数か奇数かを考えることですべての数をためすよりは早く処理が行われるようにしました。
exprの計算の記号%と/の意味を逆に覚えてスクリプトを書いていることに中々気づかず、
かなり時間がかかりました。
問い3 BLACK JACK ;一人ブラックジャックをします。
(ディーラーはいません。いかに手を21に近づけるかのゲームです)
Quiz3のスクリプト
Quiz3の実行結果の例
使い方
・BlaCk JacK!!と表示されたあと、あなたが得た二枚のカードの数字が表示されます。
・もう一枚カードを引くかどうかを聞いてくるので、引くなら0を引かないなら1を入力して下さい。
・また、1を引いたときには1と勘定するか11と勘定するかを聞いてきます。どちらにするか入力して下さい。
・合計点が21以上、または、あなたがもうカードを引かないという選択をすると終了します。
・合計数が22以上になると、あなたの負けです。
・合計数が22以下で、21に近いほどいいです。
・合計数が21ならば、自動的にあなたの勝ちです。特に1と10の二枚の組み合わせはBLACK JACKといわれもっともいい形です。
工夫したこと&感想
testコマンドの中でのグルーピングを結局最後までうまくすることができず、
スクリプトがかなり長くなってしまいました。
でもそのおかげで、if,expr,while,echo...などのコマンドを何度も使い、
それぞれの理解が大分深まりました。
グルーピングについてアドバイスを下さった 河合 佑太さん ありがとうございました。
せっかく教えて頂いたのに途中で断念してしまいました・・・ごめんなさぃ。
最後に感想
家で課題ができるように設定するのが、一番難しかったような気がします。それができてからは、
最初のうちはただの文字の羅列で嫌々課題をやっていましたが、段々とコマンドの意味がわかってくるにつれて作っていくのが楽しくなりました。
一生懸命IF文ばかりで書いていましたが、作り終わってみると、特に問い3なんかはcase文とか使えばよかったなぁ。とか振り返ってみて色々思います。
ホームページを作るのも楽しそうで、色んなテンプレートをあちこちから取ってはみましたが・・・結局使い方がわからないまま〆切りがきてしまいました。
いつか機会があったら存分に使いたいと思います。
quiz2において実行結果の不備に気づき、スクリプト・実行結果両方を書き換えたのですが、何故だかホームページ上に反映されません・・・(Tera Termで見るとスクリプトも実行結果もかわっているのですが)どうしてもわかりませんでした。
今、もう一度リンク先へ飛んでみるとちゃんと修正後のスクリプト・実行結果が表示されました。理由はよくわからないのですが、解決しました♪(2009/5/28 21:00現在)
最後になりましたが、拝見していただきどうもありがとうございました。
そして提出もぎりぎりになってしまい、すみません。
又、修正点や改善点などのアドバイスを頂けると幸いです。
参考資料
・後藤陽香さんのれぽーと;echoでの追加表記の仕方や参考資料を参考にさせて頂きました。
http://epa.scitec.kobe-u.ac.jp/~harukag/report01/
・シェルスクリプトでランダムな数字を得る方法 ;乱数を得る方法を参考にさせて頂きました。
http://yoosee.net/d/archives/2006/11/17/002.html
・fremo - Unixコマンド一覧 ;testコマンドexprコマンドを参考にさせて頂きました。すごくわかりやすかったです。
http://www28.atwiki.jp/fmemo/pages/28.html
・ジャンル別UNIXコマンド一覧 ;主にtestコマンドの記述を参考にさせて頂きました。
http://x68000.q-e-d.net/~68user/unix/genre.html
・UNIX & Linuxコマンド・シェルスクリプト リファレンス ;if,while,test,case,などとてもわかりやすかったです。多くのものを参考にさせていただきました。
http://www.geocities.jp/geo_sunisland/index.html
・いまさらHTML,CSS 講座トップページ ;index.htmlファイルの書き方を参考にさせて頂きました。
http://homepagelecture.web.fc2.com/