python在线游戏_几个简单的python小游戏

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):")

程序演示

523a6977467dfbba5aa904c833ca623a.png

发牌游戏

代码如下

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.")

程序演示

68e6cb8c136840c41959b52ec6337617.png

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

程序演示

7c08ef1c3daac84dca480390f4680263.png

ec50b4158609891ddcf62031fc4c25fd.png

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

程序演示

0324f2cd14ddabdca5657524285125a1.png

47d14d7d7efca2bed3b1cdd0eae58051.png

  • 7
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值