Warning: count(): Parameter must be an array or an object that implements Countable in /home/xs638785/agile-software.site/public_html/wp-content/plugins/rich-table-of-content/functions.php on line 490
ランダムな4つの数を作る
ランダムな値を作るときはrandomモジュールを使います。
手順としては以下の通りです。
- randomモジュールをインポート
- randint関数でランダムな値を取得して変数aに入れる
- 4つの場合リストを使うことで
- aを表示する
注意
printで表示するときa[0]+a+a+aとするとそれぞれの数字が足されるので数字を文字列に変換しないといけません
import random
a=[random.randint(0,9),random.randint(0,9),random.randint(0,9),random.randint(0,9)]
print(str[a0]+str[a1]+str[a2]+str[a3])
数字を入力する
4桁かどうか確認するためにはlen関数を使いましょう。
- input関数を使って入力を促す
- 入力されたものが4桁かどうかを判断する。4桁じゃない場合は繰り返す
- 入力されたものが数字かどうかを判断する
注意
inputで入力した値は文字列として認識されるので数字に変換してあげないといけません。
知識
isokのようなTrueやFalseを格納する変数をフラッグと呼びます。
b=int(input("数を入れてね"))
isok=False
while isok=False
b=input("数を入れてね")
if len(b)!: 4
print("4桁の数字を入れてください")
else:
suuji=True
for i in range(4):
if (b[i]<"0" or "9"<b[i]):
print("数字ではありません")
suuji=False
break
if suuji: #もしTrueだったらisokをTrueにする
isok=True
結果を判定
まずは同じ桁に同じ数字があった場合を考えてみます。
hit=0
for i range(4):
if a[i]==int(b[i])
hit=hit+1
次に異なる桁に同じ数字があった場合を考えます。
b[j])==a[i] bの1桁ごとの数字に対しaの4桁を確認
a[i]!=int(b[i]) ヒットではない
a[j]!=int(b[j])
blow=0
for j range(4):
for i range(4):
if (int(b[j])==a[i])and (a[i]!=int(b[i]))and(a[j]!=int(b[j])):
blow=blow+1
break
完成プログラム
#cording:utf-8
import random
a=random.randint(0,9)
print(a)
b=int(input("数を入れてね"))
if a==b:
print(当たり)
else:
print(はずれ)
ウィンドウ表示
tkinterというGUIツールキットを使うことでウィンドウを表示できます。
ここではrootという変数にtk TK()というウィンドウ作成のオブジェクトを格納し、rootを使って様々なウィンドウ操作ができます。
オブジェクト
メソッド
#cording:utf-8
import tkinter as tk
root:tk TK()
root:mainloop()
ウィンドウサイズを変更する場合はgeometryというメソッドを使います。
root.geometry("400x150")
ウィンドウにメッセージを配置
label1という変数にメッセージを配置するメソッドを格納しています。
フォントはHelvetica,サイズは14です。
フォント種類
- Times
- Helvetica
- Courier
label1=tk.Label(root,text="数を入力してね",font=("Helvetica",14))
メッセージ位置
label1.place(x=20,y=20)
ウィンドウにタイトルを設定
root.title("数当てゲーム")
入力欄
入力欄を作り配置します。
editbox1=tk.Entry(width=4)
editbox1.place(x=120,y=120)
ボタンの配置
button1=tk.Button(root,text="チェック",font=("Helvetica",14))
button1,place(x=220,y=60)
ボタンの関数を作る
def ButtonClick()
ボタンを押して実行したときに上の関数が動くようにします
command=関数名で表します。
button1=tk.Button(root,text="チェック",font=("Helvetica",14),command=ButtonClick)
メッセージを表示
import tkinter massagebox as tmsg
tmsg.showinfo("タイトル","表示したい文字")
tkinterのオブジェクト
TK()
messagebox
Text
messageboxの関数
- showinfo
履歴の表示
履歴欄の表示
rirekibox=tk.Text(root,font=("Helvetica",14))
rirekibox.place(x=400,y=0,width=200,height=400)
insertを使ってテキストボックスに文字を追加する
下に表示させていくにはtk.ENDを使用します
rirekibox.insert(tk.END,b+"/H:"+str(hit)+" B:"+str(blow)+"\n")