资源简介
pygame做的成语猜字游戏,每一关的题目均为随机动态生成,理论可以关数无限,成语字库可以切换成其他元素(如果改成英文单词的话也可以正常使用)。
https://blog.csdn.net/zhangenter/article/details/89807613
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\desc
文件 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-reba
文件 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个文件信息
相关资源
- Comprehensive_Experiment.zip
- 斗地主服务端源码(含客户端程序)
- Web安全之强化学习与GAN
- heroku-x64.exe
- geany-1.34.1_setup.exe
- vgg_generated_120.i等.tar.gz
- 《Tensorflow:实战Google深度学习框架》
- 22个爬虫项目源码 绝对实用
- 包含数据分析和数据挖掘的学习代码
- pygame-飞机大战.py
- 与孩子一起学编程_中文版
- Google App Engine 最新版 (google_appengin
- 基于flask框架连接数据库的图书管理系
- 大四生产实习报告
- Anaconda3-5.1.0-Windows-x86_64 最新版
- 肺结节分类算法代码
- 视频摄像头SSD模型目标检测.zip
- PyQt5-5.11.2-5.11.1-cp35.cp36.cp37.cp38-none-w
- dota2胜率预测模型源码
- BoW(Bag of Words)词袋模型.zip
- mongodb-compass-1.19.3-win32-x64.msi MongoDB可
- 谁说菜鸟不会数据分析
- scipy-0.19.1-cp27-cp27m-win32.whl(免积分)
- PyQt5快速开发与实战PDF 带目录
- 电商产品评论数据情感分析 stoplist
- numpy-1.13.3+mkl-cp36-cp36m-win_amd64
- 基于TensorFlow的手写中文识别
- 基于深度学习的银行卡号识别系统
- cifar10的训练好的tfrecord文件
- numpy-1.16.4+mkl-cp35-cp35m-win_amd64.whl
评论
共有 条评论