Views
プログラミング「超」入門
高知大学オープンキャンパス
情報科学とプログラミング
- 切っても切れない関係です。
プログラミングの極意
- コピーしない
- 繰り返しを使う
- 関数(サブ・プログラム)を使う
- 「極」道な「意」味
- ハックする
- ちょっと手を加えることで、改善する。
本日は「超」入門なので
- 少し、ぶっ飛んだプログラムを紹介しよう。
占い
- 占いプログラム (ura.py)
- やってみよう
- ターミナルで、
- ./ura.py [return]
- アップルのキーボードは「かな」を押すと日本語入力、「英数」を押すと英数入力
- 「いちご」占いなので、「いちご」以外はよい占いが出てこない。
占い2
- 少し利口にする (ura2.py)
- やってみよう
- 何回も続けて占いができる。
- いちご、みかん、りんご以外のフルーツが出てきたら、教えてもらう。
- 次には、教えてもらった占いを出す。
ソースを見てみよう
- プログラムに何が書いてあるか
- Finder で ura.py をつかんで、テキストエディットに落とす
占い文を入れておく
fortune = { "いちご": "幸運が訪れます", "みかん": "努力が必要です", "りんご": "我慢が必要です", }
fortune[ans]
でそのフルーツの占い文を取り出す
利口な占いだと、さらに
- (ura2.py をテキストエディットにドラッグ&ドロップ)
fortune[ans] = ...
で新しい占い文を入れるdef uranai()
関数を定義(define) して繰り返し使うwhile True:
無限ループで繰り返すif not ans: break
飽きたらやめる
Intermission
- 占いも飽きたし
- 次はゲームでも
ライフゲーム
- マス目にコマを置く
- 上下左右斜めの8マスのコマの数
- コマがあるとき、
- 2または3のとき生存
- 他は死滅
- コマが無い時
- 3 のとき誕生
例えばこの9マスに
- 真中の青のコマは生き残る
これも
- 青のコマは生き残る
過密だと
- 真中の赤のコマは死ぬ
過疎でも
- 死ぬ
周りに3つあると
- 生命の誕生
- お父さん、お母さん、産婆さん
その他は過疎でも過密でも
- 誕生することは無い
例えばこんなパターン
- 変わらない。(面白くない)
これは?
<->
- 交互に同じパターン
次は?
->
続けて
->
でもって
- 最初と比べると同じ形だが、左下へ1マスづつ移動
- 続ければ、もっと移動(グライダー)
プログラムでやってみる
ライフゲームの操作法
- スペース = 進化をスタート/ストップ
- +/- = 速く/遅く
- r = ランダムに種まき
- c = クリアー
- マウスクリック = マスに入れる/消す
いろんな
- 初期パターンで試してみてください
- Wikpedia
実は隠しコマンドを入れてある
- g ... グライダー
- f ... グライダーガン
隠しコマンドを入れたところが
- プログラムのハックです。
- 皆さんも、情報科学コースで一緒にハックしませんか
- ちなみに
- ハッカーはクラッカーではありません