小试牛刀的简易成语接龙。

思路——

1、网上下载成语字典的txt版本

2、通过python进行处理得到格式化的成语,并整理成字典(python字典查找速度快)

3、python程序,查找 用户输入的最后一个字和字典里首字一致的,放入列表,并通过random进行随机选择,然后输出

字典整理部分:转换成字典

file = open(r'D:\Desktop\zidian.txt').readlines()
f = open(r'D:\Desktop\zidian3.txt','w')
x={}
num = 0
for i in file:
print i[2:10]
x[num] = i[2:10]
f.write("'%s':u'%s',\n"%(num,i[2:10]))
num+=1
f.close()

转换成字典——类似格式

chengyu = {

'0':u'阿党比周',
'1':u'阿平绝倒',
'2':u'阿权膴仕',
'3':u'阿时趋俗',
'4':u'阿世媚俗',
'5':u'阿世取容'……}

判断部分:通过input获取成语,然后截取最后一个字,在字典中寻找该字开头的成语,并输出。加入try,except,防止找不到成语的错误。(字典不全,只有20000+数据)

while 1:
list = []
s =raw_input('请输入成语:')
ns = s.decode('gbk')[-1:]
try:
for i in chengyu.values():
ni = i[:1]
if ns == ni:
list.append(i)
print u'接龙:',len(list),random.choice(list) except:
print u'接龙:是在下输了'

效果图:没有进行优化处理,没有判断用户输入是否输入正确成语。 

程序比较简易,主要困难在于编码的转换,困惑了很久。

1、判断字是否相等的时候,如果编码格式不一致,是不能比较的,会发生错误。str是gbk编码,先解码成unicode,然后在进行比较。

2、如果不知道编码,可使用isinstance(s, unicode)判断,或者import  chardet,然后用chardet.detect(TestData)查询格式(偶然看到关于编码,这里有比较好的说明http://www.cnblogs.com/drsnow/p/7017129.html)

3、先解码s.decode('gbk')[-1:],和s[-1:].decode('gbk')是不一样的效果,前者是对的,后者也会出错

python——成语接龙小游戏的更多相关文章

  1. python成语接龙小游戏

    上一篇讲了小游戏的坑现在把源码放出来 #coding:utf-8 import string import pypinyin import sys import random print(" ...

  2. 用Python设计一个经典小游戏

    这是关于Python的第9篇文章,介绍如何用Python设计一个经典小游戏:猜大小. 在这个游戏中,将用到前面我介绍过的所有内容:变量的使用.参数传递.函数设计.条件控制和循环等,做个整体的总结和复习 ...

  3. Python开发接水果小游戏

    我研发的Python游戏引擎Pylash已经更新到1.4了.如今我们就来使用它完毕一个极其简单的小游戏:接水果. 下面是游戏截图: 游戏操作说明:点击屏幕左右两边或者使用键盘方向键控制人物移动.使人物 ...

  4. python【控制台】小游戏--贪吃蛇

    传统贪吃蛇相信大家都玩过,也是一款很老很经典的游戏,今天我们用python控制台实现 项目有很多bug没有解决,因为本人一时兴起写的一个小游戏,所以只是实现可玩部分功能,并没有花较多的时间和精力去维护 ...

  5. 【Python】猜数小游戏(文件操作)

    人生苦短,我用Python 关键词 1.多用户 2.字典记录所有成绩 3.每次游戏轮数&总游戏次数&平均每次游戏需要多少轮 字典Dictionary.列表List.元组Tuple差异化 ...

  6. python做一个数独小游戏

    最近看了下python的一些知识,在这里记载一下. 1.首先是安装,在官网下载最新的版本3.6,安装的时候要注意在下面勾选上ADD TO PATH,安装的时候会自动写入到环境变量里面,如果没有勾选,可 ...

  7. 【Python】猜数小游戏

    有点沙雕 temp=input("猜猜我心里想的是哪个数字?") guess=int (temp) if guess==8: print("你是我肚里的蛔虫么?" ...

  8. Python制作塔防小游戏

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块.

  9. python学习-6 猜拳小游戏

    import random # 调用随机数模块 pc = random.randint(1,3) # 产生1-3的随机数 print("来玩个猜拳游戏吧!") a = '石头' b ...

随机推荐

  1. C++string,char* 字符数组,int类型之间的转换

    string.int 常见类型之间相互转换 int & string 之间的转换 C++中更多的是使用流对象来实现类型转换 针对流对象 sstream实现 int,float 类型都可以实现 ...

  2. 18年ACM赛后总结

    今天,我们浙理养老队在18年赛季的比赛正式宣布结束了,先恭喜我们队在3场区域赛中拿了两块金牌,一块银牌,损失我的身份证我的U盘我的耳机,老天啊,队友不是拿来顶替自己的霉运的嘛,让他们的丢东西啊,别让我 ...

  3. hdu 3974 Assign the task(线段树)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=3974 题意:给定一棵树,50000个节点,50000个操作,C x表示查询x节点的值,T x y表示更 ...

  4. Constructing Roads HDU 1102

    There are N villages, which are numbered from 1 to N, and you should build some roads such that ever ...

  5. 【Offer】[66] 【构建乘积数组】

    题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 给定一个数组A[0, 1, -, n-1],请构建一个数组B[0, 1, -, n-1],其中B中的元素B[i] =A[0]×A[1]× ...

  6. 使用xampp将angular项目运行在web服务器

    需求 在开发angular项目时,因为需要做自适配以适应不同的屏幕,而我的电脑只有1366的.所以我现在需要在本地将angular项目运行在xampp上,然后用手机开热点,给本机和另一台大屏电脑或手机 ...

  7. Spring Boot2 系列教程(四)理解Spring Boot 配置文件 application.properties

    在 Spring Boot 中,配置文件有两种不同的格式,一个是 properties ,另一个是 yaml . 虽然 properties 文件比较常见,但是相对于 properties 而言,ya ...

  8. maven打包插件maven-assembly-plugin

    1.POM文件添加jar包生成插件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifac ...

  9. 理解Yarn的执行流程和组件作用

    Yarn引入案例 1.学生找院长报到,院长给学生一个学号 2.院长比较忙,继续找主任处理学生事务 3.系主任找院办给学生分配资源(书本) 4.主任找张老师教授java 5.张老师给学生安排座位 6.学 ...

  10. windows2008r2安装笔记

    安装win7主题 控制面板 - 程序 - 打开或关闭windows功能 - 功能 - 添加功能: 在选择功能里勾选 桌面体验(会添加必要功能),安装就行了. 1.安装好后,个性化时,发现win7主题为 ...