python棋类项目规划一——五子棋游戏简易版——项目一

五子棋游戏简易版

目前只能人人对战
o 代表黑棋 x 代表白棋 . 代表无棋子

以下是代码:

def nemBoard():
    '''初始化棋盘'''    
    board = [[0 for i in range(19)] for j in range(19)]    
    return board
    
def possiableToChoice(board,i,j):     
    '''可以下棋子的地方'''        
    if board[i][j] == 0:    
    	    return True    
    	else:        
    	    return False
    	    
def play(board,player):    
    '''下子'''    
    try:    
        while True:    
            if player == 1 :            
                print("Turn Black")            
            else:            
                print("Turn White")            
            i = int(input("choise line (1--19):"))-1            
            j = int(input("choise row  (1--19):"))-1            
            if possiableToChoice(board,i,j):                
                board[i][j] = player                
                return i,j            
            else:            
                None    
    except:    
        play(board,player)
        
def win(board,player,i,j):
    '''胜利条件'''    
    direction = [(-1,0),(1,0),(0,-1),(0,1),(-1,-1),(-1,1),(1,-1),(1,1)]    
    for a in direction:    
        sum = 0        
        for l in range(5):
            for k in range(0-l,5-l):        
                if board[i+k*a[0]][j+k*a[1]] == player and i+k*a[0] >= 0 and j+k*a[1] >= 0  :            
                    sum = sum + 1        
            if sum == 5:        
                return False    
    return True
        
def displayBoard(board):
    '''表示棋盘'''    
    print("     ",end='')    
    for k in range(1,20):    
        print("%-2d"%k,end='')    
    print()    
    print("     ",end='')    
    for k in range(1,20):    
        print("# ",end='')    
    print()    
    for i in range(19):    
        print("%2d # "%(i+1),end='')        
        for j in range(19):                    
            if board[i][j] == 1:            
                print("o ",end='')            
            elif board[i][j] == 2:            
                print("x ",end='')           
            else:            
                print(". ",end='')        
        print()
        
def game():
    '''(伪)启动游戏'''    
    player = 1    
    board = nemBoard()    
    displayBoard(board)    
    i = 1    
    j = 1    
    while win(board,player%2+1,i,j):    
        i,j = play(board,player)        
        displayBoard(board)        
        player = player % 2 + 1

game()

运行效果略

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值