中午有段时间,模仿《五子连珠》写了一段代码,运行截图如下:

import random      # for random.randrange()
import os # for input() ballColorNum = 7 # 7 colors
padRowNum = 10 # chesspad have 10 rows
padColNum = 10 # chesspad have 10 cols chPad = [] # save chesspad state
threeBall = [] # generate 3 balls one time class ball():
def __init__(self):
self.color = random.randrange(1,ballColorNum)
self.x = random.randrange(0,padRowNum)
self.y = random.randrange(0,padColNum) # initial chesspad state, all 0, 10*10
def chesspad_init():
chPad = [[0 for x in range(10)] for x in range(10)]
return chPad def chesspad_update(chPad, ball):
chPad[ball.x][ball.y] = ball.color
return chPad def chesspad_flash(chPad):
for i in range(10):
print('- ', end=' ')
print('\n')
for i in range(len(chPad)):
for c in chPad[i]:
print('\33[1;%dm%d '%(30+c,c),end=' ')
print('\n')
for i in range(10):
print('- ', end=' ')
print('\n') def countNull(chPad):
n = 0
for i in range(len(chPad)):
for j in range(len(chPad[i])):
if chPad[i][j] == 0:
n += 1
return n # move a ball from x1,y1 to x2,y2
def move_from_XY1_to_XY2():
pass def calculate_Score():
pass def auto_eliminate():
pass def main():
print('\n-------------------GAME------------------\n')
pad = chesspad_init()
while 1:
n = 1
while 1:
b = ball()
if pad[b.x][b.y] == 0:
print('Ball%d:(%d,%d:%c)'%(n, b.x, b.y, b.color),end=' ')
pad = chesspad_update(pad, b)
if countNull(pad) == 0:
print("\n\nGAME OVER!")
exit()
n += 1
if n > 3:
break
print('\n')
chesspad_flash(pad) if input('MoveTo:(x1,y1)(x2,y2)=>'):
pass chesspad_flash(pad) if __name__=='__main__':
main()

这里的chesspad_flash()函数参考了《python在linux中输出带颜色的文字的方法》,其他没有什么技巧可言。随机函数random.randrange(),需要random模块支持。用os模块中的input()函数,表现“按回车键继续.....”的效果。

下一步,还有三个函数没写。想好再说吧!:)

最新文章

  1. 自定义RadioButton样式
  2. CSS居中布局总结【转】
  3. javaweb学习总结 servlet开发(一)
  4. Android Testing学习01 介绍 测试测什么 测试的类型
  5. Heroku空项目 Git本地Push代码错误 以及 Heroku Web启动错误
  6. matlab学习笔记 bsxfun函数
  7. C# Xml文件操作,解释见注释
  8. html list <==> unformatted list
  9. XSS与字符编码的那些事儿
  10. PHP一个最简单的CMS内容管理系统
  11. 调用test case集,并生成测试报告
  12. 外网如何访问本地tomcat web服务器【转】
  13. JS的异步回调函数
  14. c# 逆波兰式实现计算器
  15. 把项目中那些恶心的无处存储的大块数据都丢到FastDFS之快速搭建
  16. Felx布局基础教程
  17. ef core 相关
  18. MySQL参数调优
  19. typedef typename的用法
  20. window下Nexus私服高级搭建

热门文章

  1. python中os.walk()遍历目录中所有文件
  2. 定时关机命令-shutdown
  3. java内存模型和线程
  4. sql的交叉连接,内连接,左外连接,右外连接,全外连接总结
  5. Lambda 表达式的示例-来源(MSDN)
  6. 【案例】舒邑:一个女装品牌的奇葩打法-@i黑马
  7. HR系统+人脸识别
  8. Laravel Cheat 表 http://cheats.jesse-obrien.ca/#
  9. 老漏洞easy击:CVE-2012 0158占顶!
  10. Linux 常用系统命令-20160504