12時間目タイトル

「かめののろい」でPython #12時間目

12時間目 おみくじの結果でカメがよろこぶ

こんにちは!最近Facebookで「ストーリー」投稿を覚えたヒラバヤシヤスキです。ストーリー投稿は24時間で消えるので、例えば、noteの記事のアップデートのシェアなどでは、鬱陶しさが減って便利な感じがします!

さて、本日はひさしぶりにカメさんが登場です。
どうやら、Pythonでは、自分で作ったプログラム(モジュール)をimportすることができるようで、前回作ったおみくじと、8時間目でつくったカメさん暴走プログラムを組み合わせるようです。
ワクワクします!

うれしくて動き回るカメをプログラム

まずは、8時間目で作ったプログラム(test08-1.py)を修正します。
8時間目のプログラムのままだと、画面外にカメさんが出て行ってしまい、行方不明になる可能性があったので、それを修正する必要があるのと、「大吉」と画面に表示させるために、コードを少し書き足し、「test120.py」とます。

from turtle import*
from random import*
shape('turtle')
shapesize(2,2)
home()

for i in range(30):
    a=randint(0,360)
    b=randint(-200,200)
    left(a)
    forward(b)

#ここから加筆
    if distance(0,0)>300:
        undo()
    write('大吉',font=('メイリオ',18,'normal'))

distanceは距離という意味の英単語ですね。
distance(0,0)で「0,0」つまりスクリーンの中心からの距離を示すそうです。
ですから、 「if distance(0,0)>300:」でスクリーンから300ピクセル以上は慣れてしまったらundo、つまりやり直しするという条件文を加えたんですね。

また、writeは書くという意味の英単語ですね。コマンドは、「大吉という文字をかけ。フォントはメイリオで文字の大きさは18でね」という意味でしょう。

さて、コマンドを解釈したところで、実行してみます!

こ、これは笑
狂喜乱舞という感じですね笑

GIF動画の最後で、画面外に出てから戻って来ていますね。これが、追記したコードの働きですね!

ちなみに、動画では一部しかキャプチャできていませんが、最後までプログラムを走らせた結果こんな感じになりました。
上のところの「大吉」が濃いのは、それだけカメさんがundoしたことを示していますね!
ただ、undo()がどの時点までもどるのかが良く分かりません。ここは今後検証したいです。

そうそう、 くり 返 しが30もある とカメ 調 子 に 乗 りすぎなので、 10にしましょう。

僕もそう思っていました…笑

また、「大吉」の文字を赤くするためにpencolorで色を付けて一旦、呼び出すためのプログラム、「test120.py」は完成です。追記部分はコメントしますね。

from turtle import*
from random import*
shape('turtle')
shapesize(2,2)
home()
for i in range(10): #繰り返しを10にした
   a=randint(0,360)
   b=randint(-200,200)
   left(a)
   pencolor('black') #線は黒で
   forward(b)
   if distance(0,0)>300:
       undo()
   pencolor('red') #大吉は赤で
   write('大吉',font=('メイリオ',18,'normal'))


調子に乗ったカメをimpotする

さて、いよいよ大詰め、作ったプログラムをおみくじで呼び出します。

大吉 が 出 たら 、調子 に 乗 ったカメが 動 き 回 るに はどこに import test120 を 入 れたらいいでしょうか? import するモジュールには. py は 不要 です。 また 、使 える 文字 は 英数 字 だけです。 では 、正解 を 見 ずにプログラミングしてみましょう。

大吉のときにでるのだから、こうでしょう!

#coding:utf-8
from random import*
kazu=randint(0,5)
#プログラムA
if kazu==0:
   print('大吉')
   import test120 #ここに追加でしょう!
elif kazu==1 or kazu==2:
   print('中吉')
else:
   print('吉')

さて、実行します!

中吉!

吉!

吉!

吉!

吉!

中吉!

・・・全然出ません…笑 おそるべし1/6の確率…

実行!

大吉!でました!!!

カメさんも大喜びです!!!

今日はここまでです!!お読みいただきありがとうございました^^

【今回の学び】
・pythonは別のモジュールをimportできる!
 これは今後多用しそうです。
・undo()で条件をやり直しさせられる!
【未解決の疑問】
・kame=turtle と kame=turtle.Turtle() は同じ働きをする。テキストではあえて後者なのはなぜか?
・長い動画をアップする方法はあるか?
・undo()の挙動が良くわからない
 (どの時点までやり直し?)


「かめののろい」の目次

0時間目 まずパソコンにPythonをインストール
1時間目 IDLEを起ち上げ まずはコマンドラインでカメさん登場
2時間目 楽してカメさん エディターを使いこなそう!
3時間目 変数(箱)を使ってturtleを操ってみる
4時間目 同じ命令の繰り返しfor を使ってturtleを操ってみる
5時間目 for を使ってturtleをさらに操ってみる②
6時間目 for を入れ子にしてturtleをさらに操ってみる③
7時間目 for と変数でturtleをさらにさらに操ってみる④
8時間目 randomを使ってturtleを操ってみる①
9時間目 randomを使ってturtleをさらに操ってみる②
10時間目 条件文if elseともう1つのくり返しwhileで数当てゲームを作る
11時間目 条件文ifとelif・elseでおみくじを作る
12時間目 おみくじの結果でカメがよろこぶ
13時間目 座標(ざひょう)を操って多角形を書く
14時間目 座標(ざひょう)を操って多角形を書く②
15時間目 今まで学習したメソッドを駆使して図形を描く①
16時間目 今まで学習したメソッドと演算子で図形を描く
17時間目 今まで学習したメソッドを駆使して図形を描く②
18時間目 同じ模様の書き方をアルゴリズムのちがいで書いてみる
19時間目 inputを使って大きさのちがう複雑な図形を描いてみる
20時間目 少し複雑な図形を描いてみる
21時間目 変数とfor・if文で少し複雑な図形を書いてみる
22時間目 図形から離れて少し遊んでみる
23時間目 関数を作って遊んでみる
24時間目 自動計算とループ処理で多角形を書く



この記事が気に入ったらサポートをしてみませんか?