#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版本)相关推荐

  1. c#推箱子小游戏代码_用C#制作推箱子小游戏

    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading. ...

  2. python里graphics的使用_使用graphics.py实现2048小游戏

    1.过年的时候在手机上下载了2048玩了几天,心血来潮决定用py写一个,刚开始的时候想用QT实现,发现依赖有点大.正好看到graphics.py是基于tkinter做的封装就拿来练手,并借用了CSDN ...

  3. linux安装2048游戏,如何在CentOS上安装一个2048小游戏

    如何在centos上安装一个2048小游戏 最近在学习CentOS系统,就琢磨着玩点什么,然后我看到有人在玩2048小游戏,所有我就在想,为啥不装一个2048小游戏搞一下嘞,于是乎,我就开始工作啦 由 ...

  4. python图形小游戏代码_手把手制作Python小游戏:俄罗斯方块(一)

    手把手制作Python小游戏:俄罗斯方块1 大家好,新手第一次写文章,请多多指教 A.准备工作: 这里我们运用的是Pygame库,因为Python没有内置,所以需要下载 如果没有pygame,可以到官 ...

  5. python拍七游戏代码_python实现逢七拍腿小游戏的思路详解

    逢七拍腿游戏 几个小朋友在一起玩逢七拍腿的游戏,从1开始数数,当数到7的倍数或者尾号是7时,拍一下腿.现在从1数到99,假设每个人都没有错,计算一下共要拍腿几次? 第一种实现思路:通过在for循环语句 ...

  6. 黑白块游戏java代码_用java做的一个小游戏—黑白反斗棋(适合菜鸟)

    用Java做的一个小游戏,黑白反斗棋,我玩过了5*5和10*10的.是学习之后做的,不是自己原始开发的. import java.awt.Color; import java.awt.FlowLayo ...

  7. c语言小游戏 精简_一个简易的贪吃蛇小游戏C语言源码

    /* *程序名称:贪吃蛇v2.1 *程序描述:一个简易的贪吃蛇小游戏 *版本信息:v2.1 *v1.1版本更新:1:加入菜单选择项 *v1.2版本更新:1:修复菜单选择bug *v1.3班本更新:1: ...

  8. python迷宫小游戏代码_TensorFlow应用实战-17-Qlearning实现迷宫小游戏

    什么是Q-learning Q是Quality的首字母,表示"质量/优劣",表示给它打一个分. 在某些状态下做某个动作,会给他一个Q的价值. learning就是学习的意思.基于质 ...

  9. python设计2048小游戏_使用graphics.py实现2048小游戏

    1.过年的时候在手机上下载了2048玩了几天,心血来潮决定用py写一个,刚开始的时候想用QT实现,发现依赖有点大.正好看到graphics.py是基于tkinter做的封装就拿来练手,并借用了CSDN ...

  10. python反编译-以2048小游戏为例

    文章目录 一.背景 二.工具准备 1.pyinstxtractor.py脚本用于反编译python 2.winhex用于编辑16进制的软件 三.反编译 1.放置脚本 2.运行脚本 3.找到软件名文件和 ...

最新文章

  1. 用JSP+JDBC开发Web程序
  2. 【Android View事件分发机制】原理
  3. Spring AOP编程-aspectJ注解开发
  4. python中digits什么意思_在Caffe中使用 DIGITS自定义Python层
  5. mysql delete temporary denied_这些错误是什么意思?djang中的mysql
  6. lastindexof方法_Java Vector lastIndexOf()方法与示例
  7. 实例53:python
  8. 摩托罗拉为什么要限制自家linux手机,摩托罗拉为何在安卓手机大放异彩的时候,突然开始衰败了呢?...
  9. 【读书笔记】设计模式沉思录
  10. Java 网络编程(超级详细)
  11. 中国科学院计算机研究生调剂,计算机网络信息中心2019年硕士研究生接收调剂信息公告...
  12. 用VB编写的一个可在屏幕上移动的十字架
  13. 如何入门AI?五大新手项目奉上
  14. 开机一直转圈_天气转凉,电脑早上开机也需要预热了吗?
  15. 以下数据库收录外文文献全文的有_【讲座】外文文献的检索与获取
  16. xcode反汇编调试iOS模拟器程序
  17. 彻底卸载Tomcat
  18. 部署-GPS授时系统:GPS授时系统
  19. 2015 中国电商网站排行榜
  20. 如何快速实现移动 App 对智能设备的连接和控制,打造丰富的智能生活场景?

热门文章

  1. dozer bean_使用Dozer框架进行Bean操作
  2. 使用Payara Micro的Easy Java EE Microservices
  3. javabeans_膨胀的JavaBeans –不要在您的API中添加“ Getters”
  4. 休眠NONSTRICT_READ_WRITE CacheConcurrencyStrategy如何工作
  5. spring smtp_使用Spring使用Java发送电子邮件– GMail SMTP服务器示例
  6. 抽象泄漏,或如何正确地将Oracle DATE与Hibernate绑定
  7. 我最喜欢的IntelliJ IDEA功能
  8. 项目学生:分片集成测试数据
  9. 摆脱困境:将环境特定的Cron表达式与@Scheduled批注一起使用
  10. ANTLR –语义谓词