就是吧,别人word发给别人格式变了我一个文件,那个文件就是用Python写好的游戏,然是玩这个游戏的画面。求求诸位!

【Python 第41课】 用文件保存游戏(3)_crossin的编程教室吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:1,191贴子:
【Python 第41课】 用文件保存游戏(3)
你的小游戏现在已经可以保存成绩了,但只有一组成绩,不管谁来玩,都会算在里面。所以今天我还要加上一个更多的功能:存储多组成绩。玩家需要做的就是,在游戏开始前,输入自己的名字。而我会根据这个名字记录他的成绩。这个功能所用到的内容我们几乎都说过,现在要把它们结合起来。
投资上玖富网,注册即可获得300元红包!3000万+注册用户,银行及风控体系
首先要输入名字,这是我们用来区分玩家成绩的依据:name = raw_input('请输入你的名字:')接下来,我们读取文件。与之前不同,我们用readlines把每组成绩分开来:lines = f.readlines()再用一个字典来记录所有的成绩:scores = {}for l in lines:
 s = l.split()
 scores[s[0]] = s[1:]这个字典中,每一项的key是玩家的名字,value是一个由剩下的数据组成的数组。这里每一个value就相当于我们之前的成绩数据。我们要找到当前玩家的数据:score = scores.get(name)字典类的get方法是按照给定key寻找对应项,如果不存在这样的key,就返回空值None。所以如果没有找到该玩家的数据,说明他是一个新玩家,我们给他初始化一组成绩:if score is None:
 score = [0, 0, 0]这是我们拿到的score,已经和上一课中的score一样了,因此剩下的很多代码都不用改动。
当游戏结束,记录成绩的时候,和之前的方法不一样。我们不能直接把这次成绩存到文件里,那样就会覆盖掉别人的成绩。必须先把成绩更新到scores字典中,再统一写回文件中。把成绩更新到scores中,如果没有这一项,会自动生成新条目:scores[name] = [str(game_times), str(min_times), str(total_times)]对于每一项成绩,我们要将其格式化:result = ''for n in scores:
 line = n + ' ' + ' '.join(scores[n]) + '\n'
 result += line把scores中的每一项按照“名字 游戏次数 最低轮数 总轮数\n”的格式拼成字符串,再全部放到result里,就得到了我们要保存的结果。最后就和之前一样,把result保存到文件中。
如果你充分理解了这个程序,恭喜你,你对文件处理已经有了一个基本的了解。在日常工作学习中,如果需要处理一些大量重复机械的文件操作,比如整理格式、更改文件中的部分文字、统计数据等等,都可以试着用python来解决。
微信ID:crossincodeQQ群:面向零基础初学者的编程课每天5分钟,轻松学编程
老师,帮我看一下我的程序,问题出在哪里,学的编程,写的比较烂。我还没学过后面的课程,所以不知道这些问题是不是你后面有解答,但还是先问一下。代码基本上跟老师的一样,只是自己加了一个分数统计,先说一下这个分数统计吧,我本来想把分数统计加到函数里面(下面标记2部分),但总是报错,所以现在注释掉了,但不知道为什么会报错。还有一个问题是split(),(我做标记1那里),我发现这里split()换成split(‘ ’)程序也可以运行,但是查看记录成绩的文件,会发现多出很多空白行出来,不知道split()跟split(‘ ’)在这里的解释上有什么区别。最后也是最想问的一个问题是,我这个程序运行的时候,如果输入的名字是汉字的话,成绩无法累加,也就是说不管这个名字已经玩了几次了,每次开始成绩都是重新计算的,但如果名字是字母、数字的话则没有这种问题。最后一张图就是记录我成绩的文件内容。
以下这一段理解不了,result = ''for n in scores:
line = n + ' ' + ' '.join(scores[n]) + '\n'
result += line 把scores这个字典里面的键值 赋予 n,
执行条件 line=n+ ‘ ’+' '.join(scores[n])#意味着line= 字典scores n的游戏次数 n的最快猜出轮数 n的猜过的总轮数
但是字典scores 本身是空的。还是说这里的n代表name的意思?
Traceback (most recent call last):File&C:\Python27\123123.py&, line 38, in &module&
if gametimes == 0 or time & mintimes:NameError: name 'time' is not defined
,照着你的代码打跳出着个错误,原始数据是0 0 0,第一次输入cj,答对后自动保存了,再次打开会显示第一次的数据,但是第二次bingo后就会跳错误。
贴吧热议榜
使用签名档&&
保存至快速回贴Pygame的历史
Pygame是一个利用SDL库的写就的游戏库,SDL呢,全名Simple DirectMedia Layer,是一位叫做Sam Lantinga的大牛写的,据说他为了让Loki(致力于向Linux上移植Windows的游戏的一家大好人公司,可惜已经倒闭,唉好人不长命啊……)更有效的工作,创造了这个东东。
SDL是用C写的,不过它也可以使用C++进行开发,当然还有很多其它的语言,Pygame就是Python中使用它的一个库。Pygame已经存在很多时间了,许多优秀的程序员加入其中,把Pygame做得越来越好。
安装Pygame
www.pygame.org
下载Pygame,选择合适你的操作系统和合适的版本,然后安装就可以了(什么,你连Python都没有?您可能是不适合看这个系列了,不过如果执意要学,很好!快去
www.python.org
下载吧!)。 一旦你安装好,你可以用下面的方法确认下有没有安装成功:
1.9.1release
你的版本可能和我不同,这没关系。我所翻译的这本书上的版本还是1.7.1的……所以如果有些过时的不合时宜的东西,千万不要客气请指出来!
若说为什么要介绍这么一个“过时”的东西,真正的知识是不会过时的,只有技术才会。这里主要是依靠Pygame来介绍的游戏开发的方方面面,并不是说咱就可以靠这个做出什么伟大的游戏了(当然也不是说不可以)!
另外说一下,就产品而言,Pygame更致力于2D游戏的开发,也就是说,你可以用Pygame写一个植物大战僵尸,但是写一个魔兽世界则相当困难……请不要做出鄙夷的目光,底层的东西永远是相通的,而且对于新手而言,从简单的2D入手才是正途。
使用Pygame
Pygame有很多的模块,下面是一张一览表:
pygame.cdrom
pygame.cursors
pygame.display
访问显示设备
pygame.draw
绘制形状、线和点
pygame.event
pygame.font
pygame.image
加载和存储图片
pygame.joystick
使用游戏手柄或者 类似的东西
pygame.key
读取键盘按键
pygame.mixer
pygame.mouse
pygame.movie
pygame.music
pygame.overlay
访问高级视频叠加
就是我们在学的这个东西了……
pygame.rect
管理矩形区域
pygame.sndarray
操作声音数据
pygame.sprite
操作移动图像
pygame.surface
管理图像和屏幕
pygame.surfarray
管理点阵图像数据
pygame.time
管理时间和帧信息
pygame.transform
缩放和移动图像
有些模块可能在某些平台上不存在,你可以用None来测试一下。
"The font module is not available!"
新的Hello World
学程序一开始我们总会写一个Hello world程序,但那只是在屏幕上写了两个字,现在我们来点更帅的!写好以后会是这样的效果:
#!/usr/bin/env python
background_image_filename
'sushiplate.jpg'
mouse_image_filename
'fugu.png'
#指定图像文件名称
#导入pygame库
#导入一些常用的函数和常量
#向sys模块借一个exit函数用来退出程序
#初始化pygame,为使用硬件做准备
#创建了一个窗口
set_caption
"Hello, World!"
#设置窗口标题
background
background_image_filename
mouse_cursor
mouse_image_filename
convert_alpha
#加载并转换图像
#游戏主循环
#接收到退出事件后退出程序
background
#将背景图画上去
#获得鼠标位置
mouse_cursor
mouse_cursor
get_height
#计算光标的左上角位置
mouse_cursor
#把光标画上去
#刷新一下画面
这个程序需要两张图片,你可以在这篇文章最后的地方找到下载地址,虽然你也可以随便找两张。为了达到最佳效果,背景的 sushiplate.jpg应要有640×480的分辨率,而光标的fugu.png大约应为80×80,而且要有Alpha通道(如果你不知道这是 什么,还是下载吧……)。
:代码中的注释我使用的是中文,如果执行报错,可以直接删除。
游戏中我已经为每一行写了注释,另外如果打算学习,强烈建议自己动手输入一遍而不是复制粘贴!
稍微讲解一下比较重要的几个部分:
会返回一个Surface对象,代表了在桌面上出现的那个窗口,三个参数第一个为元祖,代表分 辨率(必须);第二个是一个标志位,具体意思见下表,如果不用什么特性,就指定0;第三个为色深。
FULLSCREEN
创建一个全屏窗口
创建一个“双缓冲”窗口,建议在HWSURFACE或者OPENGL时使用
创建一个硬件加速的窗口,必须和FULLSCREEN同时使用
创建一个OPENGL渲染的窗口
创建一个可以改变大小的窗口
创建一个没有边框的窗口
函数是将图像数据都转化为Surface对象,每次加载完图像以后就应该做这件事件(事实上因为 它太常用了,如果你不写pygame也会帮你做);
convert_alpha
相比convert,保留了Alpha 通道信息(可以简单理解为透明的部分),这样我们的光标才可以是不规则的形状。
游戏的主循环是一个无限循环,直到用户跳出。在这个主循环里做的事情就是不停地画背景和更新光标位置,虽然背景是不动的,我们还是需要每次都画它, 否则鼠标覆盖过的位置就不能恢复正常了。
是个重要函数,第一个参数为一个Surface对象,第二个为左上角位置。画完以后一定记得用
更新一下,否则画面一片漆黑。
这是一个最最大概的Pygame程序的印象,接下来我们会学习更多深层次的东西,并且把各条语句都真正读懂。
python学习资料交流群:
每天会更新视频资料,可以随便下载。
想继续更新吗?想的话就留言
本文来自微信公众账号提交,由微讯啦收录,转载请注明出处。
微信扫码 分享文章本帖子已过去太久远了,不再提供回复功能。suduko 一个python语言实现的数独游戏,可以直接输出到excel中玩。这个是特色。 Windows Develop 238万源代码下载-
&文件名称: suduko
& & & & &&]
&&所属分类:
&&开发工具: Python
&&文件大小: 3 KB
&&上传时间:
&&下载次数: 9
&&提 供 者:
&详细说明:一个python语言实现的数独游戏,可以直接输出到excel中玩。这个是特色。-A python language Sudoku, you can direct output to excel in the play. This is characteristic.
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&suduko.py
&近期下载过的用户:
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - 使用python生成数独的源码,本算法生成的数独有一定的难度,可以再程序中设置空的数字个数
&[] - 自动玩Windows下的扫雷游戏的例程,是学习用Python编写游戏外挂程序的经典入门例程
&[] - 打猴子的python游戏代码。此程序包括两个移动的对象,和计分器。
&[] - 一个简单的贪吃蛇游戏,和正常的贪吃蛇没有太大的区别
&[] - 这是一款用python实现的简单易趣的跳棋小游戏,游戏中你需要通过点击的方式控制画面中的一个棋子,再从横行或纵向跳过另外的棋子从而消掉这个棋子,画面中只剩下一个棋子后就可过关。
&[] - 一个猜单词的python小游戏,内有难度调整,以及各种作弊功能

我要回帖

更多关于 微信怎么截图发给别人 的文章

 

随机推荐