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

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()函数,表现“按回车键继续.....”的效果。

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

python学习(四)五数连珠的更多相关文章

  1. python学习第五次笔记

    python学习第五次笔记 列表的缺点 1.列表可以存储大量的数据类型,但是如果数据量大的话,他的查询速度比较慢. 2.列表只能按照顺序存储,数据与数据之间关联性不强 数据类型划分 数据类型:可变数据 ...

  2. Python学习第五堂课

    Python学习第五堂课推荐电影:华尔街之狼 被拯救的姜哥 阿甘正传 辛德勒的名单 肖申克的救赎 上帝之城 焦土之城 绝美之城 #上节内容: 变量 if else 注释 # ""& ...

  3. python学习第五十四天hashlib模块的使用

    hash算法 hash也做散列,也称为哈希,主要用于信息安全领域中加密算法,hash就是找一种数据内容和数据存放地址直接的映射关系. md5算法 md5讯息算法,广泛使用密码函数 md5算法的特点 1 ...

  4. python学习笔记五 模块上(基础篇)

    模块学习 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...

  5. Python学习笔记五

    一. 递归 递归函数: def a (): print ("from b") b() def b(): print("from a ") a() a() 递推和 ...

  6. Python学习笔记五:错误与异常

    一:常见异常与错误 BaseException 所有异常的基类SystemExit 解释器请求退出KeyboardInterrupt 用户中断执行(通常是输入^C)Exception 常规错误的基类S ...

  7. Python 学习 第五篇:语句和语法

    Python程序是语句构成的,语句包含表达式,表达式嵌套在语句中,包含变量和常量,用于处理对象.Python的语法实质上是由表达式.语句和代码块构成的.语句是由表达式构成的,代码块是由多个语句构成的复 ...

  8. python学习笔记4--函数/全局变量/递归

    一.函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pasc ...

  9. Python学习(五)函数 —— 内置函数 lambda filter map reduce

    Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.fil ...

随机推荐

  1. sqlserver查询分析器创建sql查询日志

    USE [master]GO /****** Object: Audit [ServerAuditDB] Script Date: 2016-04-28 16:02:58 ******/CREATE ...

  2. 配置TC2.0运行环境

    一. 学习过程 下载TC2.0并打开如图: 这是一个集成的C语言环境包,包括TC.dosbox和一些编译工具,很明显这样我无法判断单个程序的功能,也无法区分哪些程序是必须的. 那么为了搞清楚哪些文件是 ...

  3. LeetCode_Maximal Rectangle

    Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ones and ...

  4. LeetCode_Permutation Sequence

    The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of the p ...

  5. b/s客户端和服务器的交互(转)

    原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ 作为一个软件开发者,你一定会对网络应用如何工作有 ...

  6. startkde出现$DISPLAY is not set or cannot connect to the X server

    #startkde $DISPLAY is not set or cannot connect to the X server 解决: xinit /usr/bin/startkde --displa ...

  7. Global build settings

    [ ] Select all packages by default *** General build options ***   [ ] Show packages that require gr ...

  8. AS3排序

    package { import flash.display.Sprite; public class Sort extends Sprite { private var arr:Vector.< ...

  9. SIP学习之网络链接

    风清扬的CSDN博客  文章分类SIP http://blog.csdn.net/ppy521/article/category/1227390

  10. xdu_RainAndBow 鞍山打铁记

    我们作为弱校xdu的七队(大四一支,大三四支,大二俩),本来都没指望今年可以出去,结果运气不错,学校得到几个激动名额, 于是我们激动地成功申请到了鞍山站的名额,嗯...可以出去旅游了. 不过我们毕竟太 ...