首页 > 其他 > 详细

五子棋(控制台版)

时间:2019-09-03 18:33:07      阅读:125      评论:0      收藏:0      [点我收藏+]

文件结构

技术分享图片

 

  1 finish = False # 游戏是否结束
  2 flagNum = 1  # 当前下棋者标记
  3 flagch = *  # 当前下棋者棋子
  4 x = 0    # 当前棋子的横坐标
  5 y = 0    # 当前棋子的纵坐标
  6 print(\033[1;37;41m---------简易五子棋游戏(控制台版)---------\033[0m)
  7 # 棋盘初始化
  8 checkerboard=[]
  9 for i in range(10):
 10     checkerboard.append([])
 11     for j in range(10):
 12         checkerboard[i].append(-)
 13 def msg():
 14     # 输出最后胜利的棋盘
 15     print("\033[1;37;44m--------------------------------")
 16     print("   1  2  3  4  5  6  7  8  9  10")
 17     for i in range(len(checkerboard)):
 18         print(chr(i + ord(A)) + " ", end= )
 19         for j in range(len(checkerboard[i])):
 20             print(checkerboard[i][j] + " ", end= )
 21         print()
 22     print("--------------------------------\033[0m")
 23     # 输出赢家
 24     if (flagNum == 1):
 25         print(\033[32m*棋胜利!***\033[0m)
 26     else:
 27         print(\033[32mo棋胜利!***\033[0m)
 28 
 29 while not finish:
 30     # 打印棋盘
 31     print("\033[1;30;46m--------------------------------")
 32     print("   1  2  3  4  5  6  7  8  9  10")
 33     for i in range(len(checkerboard)):
 34         print(chr(i + ord(A)) + " ", end= );
 35         for j in range(len(checkerboard[i])):
 36             print(checkerboard[i][j] + " ", end= )
 37         print()
 38     print("--------------------------------\033[0m")
 39     # 判断当前下棋者
 40     if flagNum == 1:
 41         flagch = *
 42         print(\033[1;37;40m请*输入棋子坐标(例如A1):\033[0m, end= ) # 白字黑底
 43     else:
 44         flagch = o
 45         print(\033[1;30;42m请o输入棋子坐标(例如J5):\033[0m, end= ) # 黑字绿底
 46     # 输入棋子坐标
 47     str = input()
 48     ch = str[0] # 获取第一个字符的大写形式
 49     x = ord(ch) - 65
 50     y = int(str[1]) - 1
 51     # 判断坐标是否在棋盘之内
 52     if (x < 0 or x > 9 or y < 0 or y > 9):
 53         print(\033[31m***您输入的坐标有误请重新输入!***\033[0m)
 54         continue
 55     # 判断坐标上是否有棋子
 56     if (checkerboard[x][y] == -):
 57         if (flagNum == 1):
 58             checkerboard[x][y] = *
 59         else:
 60             checkerboard[x][y] = o
 61     else:
 62         print(\033[31m******您输入位置已经有其他棋子,请重新输入!\033[0m)
 63         continue
 64     # 判断棋子左侧
 65     if (y - 4 >= 0):
 66         if (checkerboard[x][y - 1] == flagch
 67                 and checkerboard[x][y - 2] == flagch
 68                 and checkerboard[x][y - 3] == flagch
 69                 and checkerboard[x][y - 4] == flagch):
 70             finish = True
 71             msg()
 72 
 73     # 判断棋子右侧
 74     if (y + 4 <= 9):
 75         if (checkerboard[x][y + 1] == flagch
 76                 and checkerboard[x][y + 2] == flagch
 77                 and checkerboard[x][y + 3] == flagch
 78                 and checkerboard[x][y + 4] == flagch):
 79             finish = True
 80             msg()
 81 
 82     # 判断棋子上方
 83     if (x - 4 >= 0):
 84         if (checkerboard[x - 1][y] == flagch
 85                 and checkerboard[x - 2][y] == flagch
 86                 and checkerboard[x - 3][y] == flagch
 87                 and checkerboard[x - 4][y] == flagch):
 88             finish = True
 89             msg()
 90 
 91     # 判断棋子下方
 92     if (x + 4 <= 9):
 93         if (checkerboard[x + 1][y] == flagch
 94                 and checkerboard[x + 2][y] == flagch
 95                 and checkerboard[x + 3][y] == flagch
 96                 and checkerboard[x + 4][y] == flagch):
 97             finish = True
 98             msg()
 99 
100     # 判断棋子右上方向
101     if (x - 4 >= 0 and y - 4 >= 0):
102         if (checkerboard[x - 1][y - 1] == flagch
103                 and checkerboard[x - 2][y - 2] == flagch
104                 and checkerboard[x - 3][y - 3] == flagch
105                 and checkerboard[x - 4][y - 4] == flagch):
106             finish = True
107             msg()
108 
109     # 判断棋子右下方向
110     if (x + 4 <= 9 and y - 4 >= 0):
111         if (checkerboard[x + 1][y - 1] == flagch
112                 and checkerboard[x + 2][y - 2] == flagch
113                 and checkerboard[x + 3][y - 3] == flagch
114                 and checkerboard[x + 4][y - 4] == flagch):
115             finish = True
116             msg()
117 
118     # 判断棋子左上方向
119     if (x - 4 >= 0 and y + 4 <= 9):
120         if (checkerboard[x - 1][y + 1] == flagch
121                 and checkerboard[x - 2][y + 2] == flagch
122                 and checkerboard[x - 3][y + 3] == flagch
123                 and checkerboard[x - 4][y + 4] == flagch):
124             finish = True
125             msg()
126 
127     # 判断棋子左下方向
128     if (x + 4 <= 9 and y + 4 <= 9):
129         if (checkerboard[x + 1][y + 1] == flagch
130                 and checkerboard[x + 2][y + 2] == flagch
131                 and checkerboard[x + 3][y + 3] == flagch
132                 and checkerboard[x + 4][y + 4] == flagch):
133             finish = True
134             msg()
135     flagNum *= -1; # 更换下棋者标记

 

五子棋(控制台版)

原文:https://www.cnblogs.com/lws865/p/11454543.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!