KiKi和BoBo玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。
KiKi和BoBo玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。
三行三列的字符元素,代表棋盘状态,字符元素用空格分开,代表当前棋盘,其中元素为K代表KiKi玩家的棋子,为O表示没有棋子,为B代表BoBo玩家的棋子。
如果KiKi获胜,输出“KiKi wins!”;
如果BoBo获胜,输出“BoBo wins!”;
如果没有获胜,输出“No winner!”。
K O B O K B B O K
KiKi wins!
alist = list(input().split() for i in range(3)) direction = ['line', 'col', 'left', 'right'] def getResult(): for item in direction: for i in range(3): res_list = [] for j in range(3): if item == 'line': res_list.append(alist[i][j]) elif item == 'col': res_list.append(alist[j][i]) elif item == 'left': res_list.append(alist[j][j]) else: res_list.append(alist[j][2-j]) if res_list == ['K', 'K', 'K']: return 'KiKi wins!' elif res_list == ['B', 'B', 'B']: return 'BoBo wins!' return 'No winner!' print(getResult())
l = [] for i in range(3): l.append(input().split()) winner = False # 检查行 for i in range(3): if l[i] == ['K']*3: print('KiKi wins!') winner = True elif l[i] == ['B']*3: print('BoBo wins!') winner = True # 检查列 for j in range(3): if l[0][j] == l[1][j] == l[2][j] == 'K': print('KiKi wins!') winner = True elif l[0][j] == l[1][j] == l[2][j] == 'B': print('BoBo wins!') winner = True # 检查对角线 if l[0][0] == l[1][1] == l[2][2]: if l[0][0] == 'K': print('KiKi wins!') winner = True elif l[0][0] == 'B': print('BoBo wins!') winner = True if l[2][0] == l[1][1] == l[0][2]: if l[1][1] == 'K': print('KiKi wins!') winner = True elif l[1][1] == 'B': print('BoBo wins!') winner = True if not winner: print('No winner!')
l = [] for _ in range(3): l.append(input().split(' ')) win = 0 for i in range(3): if l[i] == ['K', 'K', 'K']: print('KiKi wins!') win = 1 break if l[i] == ['B', 'B', 'B']: print('BoBo wins!') win = 1 break for i in range(3): if l[0][i]=='K' and l[1][i]=='K' and l[2][i]=='K': print('KiKi wins!') win = 1 break if l[0][i]=='B' and l[1][i]=='B' and l[2][i]=='B': print('BoBo wins!') win = 1 break if l[0][0]=='K' and l[1][1]=='K' and l[2][2]=='K': print('KiKi wins!') win = 1 if l[0][0]=='B' and l[1][1]=='B' and l[2][2]=='B': print('BoBo wins!') win = 1 if l[0][2]=='K' and l[1][1]=='K' and l[2][0]=='K': print('KiKi wins!') win = 1 if l[0][2]=='B' and l[1][1]=='B' and l[2][0]=='B': print('BoBo wins!') win = 1 if win==0: print('No winner!')我还以为有什么聪明取巧的方法呢,没想到大家都一样哈哈哈,简单粗暴
#将3*3的二维数组转化成3*8的二维数组,分别是原数组、以列划分的数组和两个对角线数组,这样 #就将问题转化成判断新数组的每一行是不是包含三个相同的字符,通过使用count函数判定是否包含 #了3个相同字符,从而到达题目的目的 li = [] for i in range(3): li.append(list(map(str, input().split(' ')))) li = li + list(zip(*li)) li.append(list([li[0][0],li[1][1],li[2][2]])) li.append(list([li[2][0],li[1][1],li[0][2]])) for i in range(8): if li[i].count('B') == 3: re = 'BoBo wins!' break elif li[i].count('K') == 3: re = 'KiKi wins!' break else: re = 'No winner!' print(re)