python中的小游戏如何让界面ios10怎么恢复滑动解锁

&>&python实现的小游戏
python实现的小游戏
上传大小:338KB
这款游戏主要就是一款简单的射击类游戏。有一架ship以及一大堆的alien 。 我们通过左右键控制ship左右移动,空格键是开火。当alien与ship相撞或者alien到达窗口底端都当做丢失一条生命,一场游戏有三条生命(可以通过设置文件设置数量)。有最高分以及等级等的显示。
综合评分:0
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
python实现的小游戏
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*投诉人姓名:
*投诉人联系方式:
*版权证明:
*详细原因:
python实现的小游戏Python 超级简单小游戏事例,求推荐 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
已注册用户请 &
推荐学习书目
Python Sites
值得关注的项目
Python 编程
Python 超级简单小游戏事例,求推荐
· 297 天前 · 1966 次点击
在字符界面运行的,一些有趣的,动脑子的小游戏
比如说猜谜语之类的
主要给刚学习的小朋友激起兴趣
求推荐几个
13 回复 &| &直到
06:24:21 +08:00
& &297 天前
& &297 天前
用 js 写不是更简单点,自荐下:
& &297 天前
上 pygame 写 2048 呗,命令行界面小朋友真会有兴趣么。。
& &297 天前
其实教小朋友真的 js 比较好
& &297 天前 via iPhone
& &297 天前 via iPhone
字符界面?文字游戏可以
& &297 天前
干嘛用的?自己玩还是学习源码给你一个贪吃蛇
显示 Gist 代码
& &297 天前 via iPhone
@ 手机端不灵敏,有时候需要划好多次才能动,差评?
& &297 天前 via iPhone
我一直想学 pygame 写个超级玛丽不知道难度怎么样
& &297 天前 via Android
@ 还需要优化滑动检测逻辑?
& &297 天前 via Android
& &297 天前
推荐这本书里面有比如猜数字,tic-tac-toe,牌匹配@ 超级玛丽送你
& &297 天前 via iPhone
@ 太感谢了!
& · & 1809 人在线 & 最高记录 3762 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.1 · 19ms · UTC 07:18 · PVG 15:18 · LAX 00:18 · JFK 03:18? Do have faith in what you're doing.用Python写一个无界面的2048小游戏
&更新时间:日 13:58:48 & 作者:赤木晴子梦
这篇文章主要介绍了用Python写一个无界面的2048小游戏的相关资料,需要的朋友可以参考下
以前游戏2048火的时候,正好用其他的语言编写了一个,现在学习python,正好想起来,便决定用python写一个2048,由于没学过python里面的界面编程,所以写了一个极其简单的无界面2048。游戏2048的原理和实现都不难,正好可以拿来练手,要是不知道这游戏的话,可以去网上查一下,或者下载一个到手机来玩一下,我就不在说其原理。我知道不放图的话大家一点兴趣都没,下面首先放一张游戏成型图,然后我们在来讲如何一步步用最基础的知识来实现。
一、生成4*4的矩阵
  游戏的第一步便是生成一个4*4的矩阵,当作我们游戏的主界面,其实说起来也比较简单,这里用了最原始的方法,直接用
print将其打印出来。首先我们要生成一个全为0的4*4二维列表,然后用一些类似& '┌ ├└,┤,┘┐│,─,┬,┴'这样的字符来组成我们的边框,下面来看一下代码的实现
matix=[[ for i in range()] for i in range()]
# 用列表推导式初始化生成一个*的列表,列表元素全为
# notzero函数的作用:游戏界面上非零的时候才显示,当为的时候,让其显示空,
def notzero(s):
return s if s!= else ''
# 非零的话返回本身,否则返回 ''
def display():                        # 显示界面函数,用┌ ├└,┤,┘┐│,─,┬,┴ 等显示边框,中间显示*矩阵里的的元素
print("\r\
┌──┬──┬──┬──┐\n\
│%s│%s│%s│%s│\n\
├──┬──┬──┬──┤\n\
│%s│%s│%s│%s│\n\
├──┬──┬──┬──┤\n\
│%s│%s│%s│%s│\n\
├──┬──┬──┬──┤\n\
│%s│%s│%s│%s│\n\
└──┴──┴──┴──┘"\
%(notzero(matix[][]),notzero(matix[][]),notzero(matix[][]),notzero(matix[][]),\
notzero(matix[][]),notzero(matix[][]),notzero(matix[][]),notzero(matix[][]),\
notzero(matix[][]),notzero(matix[][]),notzero(matix[][]),notzero(matix[][]), \
notzero(matix[][]),notzero(matix[][]),notzero(matix[][]),notzero(matix[][]),)
  来看一下上面代码的效果,是不是感觉一个游戏的框架已经到搭好了,由于初始化的时候,矩阵元素都为零,下面的图也就没有显示出0,是不是很简单,一个游戏的界面就被我们搭好了,不过毕竟没学过界面,所以大家就不要抱怨这界面有多么丑了哈。
        
二、初始化生成随机数
这个游戏每次开始的时候都会随机在上面的一个矩阵中生成两个随机数2或4,那么我们要如何来实现在上面矩阵中随机的一个位置生成一个随机数2或4了,当然是用到我们前面学过的random模块以及divmod(),下面我们就来看一下如何用random模块实现着一功能。
def init():
# 初始化矩阵
initNumFlag =
k = if random.randrange(, ) & else
# 当生成随机数大于的时候k=否则k= 生成和的概率为:
s = divmod(random.randrange(, ), )
# 生成矩阵初始化的下标 比如divmod(,)的话,s为(,)正好可以作为矩阵下标
if matix[s[]][s[]] == :
# 只有当其值不为的时候才赋值,避免第二个值重复
matix[s[]][s[]] = k
initNumFlag +=
if initNumFlag == :
# 当initNumFlag== 的话表示矩阵里两个随机数都已经生成了,退出循环
display( )
  来看一下上面代码的效果,是不是已经在两个随机的位置生成了两个数,如果大家有时间的试一下,可以看见每次执行的时候,出现在矩阵上面位置不一样,而且每次出现的数也不一样,因为我上面设置了出现2:4的概率为9:1所以大多时候出现2,这也是游戏的需要。到了这里矩阵已经可以动起来了,游戏的功能也可以说完成了一半。
三、游戏逻辑部分实现
&  如果玩过这游戏的话就知道,游戏中每次向上下左右移动的时候,比如像下移动的话,所有的数都会向下移动,碰到相同的数,就会成一个新的数,比如2和2碰到的话,就会生成4,然后再随机在其他位置生成一个2或4 ,同理4和4碰到的话也会生成8,直到合成了2048游戏就算成功了,或者说矩阵中的数字都不能移动那就是Game Over。当然我们在手机上玩游戏的话,随便滑动一下,所有的数字就可以向其中一个方向滑动,但是这里没有界面,条件比较艰苦,所以只能从控制台读入用户输入的字母,然后一个个来判断是向哪里移动了,所以我们要写4个函数来分别处理用户的上下左右移动,让后一个函数处理在每次用户移动后,如何添加一个随机数,下面先写一段伪代码来解释流程
def addRandomNum():            #每次移动后随机在矩阵中在生成一个数
      
def moveDown():              #向上移动的处理函数
addRandomNum()             #移动处理完成后,随机生成一个数
def moveLeft():               #向左移动的处理函数
addRandomNum()
def moveUp():              
#向上移动的处理函数
addRandomNum()
def moveRight():            
#向右移动的处理函数
addRandomNum()
def main():
while flag:                          #定义一个死循环,不断读入用户的输入,然后在做判断,看是向哪里移动
d = input(' (↑:w) (↓:s) (←:a) (→:d),q(uit) :“)
if d == 'a':
moveLeft()
elif d == 's':
moveDown()
elif d == 'w':
elif d == 'd':
moveRight()
elif d == 'q':
上面是一段为了理解的伪代码,下面我们来看一下如何实现移动处理函数,这里是整个游戏中最难处理的部分,完成了这一部分的话,整个游戏也就基本上实现了,这里我以向下的移动处理函数为例,其他的都一样,当用户输入向下移动的时候,所有的数字都向下移动,如果碰到相同的数字要和并,有数字的方块向没有数字的方块移动。这里需要用循环实现,有4列所以最外层的循环有4次,每一列里面又需要循环处理,下面来看一下具体怎么实现,
def addRandomNum():                        # 跟初始化生成随机数一样,只不过这里只是生成一个随机数
k = if random.randrange(, ) & else
s = divmod(random.randrange(, ), )
if matix[s[]][s[]] == :
matix[s[]][s[]] = k
display()                           # 随机数添加完成后就直接调用显示函数,直接显示一下游戏界面
def moveDown():                                #处理向下移动的函数
for i in range():                            #外层次循环处理例,内层两个层循环,来处理相邻的两个数
for j in range(, , -):
for k in range(j - , -, -):
if matix[k][i] & :                    # 从最下面的数开始处理相邻的两个数
if matix[j][i] == :
matix[j][i] = matix[k][i]            # 如果下面的数为空,上面的数字不为空就移动上面的数为下面的数
matix[k][i] =
elif matix[j][i] == matix[k][i]:          # 如果相邻的两个数相等的话,就和并,并把上面的输置零,下面的数变成两倍
matix[j][i] *=
matix[k][i] =
addRandomNum()                              # 移动完成后再随机生成一个数
写完了向下移动的处理函数,那么向其他方向的移动函数也一样,照着写,就可以,到这里游戏中最难的部分就完成,可以说胜利就在眼前了,好了在这之前,我们还需要处理一下其他问题,那就是每次移动后都要检查,游戏是不是Game Over了,还有就是定义一个变量来纪录分数了,这些实现起来都比较简单。
四、游戏纪录分数和检查游戏是否结束
  游戏结束的标志是矩阵中所有的数都不为0,而且所有相邻的数都不能合并,根据这个我们就可以来写一个函数来判断游戏是否GG,至于分数纪录,我们只需定义一个变量,然后每次有何并的时候,就加上一定的分数即可。下面我们来看检查函数的实现。
def check():            
for i in range(4):        #按每一排循环4 次
for j in range(3):      # 如果矩阵中有0存在,或者有相邻的数就表示游戏还可以继续经行,否则就是GG
if matix[i][j] == 0 or matix[i][j] == matix[i][j + 1] or matix[j][i] == matix[j + 1][i]:
return True
return False
五、完整游戏源码  
  完成了上面的部分,整个游戏的过程就实现了,下面附上整个游戏的源码。游戏还有很多不够完善的地方,比如说游戏中如果出现2048的话,就表示玩家胜利,游戏结束,但是我这里没有做处理,所以这个游戏可以一直玩到4096....没有结束,除非你游戏中GG了,要处理也很简单,还可以将矩阵存在文件中,完成一个游戏存档的功能。有兴趣的话大家去实现一下。
import random
score = 0                         # 纪录游戏的分数
matix = [[0 for i in range(4)] for i in range(4)] # 初始化生成一个4*4的列表
def notzero(s):
return s if s != 0 else ''
def display():
print("\r\
┌──┬──┬──┬──┐\n\
│%4s│%4s│%4s│%4s│\n\
├──┬──┬──┬──┤\n\
│%4s│%4s│%4s│%4s│\n\
├──┬──┬──┬──┤\n\
│%4s│%4s│%4s│%4s│\n\
├──┬──┬──┬──┤\n\
│%4s│%4s│%4s│%4s│\n\
└──┴──┴──┴──┘" \
% (notzero(matix[0][0]), notzero(matix[0][1]), notzero(matix[0][2]), notzero(matix[0][3]), \
notzero(matix[1][0]), notzero(matix[1][1]), notzero(matix[1][2]), notzero(matix[1][3]), \
notzero(matix[2][0]), notzero(matix[2][1]), notzero(matix[2][2]), notzero(matix[2][3]), \
notzero(matix[3][0]), notzero(matix[3][1]), notzero(matix[3][2]), notzero(matix[3][3]),)
def init():                               # 初始化矩阵
initNumFlag = 0
k = 2 if random.randrange(0, 10) & 1 else 4       # 随机生成 2 或 4
s = divmod(random.randrange(0, 16), 4)          # 生成矩阵初始化的下标
if matix[s[0]][s[1]] == 0:                  # 只有当其值不为0的时候才赋值,避免第二个值重复
matix[s[0]][s[1]] = k
initNumFlag += 1
if initNumFlag == 2:
def addRandomNum():                        #处理完移动后添加一个新的随机数
k = 2 if random.randrange(0, 10) & 1 else 4
s = divmod(random.randrange(0, 16), 4)
if matix[s[0]][s[1]] == 0:
matix[s[0]][s[1]] = k
def check():                            #检查游戏是否GG
for i in range(4):
for j in range(3):
if matix[i][j] == 0 or matix[i][j] == matix[i][j + 1] or matix[j][i] == matix[j + 1][i]:
return True
return False
def moveRight():                         # 向右移动处理函数
global score
for i in range(4):
for j in range(3, 0, -1):
for k in range(j - 1, -1, -1):
if matix[i][k] & 0:
if matix[i][j] == 0:
matix[i][j] = matix[i][k]
matix[i][k] = 0
elif matix[i][j] == matix[i][k]:
matix[i][j] *= 2
score += matix[i][j]       #将当前数作为score加上
matix[i][k] = 0
addRandomNum()
def moveUp():
global score
for i in range(4):
for j in range(3):
for k in range(j + 1, 4):
if matix[k][i] & 0:
if matix[j][i] == 0:
matix[j][i] = matix[k][i]
matix[k][i] = 0
elif matix[k][i] == matix[j][i]:
matix[j][i] *= 2
score += matix[j][i]
matix[k][i] = 0
addRandomNum()
def moveDown():
global score
for i in range(4):
for j in range(3, 0, -1):
for k in range(j - 1, -1, -1):
if matix[k][i] & 0:
if matix[j][i] == 0:
matix[j][i] = matix[k][i]
matix[k][i] = 0
elif matix[j][i] == matix[k][i]:
matix[j][i] *= 2
score += matix[j][i]
matix[k][i] = 0
addRandomNum()
def moveLeft():
global score
for i in range(4):
for j in range(3):
for k in range(1 + j, 4):
if matix[i][k] & 0:
if matix[i][j] == 0:
matix[i][j] = matix[i][k]
matix[i][k] = 0
elif matix[i][j] == matix[i][k]:
matix[i][j] *= 2
score += matix[i][j]
matix[i][k] = 0
addRandomNum()
def main():
\033[33;1mWelcome to the Game of m")
flag = True
while flag:                                    #循环的标志
\033[33;1m You Score:%s\033[0m' % (score))
d = input('\033[33;1m (↑:w) (↓:s) (←:a) (→:d),q(uit) :\033[0m')
#不断处理用户输入
if d == 'a':                                  
moveLeft()
if not check():                             #检查游戏是否GG
print('GG')
flag = False                             #GG的话直接退出
elif d == 's':
moveDown()
if not check():
print('GG')
flag = False
elif d == 'w':
if not check():
print('GG')
flag = False
elif d == 'd':
moveRight()
if not check():
print('GG')
flag = False
elif d == 'q':                          # 退出
else:                                # 对用户的其他输入不做处理
if __name__ == '__main__':
最后在附上一张图片最为结束
以上所述是小编给大家介绍的用Python写一个无界面的2048小游戏,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具&&&原python开发控制台交互简单小游戏运行环境:pycharm& python环境2.7项目截图(必传):运行截图(必传):以上都是部分代码个部分运行截图。猜你喜欢已有2人打赏2个牛币请下载代码后再发表评论//spaceShipConsole.py精精精精原精精原原精原原原相关分享精原原原原精原最近下载&LV64&LV2&LV2&LV16&LV11&LV9&LV136最近浏览暂无贡献等级&LV1&LV1&LV4暂无贡献等级&LV8&LV10&LV8暂无贡献等级&LV10扫描二维码关注最代码为好友"/>扫描二维码关注最代码为好友手把手教你用Python完成一个控制台小游戏
手把手教你用Python完成一个控制台小游戏
通过演示一个简单的控制台小游戏制作,手把手教你如何用Python编写一个游戏程序,是个新手也完全可以跟着操作。
很多人想学Python程序设计或者已经了解过一点Python程序设计基础,却没办法开发出一个项目。
今天,通过演示一个简单的控制台小游戏制作,手把手教你如何用Python编写一个游戏程序,即便你是个新手,也完全可以跟着操作。
开始前,我们先简明扼要的讨论一下Python是什么,以及Python应该注意的一些规范。
1、Python简介
Python广泛应用web开发、人工智能、数据分析、自动化运维领域,对初学者来说,是一门相对于其他程序设计语言来讲容易上手的一门程序设计语言。
在Python之中使用#来表示单行注释,三重引号来表示多行注释,注释应该遵循 “奥卡姆剃刀原理”,即不要使用不必要的注释,好的代码胜于千言万语。
如无必要,勿增实体在对变量和函数命名的时候,尽量要使用英文单词,一眼就能明白该变量或该函数的用处。
如有必要,可以使用todo注释,来表明将来要做某事,例如下面的注释
# TODO(Zeke) Change this to use relations.
那么接下来,我们进入这次文章的主题吧——控制台的井字棋游戏,效果如下图所示。
既然是控制台游戏,我们欢迎界面就不做的花里胡哨的了。
1、首先我们先创建一个欢迎界面(界面如下)
其实就是在屏幕上输出下面格式的内容
我们可以使用pycharm、IDLE、sublime等开发工具来帮助我们开发,首先我们先创建一个game.py文件,打开文件,输入如下的代码:
此时,我们可以测试一下,这个欢迎界面是否正常。
2、确认玩家选择哪种标记
这里我们就假设只能选择O或者X?这里我们让玩家自己选择。我们一样定一个函数来确定玩家的使用标记。
3、确认玩家还是电脑先手这里采用了random模块,来随机确定玩家先手还是电脑先手。
原理:我们产生一个从0到1的随机整数,如果是0就是电脑先手,如果非0就是玩家先手。
4、接下来主要的游戏逻辑部分的确定,输赢判断的逻辑(重点)。
我们先把游戏的步骤给大家分析清楚了。
5、游戏的运行逻辑
电脑与玩家轮流下棋,每次下棋都要判断要下的位置是否已经有棋了,并且下完后判断是否产生了进行输赢的判断。
原文发布时间为:本文作者: 小詹学Python本文来自云栖社区合作伙伴“”,了解相关信息可以关注“”
用云栖社区APP,舒服~
【云栖快讯】诚邀你用自己的技术能力来用心回答每一个问题,通过回答传承技术知识、经验、心得,问答专家期待你加入!&&
文章5297篇
以阿里云成熟的商业化云服务为基础,为游戏开发者、运营企业提供专属集群、尊享VIP服务、专项扶...
一个稳定可靠的集中式访问控制服务。您可以通过访问控制将阿里云资源的访问及管理权限分配给您的企...
云数据库PPAS版,是阿里云与EnterpriseDB公司合作基于PostgreSQL高度兼...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效...
阿里云总监课正式启航}

我要回帖

更多关于 ios10怎么恢复滑动解锁 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信