1.猜单词小游
代码如下
import random
WORDS=("python","jumble","easy","difficult","answer","continue","phone","position","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):")
程序演示
发牌游戏
代码如下
class Card():
""" A playing card. """
RANKS = ["A","2","3","4","5","6","7","8","9","10","J","Q","K"]
SUITS = ["梅花","方块","红心","黑桃"]
def __init__(self, rank, suit, face_up = True):
self.rank = rank
self.suit = suit
self.is_face_up = face_up
def __str__(self):
if self.is_face_up:
rep = self.suit + self.rank
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 classes for playing cards.")
players = [Hand(),Hand(),Hand(),Hand()]
poke1 = Poke()
poke1.populate()
poke1.shuffle()
poke1.deal(players,13)
n=1
for hand in players:
print("牌手",n ,end=":")
print(hand)
n=n+1
input("\n Press the enter key to exit.")
程序演示
用tkinter的猜数字游戏
代码如下
import tkinter as tk
import sys
import random
import re
number = random.randint(0,1024)
running = True
num = 0
nmaxn = 1024
nminn = 0
def eBtnClose(event):
root.destroy()
def eBtnGuess(event):
global nmaxn
global nminn
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
if val_a > nminn:
nminn = val_a
num +=1
label_tip_min.config(label_tip_min,text=nminn)
labelqval("猜小了")
else:
if val_a
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('10次以内就猜对了厉害。。。。猜了:' +str(num))
elif num<50:
labelqval('还可以哦猜了:'+str(num))
else:
labelqval('你猜的次数:'+str(num))
def labelqval(vText):
label_val_q.config(label_val_q,text=vText)
root = tk.Tk(className="猜数字")
root.geometry("400x200+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=nminn)
label_tip_max.pack(side = "top",fill ="x")
label_tip_min.pack(side = "bottom",fill = "x")
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('',eBtnGuess)
btnGuess.bind('',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('',eBtnClose)
btnClose.pack(side="left")
line_btn.pack(side = "top")
labelqval("请输入0-1024中的任意数字:")
entry_a.focus_set()
print(number)
root.mainloop()
程序演示
tkinter发牌
from tkinter import *
import random
n=52
def gen_pocker(n):
x=100
while(x>0):
x=x-1
p1=random.randint(0,n-1)
p2=random.randint(0,n-1)
t=pocker[p1]
pocker[p1]=pocker[p2]
pocker[p2]=t
return pocker
pocker=[i for i in range(n)]
pocker=gen_pocker(n)
print(pocker)
(player1,player2,player3,player4)=([],[],[],[])
(p1,p2,p3,p4)=([],[],[],[])
root =Tk()
cv = Canvas(root, bg= 'white',width=700, height=600)
imgs=[]
for i in range(1,5):
for j in range(1,14):
imgs.insert((i-1)*13+(j-1),PhotoImage(file='D:\\1网课\images\\'+str(i)+'-'+str(j)+'.gif'))
for x in range(13):
m=x*4
p1.append( pocker[m])
p2.append( pocker[m+1])
p3.append( pocker[m+2])
p4.append( pocker[m+3])
p1.sort()
p2.sort()
p3.sort()
p4.sort()
for x in range(0,13):
img=imgs[p1[x]]
player1.append(cv.create_image((200+20*x,80),image=img))
img=imgs[p2[x]]
player2.append(cv.create_image((100,150+20*x),image=img))
img=imgs[p3[x]]
player3.append(cv.create_image((200+20*x,500),image=img))
img=imgs[p4[x]]
player4.append(cv.create_image((560,150+20*x),image=img))
print("player1:",player1)
print("player2:",player2)
print("player3:",player3)
print("player4:",player4)
cv.pack()
root.mainloop()
程序演示