资源简介

pygame做的成语猜字游戏,每一关的题目均为随机动态生成,理论可以关数无限,成语字库可以切换成其他元素(如果改成英文单词的话也可以正常使用)。
https://blog.csdn.net/zhangenter/article/details/89807613

资源截图

代码片段和文件信息

# -*- 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\.git\branches\
     文件           0  2019-05-03 16:38  guess_idiom\.git\COMMIT_EDITMSG
     文件         311  2019-05-03 07:41  guess_idiom\.git\config
     文件          73  2019-05-03 07:41  guess_idiom\.git\description
     文件         103  2019-05-03 16:35  guess_idiom\.git\FETCH_HEAD
     文件          23  2019-05-03 07:41  guess_idiom\.git\HEAD
     目录           0  2019-05-03 07:41  guess_idiom\.git\hooks\
     文件         478  2019-05-03 07:41  guess_idiom\.git\hooks\applypatch-msg.sample
     文件         896  2019-05-03 07:41  guess_idiom\.git\hooks\commit-msg.sample
     文件         189  2019-05-03 07:41  guess_idiom\.git\hooks\post-update.sample
     文件         424  2019-05-03 07:41  guess_idiom\.git\hooks\pre-applypatch.sample
     文件        1642  2019-05-03 07:41  guess_idiom\.git\hooks\pre-commit.sample
     文件        1348  2019-05-03 07:41  guess_idiom\.git\hooks\pre-push.sample
     文件        4951  2019-05-03 07:41  guess_idiom\.git\hooks\pre-rebase.sample
     文件         544  2019-05-03 07:41  guess_idiom\.git\hooks\pre-receive.sample
     文件        1239  2019-05-03 07:41  guess_idiom\.git\hooks\prepare-commit-msg.sample
     文件        3610  2019-05-03 07:41  guess_idiom\.git\hooks\update.sample
     文件         794  2019-05-03 16:36  guess_idiom\.git\index
     目录           0  2019-05-03 07:41  guess_idiom\.git\info\
     文件         240  2019-05-03 07:41  guess_idiom\.git\info\exclude
     目录           0  2019-05-03 07:41  guess_idiom\.git\logs\
     文件         779  2019-05-03 16:36  guess_idiom\.git\logs\HEAD
     目录           0  2019-05-03 07:41  guess_idiom\.git\logs\refs\
     目录           0  2019-05-03 07:41  guess_idiom\.git\logs\refs\heads\
     文件         779  2019-05-03 16:36  guess_idiom\.git\logs\refs\heads\master
     目录           0  2019-05-03 07:41  guess_idiom\.git\logs\refs\remotes\
     目录           0  2019-05-03 16:08  guess_idiom\.git\logs\refs\remotes\origin\
     文件         182  2019-05-03 07:41  guess_idiom\.git\logs\refs\remotes\origin\HEAD
............此处省略82个文件信息

评论

共有 条评论