python小游戏

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()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值