python2048游戏代码_【Python】用Python实现2048小游戏(源代码,1.0版本)
#2048 用python实现
import random
import math
import os
global score
score = 0
def start():#开始
a = [[0 for i in range(4)] for i in range(4)] #构造一个4*4的列表
i = random.randint(0,3)
j = random.randint(0,3)
p2 = random.random()
if p2>0.9: a[i][j] = 4 #有0.9几率出现2
else: a[i][j] = 2
display(a)
def display(a):
os.system('cls')
global score
if (notlose):
print('现在你的分数:',score)
for i in range(4):
for j in range(4):
print("%6s" % a[i][j] , end = '')
print()
action = input('请输入移动方向。输入wsad分别表示上下左右。请注意调成小写模式。')
move(action,a)
else:
print('没有可以用的数字。游戏结束。你得了',score,'分')
def move(action,a):
if action == 'w':
up(a)
elif action == 's':
down(a)
elif action == 'a':
left(a)
elif action == 'd':
right(a)
else:
print('非法操作。')
display(a)
def left(a):
global score
for i in range(0,4):
for j in range(3,0,-1):
#print('test : a[' ,i,'][', j,'] = ' ,a[i][j])
if a[i][j-1] == 0:
a[i][j-1] = a[i][j]
a[i][j] = 0
elif a[i][j-1] == a[i][j]:
a[i][j-1] = 2 * a[i][j]
a[i][j] = 0
score +=a[i][j-1]
newnum(a)
def down(a):
global score
for j in range(0,4):
for i in range(0,3):
#print('test : a[' ,i,'][', j,'] = ' ,a[i][j])
if a[i+1][j] == 0:
a[i+1][j] = a[i][j]
a[i][j] = 0
elif a[i+1][j] == a[i][j]:
a[i+1][j] = 2 * a[i][j]
a[i][j] = 0
score +=a[i+1][j]
newnum(a)
def up(a):
global score
for j in range(0,4):
for i in range(3,0,-1):
#print('test : a[' ,i,'][', j,'] = ' ,a[i][j])
if a[i-1][j] == 0:
a[i-1][j] = a[i][j]
a[i][j] = 0
elif a[i-1][j] == a[i][j]:
a[i-1][j] = 2 * a[i][j]
a[i][j] = 0
score +=a[i-1][j]
newnum(a)
def right(a):
global score
for i in range(0,4):
for j in range(0,3):
#print('test : a[' ,i,'][', j,'] = ' ,a[i][j])
if a[i][j+1] == 0:
a[i][j+1] = a[i][j]
a[i][j] = 0
elif a[i][j+1] == a[i][j]:
a[i][j+1] = 2 * a[i][j]
a[i][j] = 0
score +=a[i][j+1]
newnum(a)
def newnum(a):
while (1):
i = random.randint(0,3)
j = random.randint(0,3)
if a[i][j] == 0:
a[i][j] = random.choice([2,2,2,2,2,2,2,2,2,4])
break
display(a)
def notlose(a):
for i in range(3):
for j in range(3):
if a[j][i] == a[j][i+1]:
return True
if a[j][i] == a[j+1][i]:
return True
return False
start()
python2048游戏代码_【Python】用Python实现2048小游戏(源代码,1.0版本)相关推荐
- c#推箱子小游戏代码_用C#制作推箱子小游戏
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading. ...
- python里graphics的使用_使用graphics.py实现2048小游戏
1.过年的时候在手机上下载了2048玩了几天,心血来潮决定用py写一个,刚开始的时候想用QT实现,发现依赖有点大.正好看到graphics.py是基于tkinter做的封装就拿来练手,并借用了CSDN ...
- linux安装2048游戏,如何在CentOS上安装一个2048小游戏
如何在centos上安装一个2048小游戏 最近在学习CentOS系统,就琢磨着玩点什么,然后我看到有人在玩2048小游戏,所有我就在想,为啥不装一个2048小游戏搞一下嘞,于是乎,我就开始工作啦 由 ...
- python图形小游戏代码_手把手制作Python小游戏:俄罗斯方块(一)
手把手制作Python小游戏:俄罗斯方块1 大家好,新手第一次写文章,请多多指教 A.准备工作: 这里我们运用的是Pygame库,因为Python没有内置,所以需要下载 如果没有pygame,可以到官 ...
- python拍七游戏代码_python实现逢七拍腿小游戏的思路详解
逢七拍腿游戏 几个小朋友在一起玩逢七拍腿的游戏,从1开始数数,当数到7的倍数或者尾号是7时,拍一下腿.现在从1数到99,假设每个人都没有错,计算一下共要拍腿几次? 第一种实现思路:通过在for循环语句 ...
- 黑白块游戏java代码_用java做的一个小游戏—黑白反斗棋(适合菜鸟)
用Java做的一个小游戏,黑白反斗棋,我玩过了5*5和10*10的.是学习之后做的,不是自己原始开发的. import java.awt.Color; import java.awt.FlowLayo ...
- c语言小游戏 精简_一个简易的贪吃蛇小游戏C语言源码
/* *程序名称:贪吃蛇v2.1 *程序描述:一个简易的贪吃蛇小游戏 *版本信息:v2.1 *v1.1版本更新:1:加入菜单选择项 *v1.2版本更新:1:修复菜单选择bug *v1.3班本更新:1: ...
- python迷宫小游戏代码_TensorFlow应用实战-17-Qlearning实现迷宫小游戏
什么是Q-learning Q是Quality的首字母,表示"质量/优劣",表示给它打一个分. 在某些状态下做某个动作,会给他一个Q的价值. learning就是学习的意思.基于质 ...
- python设计2048小游戏_使用graphics.py实现2048小游戏
1.过年的时候在手机上下载了2048玩了几天,心血来潮决定用py写一个,刚开始的时候想用QT实现,发现依赖有点大.正好看到graphics.py是基于tkinter做的封装就拿来练手,并借用了CSDN ...
- python反编译-以2048小游戏为例
文章目录 一.背景 二.工具准备 1.pyinstxtractor.py脚本用于反编译python 2.winhex用于编辑16进制的软件 三.反编译 1.放置脚本 2.运行脚本 3.找到软件名文件和 ...
最新文章
- 用JSP+JDBC开发Web程序
- 【Android View事件分发机制】原理
- Spring AOP编程-aspectJ注解开发
- python中digits什么意思_在Caffe中使用 DIGITS自定义Python层
- mysql delete temporary denied_这些错误是什么意思?djang中的mysql
- lastindexof方法_Java Vector lastIndexOf()方法与示例
- 实例53:python
- 摩托罗拉为什么要限制自家linux手机,摩托罗拉为何在安卓手机大放异彩的时候,突然开始衰败了呢?...
- 【读书笔记】设计模式沉思录
- Java 网络编程(超级详细)
- 中国科学院计算机研究生调剂,计算机网络信息中心2019年硕士研究生接收调剂信息公告...
- 用VB编写的一个可在屏幕上移动的十字架
- 如何入门AI?五大新手项目奉上
- 开机一直转圈_天气转凉,电脑早上开机也需要预热了吗?
- 以下数据库收录外文文献全文的有_【讲座】外文文献的检索与获取
- xcode反汇编调试iOS模拟器程序
- 彻底卸载Tomcat
- 部署-GPS授时系统:GPS授时系统
- 2015 中国电商网站排行榜
- 如何快速实现移动 App 对智能设备的连接和控制,打造丰富的智能生活场景?
热门文章
- dozer bean_使用Dozer框架进行Bean操作
- 使用Payara Micro的Easy Java EE Microservices
- javabeans_膨胀的JavaBeans –不要在您的API中添加“ Getters”
- 休眠NONSTRICT_READ_WRITE CacheConcurrencyStrategy如何工作
- spring smtp_使用Spring使用Java发送电子邮件– GMail SMTP服务器示例
- 抽象泄漏,或如何正确地将Oracle DATE与Hibernate绑定
- 我最喜欢的IntelliJ IDEA功能
- 项目学生:分片集成测试数据
- 摆脱困境:将环境特定的Cron表达式与@Scheduled批注一起使用
- ANTLR –语义谓词