pygame做的成语猜字游戏,每一关的题目均为随机动态生成,理论可以关数无限,成语字库可以切换成其他元素(如果改成英文单词的话也可以正常使用)。
https://blog.csdn.net/zhangenter/article/details/89807613
https://blog.csdn.net/zhangenter/article/details/89807613
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-05-03 16:55 guess_idiom
文件 6148 2019-05-03 16:12 guess_idiom.DS_Store
目录 0 2019-05-03 16:38 guess_idiom.git
目录 0 2019-05-03 07:41 guess_idiom.gitranches
文件 0 2019-05-03 16:38 guess_idiom.gitCOMMIT_EDITMSG
文件 311 2019-05-03 07:41 guess_idiom.gitconfig
文件 73 2019-05-03 07:41 guess_idiom.gitdescription
文件 103 2019-05-03 16:35 guess_idiom.gitFETCH_HEAD
文件 23 2019-05-03 07:41 guess_idiom.gitHEAD
目录 0 2019-05-03 07:41 guess_idiom.githooks
文件 478 2019-05-03 07:41 guess_idiom.githooksapplypatch-msg.sample
文件 896 2019-05-03 07:41 guess_idiom.githookscommit-msg.sample
文件 189 2019-05-03 07:41 guess_idiom.githookspost-update.sample
文件 424 2019-05-03 07:41 guess_idiom.githookspre-applypatch.sample
文件 1642 2019-05-03 07:41 guess_idiom.githookspre-commit.sample
文件 1348 2019-05-03 07:41 guess_idiom.githookspre-push.sample
文件 4951 2019-05-03 07:41 guess_idiom.githookspre-rebase.sample
文件 544 2019-05-03 07:41 guess_idiom.githookspre-receive.sample
文件 1239 2019-05-03 07:41 guess_idiom.githooksprepare-commit-msg.sample
文件 3610 2019-05-03 07:41 guess_idiom.githooksupdate.sample
文件 794 2019-05-03 16:36 guess_idiom.gitindex
目录 0 2019-05-03 07:41 guess_idiom.gitinfo
文件 240 2019-05-03 07:41 guess_idiom.gitinfoexclude
目录 0 2019-05-03 07:41 guess_idiom.gitlogs
文件 779 2019-05-03 16:36 guess_idiom.gitlogsHEAD
目录 0 2019-05-03 07:41 guess_idiom.gitlogs
efs
目录 0 2019-05-03 07:41 guess_idiom.gitlogs
efsheads
文件 779 2019-05-03 16:36 guess_idiom.gitlogs
efsheadsmaster
目录 0 2019-05-03 07:41 guess_idiom.gitlogs
efs
emotes
目录 0 2019-05-03 16:08 guess_idiom.gitlogs
efs
emotesorigin
文件 182 2019-05-03 07:41 guess_idiom.gitlogs
efs
emotesoriginHEAD
............此处省略82个文件信息
# -*- coding=utf-8 -*-
import sys
import random
import pygame
from pygame.locals import *
reload(sys)
sys.setdefaultencoding(‘utf-8‘)
f = open(‘words.txt‘)
all_idiom = f.readlines()
f.close()
word_dic = {}
for idiom in all_idiom:
idiom = idiom.strip().decode(‘utf-8‘)
for word in idiom:
if word not in word_dic:
word_dic[word] = [idiom]
else:
word_dic[word].append(idiom)
word_arr = list(word_dic.keys())
header_height = 30
main_space = 20
block_size = 36
block_num=12
bspace = 2
space = 20
width = block_size * block_num + main_space * 2
height = header_height + block_size * block_num + main_space * 2 + (block_size+space) * 3
pygame.init()
screen = pygame.display.set_mode((widthheight))
screencaption = pygame.display.set_caption(u‘成语填空‘)
font = pygame.font.Font(u‘syht.otf‘ int(block_size*0.8))
dray_gray = 505050
white = 255255255
#textImage = font.render(u‘你好‘ True white)
class IdiomInfo(object):
def __init__(selfidiom):
self.idiom = idiom
self.dire = 0
self.word_arr = []
class WordInfo(object):
def __init__(self word i j):
self.i = i
self.j = j
self.word = word
self.is_lock = True
self.state = -1
self.hide_index = -1
self.op_hide_index = -1
class Matrix(object):
rows = 0
cols = 0
data = []
def __init__(self rows cols data=None):
self.rows = rows
self.cols = cols
if data is None: data = [None for i in range(rows * cols)]
self.data = data
def set_val(self x y val):
self.data[y * self.cols + x] = val
def get_val(self x y):
return self.data[y * self.cols + x]
def exist_val_four_around(self x y ignore_set):
move_arr = [(-10)(10)(0-1)(01)]
for dxdy in move_arr:
tx = x + dx
ty = y + dy
if (txty) in ignore_set: continue
if tx < 0 or tx >= self.cols or ty <0 or ty >= self.rows: continue
if self.data[ty * self.cols + tx]: return True
return False
def check_new_idiom(matrix new_idiom new_dire word_info):
windex = new_idiom.index(word_info.word)
cxcy = word_info.i word_info.j
ignore_set = set([(cxcy)])
new_idiom_word_arr=[]
for i in range(-windex-windex+len(new_idiom)):
if i==0:
new_idiom_word_arr.append(word_info)
else:
tx = cx+i if new_dire == 0 else cx
if tx < 0 or tx >= block_num: return NoneNone
ty = cy if new_dire == 0 else cy+i
if ty < 0 or ty >= block_num: return NoneNone
if matrix.exist_val_four_around(tx ty ignore_set): return NoneNone
old_word_info = matrix.get_val(tx ty)
if old_word_info:
return NoneNone
new_word_info = WordInfo(new_idiom[i+windex] tx ty)
new_idiom_word_arr.append(new_word_info)
return new_idiom_word_arrwindex
def add_idiom_to_matrix(matrix word_dic idiom_dic idiom_num):
if idiom_num == 0: return 0
for idiomidiom_info in idiom_dic.items():
dire = idiom_info.dire
new_dire = 1 - dire
for word_info in idiom_info.word_arr:
word = word_info.word
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-05-03 16:55 guess_idiom
文件 6148 2019-05-03 16:12 guess_idiom.DS_Store
目录 0 2019-05-03 16:38 guess_idiom.git
目录 0 2019-05-03 07:41 guess_idiom.gitranches
文件 0 2019-05-03 16:38 guess_idiom.gitCOMMIT_EDITMSG
文件 311 2019-05-03 07:41 guess_idiom.gitconfig
文件 73 2019-05-03 07:41 guess_idiom.gitdesc
文件 103 2019-05-03 16:35 guess_idiom.gitFETCH_HEAD
文件 23 2019-05-03 07:41 guess_idiom.gitHEAD
目录 0 2019-05-03 07:41 guess_idiom.githooks
文件 478 2019-05-03 07:41 guess_idiom.githooksapplypatch-msg.sample
文件 896 2019-05-03 07:41 guess_idiom.githookscommit-msg.sample
文件 189 2019-05-03 07:41 guess_idiom.githookspost-update.sample
文件 424 2019-05-03 07:41 guess_idiom.githookspre-applypatch.sample
文件 1642 2019-05-03 07:41 guess_idiom.githookspre-commit.sample
文件 1348 2019-05-03 07:41 guess_idiom.githookspre-push.sample
文件 4951 2019-05-03 07:41 guess_idiom.githookspre-reba
文件 544 2019-05-03 07:41 guess_idiom.githookspre-receive.sample
文件 1239 2019-05-03 07:41 guess_idiom.githooksprepare-commit-msg.sample
文件 3610 2019-05-03 07:41 guess_idiom.githooksupdate.sample
文件 794 2019-05-03 16:36 guess_idiom.gitindex
目录 0 2019-05-03 07:41 guess_idiom.gitinfo
文件 240 2019-05-03 07:41 guess_idiom.gitinfoexclude
目录 0 2019-05-03 07:41 guess_idiom.gitlogs
文件 779 2019-05-03 16:36 guess_idiom.gitlogsHEAD
目录 0 2019-05-03 07:41 guess_idiom.gitlogs
efs
目录 0 2019-05-03 07:41 guess_idiom.gitlogs
efsheads
文件 779 2019-05-03 16:36 guess_idiom.gitlogs
efsheadsmaster
目录 0 2019-05-03 07:41 guess_idiom.gitlogs
efs
emotes
目录 0 2019-05-03 16:08 guess_idiom.gitlogs
efs
emotesorigin
文件 182 2019-05-03 07:41 guess_idiom.gitlogs
efs
emotesoriginHEAD
............此处省略82个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)