サイコロを作ろう~答えは一つじゃない!~

2024年5月10日(金)は、6割ほどの出席率でした。中原が留守のため、スペシャルな先生をおまねきして活動しました。

  • 18時00分~18時20分 タイピング練習
  • 18時20分~18時35分 マウス練習
  • 18時35分~19時50分 サイコロプログラムをコーディング
  • 19時50分~20時00分 あとかたづけ

タイピング練習

タイピングの練習は、「無料タイピング」です。今日は英語の練習をしました。

https://manabi.benesse.ne.jp/gakushu/typing

一人ズバねけてタイピングが早いメンバーがいます。彼はライバルに勝つために必死に練習したようです。何にでも言えることですがライバルを見つけると上達がはやくなります。

マウス練習~ダブルクリック~

マウス練習でつかうツールは、前回とおなじ「クリック」「ダブルクリック」「ドラッグアンドドロップ」が練習できるWEBアプリです。

パソコン初心者のうちは、ダブルクリックが苦手なことが多いのです。このアプリを使えば楽しみながら、ダブルクリックの練習ができます。

サイコロを作ろう

今回はサイコロをプログラムで作りました。サイコロをプログラムする方法はいくつかありますが、今回は以下の2つの方法でプログラムします。

  • サイコロの画像を表示する方法
  • サイコロの画像も自分でプログラムする方法

サイコロの出目の数字を出すだけでは味気ないので、あえて画像として表示するプログラムを作りました。考えてみてください。「桃鉄のサイコロが単なる数字が表示されるだけだっだら」

サイコロの画像を表示する方法

サイコロの画像を表示するプログラムは『プログラムのつくりかた Python入門編Lv.0』(実教出版)P127に記載されています。動きは下の動画の通りです。

サイコロの画像も自分でプログラムする方法

こちらは自作なので公開します!

import tkinter
import random

WIDTH=300
HEIGHT=300

CENTER_X = WIDTH/2
CENTER_Y = HEIGHT/2

CENTER_POINT = [[CENTER_X - WIDTH/6, CENTER_Y - HEIGHT/6],
                [CENTER_X + WIDTH/6, CENTER_Y - HEIGHT/6],
                [CENTER_X - WIDTH/6, CENTER_Y],
                [CENTER_X, CENTER_Y],
                [CENTER_X + WIDTH/6, CENTER_Y],
                [CENTER_X - WIDTH/6, CENTER_Y + HEIGHT/6],
                [CENTER_X + WIDTH/6, CENTER_Y + HEIGHT/6]]

POINT_NUM=[[3], [0,6], [0,3,6], [0,1,5,6], [0,1,3,5,6], [0,1,2,4,5,6,]]


def num_circle(num):
    
    if num==1:
        coLor="red"
    else:
        coLor="black"
        
    canvas.delete("all")
    canvas.create_rectangle(CENTER_X-100, CENTER_Y-100,\
                            CENTER_X+100, CENTER_Y+100, fill="white")
    
    for pin in POINT_NUM[num-1]:
        canvas.create_oval(CENTER_POINT[pin][0]-20, CENTER_POINT[pin][1]-20,
                           CENTER_POINT[pin][0]+20, CENTER_POINT[pin][1]+20,
                           fill=coLor, outline=coLor)
        
def dice():
    num_circle(random.randint(1,6))
    
    
app = tkinter.Tk()
canvas =tkinter.Canvas(app, width=WIDTH, height=HEIGHT)
canvas.pack()

Btn = tkinter.Button(text="サイコロをふる", font=("","12"), command=dice)
Btn.pack()

app.mainloop()

実際にこのプログラムが動いている様子は、下の動画をご覧ください。

まとめ

実は今回の先生は、半年前に教室に通っていた元メンバーです。

半年前比べてみんなとても成長していて、大変驚いたと言っていました。日々の成果は小さいものでも、積み重ねれば大きな成果となって現れるのだと感じました。