1、猜单词
import random
WORDS=("python","jumble","easy","difficult","answer","continue","phone","position","game")
print("欢迎参加猜单词游戏,把字母组合成一个正确的单词")
iscontinue="y"
while iscontinue=="y" or iscontinue=="Y":
word=random.choice(WORDS)
correct=word
jumble=""
while word:
position=random.randrange(len(word))
jumble+=word[position]
word=word[:position]+word[(position+1):]
print("乱序后单词:",jumble)
guess=input("\n请你猜:")
while guess !=correct and guess !="":
print("对不起不正确")
guess=input("继续猜:")
if guess==correct:
print("真棒,你猜对了!\n")
iscontinue = input("\n\n是否继续(Y/N):")
2、发牌游戏
class Card():
""" A playing card. """
RANKS = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"] # 牌面数字1-13
SUITS = ["梅", "方", "红", "黑"]
# 梅为梅花,方为方钻,红为红心,黑为黑桃
def __init__(self, rank, suit, face_up=True):
self.rank = rank # 指的是牌面数字1-13
self.suit = suit # suit指的是花色
self.is_face_up = face_up # 是否显示牌正面,True为正面,False为牌背面
def __str__(self): # print()
if self.is_face_up:
rep = self.suit + self.rank # +" "+str(self.pic_order())
else:
rep = "XX"
return rep
def flip(self): # 翻牌方法
self.is_face_up = not self.is_face_up
def pic_order(self): # 牌的顺序号
if self.rank == "A":
FaceNum = 1
elif self.rank == "J":
FaceNum = 11
elif self.rank == "Q":
FaceNum = 12
elif self.rank == "K":
FaceNum = 13
else:
FaceNum = int(self.rank)
if self.suit == "梅":
Suit = 1
elif self.suit == "方":
Suit = 2
elif self.suit == "红":
Suit = 3
else:
Suit = 4
return (Suit - 1) * 13 + FaceNum
class Hand():
""" A hand of playing cards. """
def __init__(self):
self.cards = []
def __str__(self):
if self.cards:
rep = ""
for card in self.cards:
rep += str(card) + "\t"
else:
rep = "无牌"
return rep
def clear(self):
self.cards = []
def add(self, card):
self.cards.append(card)
def give(self, card, other_hand):
self.cards.remove(card)
other_hand.add(card)
class Poke(Hand):
""" A deck of playing cards. """
def populate(self): # 生成一副牌
for suit in Card.SUITS:
for rank in Card.RANKS:
self.add(Card(rank, suit))
def shuffle(self): # 洗牌
import random
random.shuffle(self.cards) # 打乱牌的顺序
def deal(self, hands, per_hand=13):
for rounds in range(per_hand):
for hand in hands:
top_card = self.cards[0]
self.cards.remove(top_card)
hand.add(top_card)
if __name__ == "__main__":
print("This is a module with classed for playing cards.")
# 四个玩家
players = [Hand(), Hand(), Hand(), Hand()]
poke1 = Poke()
poke1.populate() # 生成一副牌
poke1.shuffle() # 洗牌
poke1.deal(players, 13) # 发给玩家每人13张
# 显示四位牌手的牌
n = 1
for hand in players:
print("牌手", n, end=":")
print(hand)
n = n + 1
input("\nPress the enter key to exit.")
3、猜数字
import tkinter as tk
import sys
import random
import re
number = random.randint(0, 1024)
running = True
num = 0
nmaxn = 1024
nmin = 0
def eBtnClose(event):
root.destroy()
def eBtnGuess(event):
global nmaxn
global nmin
global num
global running
if running:
val_a = int(entry_a.get())
if val_a == number:
labelqval("恭喜答对了!")
num += 1
running = False
numGuess()
elif val_a < number:
if val_a > nmin:
nmin = val_a
num += 1
label_tip_min.config(label_tip_min, text=nmin)
labelqval("小了哦")
else:
if val_a < nmaxn:
nmaxn = val_a
num += 1
label_tip_max.config(label_tip_max, text=nmaxn)
labelqval("大了哦")
else:
labelqval("你已经答对了")
def numGuess():
if num == 1:
labelqval("你已经答对了!")
elif num < 10:
labelqval("==十次以内就答对了。。。尝试次数:" + str(num))
elif num < 50:
labelqval("还行哦尝试次数:" + str(num))
else:
labelqval("好吧。。。你都超过50次了。。。尝试次数:" + str(num))
def labelqval(vText):
label_val_q.config(label_val_q, text=vText)
root = tk.Tk(className="猜数字游戏")
root.geometry("400x90+200+200")
line_a_tip = tk.Frame(root)
label_tip_max = tk.Label(line_a_tip, text=nmaxn)
label_tip_min = tk.Label(line_a_tip, text=nmin)
label_tip_max.pack(side="top", fill="x")
label_tip_min.pack(side="bottom", fill="y")
line_a_tip.pack(side="left", fill="y")
line_question = tk.Frame(root)
label_val_q = tk.Label(line_question, width="80")
label_val_q.pack(side="left")
line_question.pack(side="top", fill="x")
line_input = tk.Frame(root)
entry_a = tk.Entry(line_input, width="40")
btnguess = tk.Button(line_input, text="猜")
entry_a.pack(side="left")
entry_a.bind('<Return>', eBtnGuess)
btnguess.bind('<Button-1>', eBtnGuess)
btnguess.pack(side="left")
line_input.pack(side="top", fill="x")
line_btn = tk.Frame(root)
btnClose = tk.Button(line_btn, text="关闭")
btnClose.bind('<Button-1>', eBtnClose)
btnClose.pack(side="left")
line_btn.pack(side="top")
labelqval("请输入0-1024之间任意整数:")
entry_a.focus_set()
print(number)
root.mainloop()
import tkinter as tk
import sys
import random
import re
number = random.randint(0, 1024)
running = True
num = 0
nmaxn = 1024
nmin = 0
def eBtnClose(event):
root.destroy()
def eBtnGuess(event):
global nmaxn
global nmin
global num
global running
if running:
val_a = int(entry_a.get())
if val_a == number:
labelqval("恭喜答对了!")
num += 1
running = False
numGuess()
elif val_a < number:
if val_a > nmin:
nmin = val_a
num += 1
label_tip_min.config(label_tip_min, text=nmin)
labelqval("小了哦")
else:
if val_a < nmaxn:
nmaxn = val_a
num += 1
label_tip_max.config(label_tip_max, text=nmaxn)
labelqval("大了哦")
else:
labelqval("你已经答对了")
def numGuess():
if num == 1:
labelqval("你已经答对了!")
elif num < 10:
labelqval("==十次以内就答对了。。。尝试次数:" + str(num))
elif num < 50:
labelqval("还行哦尝试次数:" + str(num))
else:
labelqval("好吧。。。你都超过50次了。。。尝试次数:" + str(num))
def labelqval(vText):
label_val_q.config(label_val_q, text=vText)
root = tk.Tk(className="猜数字游戏")
root.geometry("400x90+200+200")
line_a_tip = tk.Frame(root)
label_tip_max = tk.Label(line_a_tip, text=nmaxn)
label_tip_min = tk.Label(line_a_tip, text=nmin)
label_tip_max.pack(side="top", fill="x")
label_tip_min.pack(side="bottom", fill="y")
line_a_tip.pack(side="left", fill="y")
line_question = tk.Frame(root)
label_val_q = tk.Label(line_question, width="80")
label_val_q.pack(side="left")
line_question.pack(side="top", fill="x")
line_input = tk.Frame(root)
entry_a = tk.Entry(line_input, width="40")
btnguess = tk.Button(line_input, text="猜")
entry_a.pack(side="left")
entry_a.bind('<Return>', eBtnGuess)
btnguess.bind('<Button-1>', eBtnGuess)
btnguess.pack(side="left")
line_input.pack(side="top", fill="x")
line_btn = tk.Frame(root)
btnClose = tk.Button(line_btn, text="关闭")
btnClose.bind('<Button-1>', eBtnClose)
btnClose.pack(side="left")
line_btn.pack(side="top")
labelqval("请输入0-1024之间任意整数:")
entry_a.focus_set()
print(number)
root.mainloop()