職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

ヒット&ブロー判定ゲームの完成版

2017年11月26日 | Python
ヒット&ブロー判定ゲームの完成版

【環境条件】
OS:Windows 10
Python 3.6.1

ゲームの完成版
・ファイル「example06-06-01.py」のリスト
# coding:utf-8
import random
import tkinter as tk
import tkinter.messagebox as tmsg

# ボタンがクリックされたときの処理
def ButtonClick():
# テキスト入力欄に入力された文字列を取得
b = editbox1.get()

# Lesson 5-4のプログラムから判定部分を拝借
# 4桁の数字かどうかを判定する
isok = False
if len(b) != 4:
tmsg.showerror("エラー", "4桁の数字を入力してください")
else:
kazuok = True
for i in range(4):
if (b[i] <"0") or (b[i] > "9") :
tmsg.showerror("エラー", "数字ではありません")
kazuok = False
break
if kazuok :
isok = True

if isok :
# 4桁の数字であったとき
# ヒットを判定
hit = 0
for i in range(4):
if a[i] == int(b[i]):
hit = hit + 1

# ブローを判定
blow = 0
for j in range(4):
for i in range(4):
if (int(b[j]) == a[i]) and (a[i] != int(b[i])) and (a[j] != int(b[j])):
blow = blow + 1
break

# ヒットが4なら当たりで終了
if hit == 4:
tmsg.showinfo("当たり", "おめでとうございます。当たりです")
# 終了
root.destroy()
else:
# ヒット数とブロー数を表示
rirekibox.insert(tk.END, b + " /H:" + str(hit) + " B:" + str(blow) + "\n")

# メインのプログラム
# 最初にランダムな4つの数字を作成しておく
a = [random.randint(0, 9),
random.randint(0, 9),
random.randint(0, 9),
random.randint(0, 9)]

# ウィンドウを作る
root = tk.Tk()
root.geometry("600x400")
root.title("数当てゲーム")

# 履歴表示のテキストボックスを作る
rirekibox = tk.Text(root, font=("Helvetica", 14))
rirekibox.place(x=400, y=0, width=200, height=400)

# ラベルを作る
label1 = tk.Label(root, text="数を入力してね", font=("Helvetica", 14))
label1.place(x = 20, y = 20)

# テキストボックスを作る
editbox1 = tk.Entry(width = 4, font=("Helvetica", 28))
editbox1.place(x = 120, y = 60)

# ボタンを作る
button1 = tk.Button(root, text = "チェック", font=("Helvetica", 14), command=ButtonClick)
button1.place(x = 220, y = 60)

# ウィンドウを表示する
root.mainloop()

ゲーム起動
「Run」-「Run Module」をクリックすると、ゲームが開始する

ゲーム画面


コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

メセージ表示するには

2017年11月25日 | Python
メセージ表示するには

【環境条件】
OS:Windows 10
Python 3.6.1

【メセージ表示するには】
Python 3.6.1のshellを使って、新規ファイル「example06-05-01.py」を作り、その中に下記の様なコードを書く

「example06-05-01.py」のリスト
# coding:utf-8
import tkinter as tk
import tkinter.messagebox as tmsg

# ボタンがクリックされたときの処理←関数
def ButtonClick():
# テキスト入力欄に入力された文字列を取得
b = editbox1.get()
# メッセージとして表示する
tmsg.showinfo("入力されたテキスト", b)

# メインのプログラム
# ウィンドウを作る
root = tk.Tk()
root.geometry("400x150")
root.title("数当てゲーム")

# ラベルを作る
label1 = tk.Label(root, text="数を入力してね", font=("Helvetica", 14))←種類ゴシック・サイズ14
label1.place(x = 20, y = 20)

# テキストボックスを作る
editbox1 = tk.Entry(width = 4, font=("Helvetica", 28))
editbox1.place(x = 120, y = 60)

# ボタンを作る
button1 = tk.Button(root, text = "チェック", font=("Helvetica", 14), command=ButtonClick)
button1.place(x = 220, y = 60)

# ウィンドウを表示する
root.mainloop()

書き終えたら、Run Moduleをクリックする、

メセージ表示

左画面に数字を入れて「チェック」ボタンを押すと、メセージが表示される
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

eclipseエラー「タグのロケーションが無効です。」の対処法

2017年11月23日 | Eclipse4.4
eclipseエラー「タグのロケーションが無効です。」の対処法


【環境条件】
Eclipse 4.4(ルナ)
XAMPP 1.8.3 
php

【無意味な警告の対処法】
・下記のような意味がわからない警告が表示された時

黄色う所にマウスを合わせると
eclipseで「タグのロケーションが無効です。」というエラーが表示される

・対処法
1)Eclipse 4.4の上のバーにあるウィンドウをクリックし、設定を選ぶ
2)設定画面から、Web→HTMLファイル→検証を選び、右画面の中から「無駄なタグロケーション」の所を「無視」して「OK」ボタンを押す



・改善後
黄色の警告が消える
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ウインドウ表示を使いう

2017年11月23日 | Python
ウインドウ表示を使いう

【環境条件】
OS:Windows 10
Python 3.6.1

【ウインドウの作り方】
ウインドウ表示するには、ウインドウ、入力用のテキストボックス、ボタンなど、グラフィカルな画面で操作するための部品群「GUIツールキット」を利用する必要がある。Pythonは「tkinter」を使うのが一般的


「example06-02-03.py」のリスト
# coding:utf-8
import tkinter as tk ←tkinterの別名

root = tk.Tk()←オブジェクトを作る。rootは変数 
root.geometry("400x150")←ウインドウのサイズ
root.title("数当てゲーム")←ウインドウのタイトル
root.mainloop()←ウインドウを表示

実行
ウインドウが立ち上げる
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ヒット&ブロー判定ゲーム

2017年11月22日 | Python
ヒット&ブロー判定ゲーム


【ゲームのコード】
ルールはPCがランダムに出した四つ数字を当てるだけ
ブロー判定;入力した数字がpcと一致すれば表示
ヒット判定;入力した数字が位置も数もpcと一致すれば表示
example05-05-01.py
# coding:utf-8
import random
#四桁の乱数
a = [random.randint(0, 9),
random.randint(0, 9),
random.randint(0, 9),
random.randint(0, 9)]

#四桁の乱数
while True :
# Lesson 5-4のプログラム
# 4桁の数字かどうかを判定する
isok = False
while isok == False:
b = input("数を入れてね>")
if len(b) != 4:
print("4桁の数字を入力してください")
else:
kazuok = True
for i in range(4):
if (b[i] <"0") or (b[i] > "9") :
print("数字ではありません")
kazuok = False
break
if kazuok :
isok = True ←四桁の数字ならループから抜ける

# 4桁の数字であったとき
# ヒットを判定
hit = 0
for i in range(4):
if a[i] == int(b[i]):
hit = hit + 1

# ブローを判定
blow = 0
for j in range(4):
for i in range(4):
     #and以降はブローからヒットの数を除外
if (int(b[j]) == a[i]) and (a[i] != int(b[i])) and (a[j] != int(b[j])):
blow = blow + 1
break

# ヒット数とブロー数を表示
print("ヒット " + str(hit))
print("ブロー " + str(blow))

# ヒットが4なら当たりで終了
if hit == 4:
print("当たり!")
break
【ゲーム起動】
数を入れてね>5861
ヒット 1
ブロー 1
数を入れてね>5681
ヒット 2
ブロー 0
数を入れてね>5281
ヒット 2
ブロー 1
数を入れてね>5182
ヒット 3
ブロー 0
数を入れてね>5782
ヒット 4
ブロー 0
当たり!
>>>
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする