用用Python写一个无界面的写一个无界面的2048小游戏小游戏
主要介绍了用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("\
┌──┬──┬──┬──┐\
│%s│%s│%s│%s│\
├──┬──┬──┬──┤\
│%s│%s│%s│%s│\
├──┬──┬──┬──┤\
│%s│%s│%s│%s│\
├──┬──┬──┬──┤\
│%s│%s│%s│%s│\
└──┴──┴──┴──┘"\
%(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[][]),)
)
display()
来看一下上面代码的效果,是不是感觉一个游戏的框架已经到搭好了,由于初始化的时候,矩阵元素都为零,下面的图也
就没有显示出0,是不是很简单,一个游戏的界面就被我们搭好了,不过毕竟没学过界面,所以大家就不要抱怨这界面有多么
丑了哈。
二、初始化生成随机数二、初始化生成随机数
这个游戏每次开始的时候都会随机在上面的一个矩阵中生成两个随机数2或4,那么我们要如何来实现在上面矩阵中随机的一
个位置生成一个随机数2或4了,当然是用到我们前面学过的random模块以及divmod(),下面我们就来看一下如何用random模
块实现着一功能。