没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
最近看到很多人玩成语填字游戏,那么先用pygame来做一个吧,花了大半天终于完成了,附下效果图。 偷了下懒程序没有拆分,所有程序写在一个文件里,主要代码如下: # -*- 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
资源推荐
资源详情
资源评论
pygame实现成语填空游戏实现成语填空游戏
最近看到很多人玩成语填字游戏,那么先用pygame来做一个吧,花了大半天终于完成了,附下效果图。
偷了下懒程序没有拆分,所有程序写在一个文件里,主要代码如下:
# -*- 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((width,height))
screencaption = pygame.display.set_caption(u'成语填空')
font = pygame.font.Font(u'syht.otf', int(block_size*0.8))
dray_gray = 50,50,50
white = 255,255,255
#textImage = font.render(u'你好', True, white)
class IdiomInfo(object):
def __init__(self,idiom):
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 = [(-1,0),(1,0),(0,-1),(0,1)]
for dx,dy in move_arr:
tx = x + dx
ty = y + dy
if (tx,ty) 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)
cx,cy = word_info.i, word_info.j
ignore_set = set([(cx,cy)])
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 None,None
剩余7页未读,继续阅读
资源评论
weixin_38677227
- 粉丝: 4
- 资源: 929
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功