Python 你如何保持一个字母的颜色和其他颜色?

Python 你如何保持一个字母的颜色和其他颜色?,python,python-3.x,tic-tac-toe,Python,Python 3.x,Tic Tac Toe,tl;对于tic tac toe,dr输出全部为蓝色,只希望x为蓝色,o为红色 在课堂上,我们试图制作一个tic-tac-toe游戏,目前我们正试图修改代码,这样只有X是蓝色的,O是红色的,但是当我们导入colorama时,它会给所有输出着色。我知道所有文本都将以蓝色打印。所以本质上它应该是这样的: 我还提供了游戏的代码 import random import colorama from colorama import Fore, Style print(Fore.BLUE + "Hello

tl;对于tic tac toe,dr输出全部为蓝色,只希望x为蓝色,o为红色

在课堂上,我们试图制作一个tic-tac-toe游戏,目前我们正试图修改代码,这样只有X是蓝色的,O是红色的,但是当我们导入colorama时,它会给所有输出着色。我知道所有文本都将以蓝色打印。所以本质上它应该是这样的: 我还提供了游戏的代码

import random
import colorama 
from colorama import Fore, Style
print(Fore.BLUE + "Hello World")
player_1_pick = ""
player_2_pick = ""

if (player_1_pick == "" or player_2_pick == ""):
  if (player_1_pick == ""):
    player_1_pick = "Player 1"
  if (player_2_pick == ""):
    player_2_pick = "Player 2"
else:
  pass

board = ["_"] * 9

def print_board():
  print(board[0] + '|' + board[1] + '|' + board[2])
  print(board[3] + '|' + board[4] + '|' + board[5])
  print(board[6] + '|' + board[7] + '|' + board[8])

print_board()
if (random.randint(1,2) == 1):
  player_1_pick = input(player_1_pick + ", choose X or O: ").upper()
  if (player_1_pick == "X"):
    player_2_pick = "O"



while True:
  x = input('Pick a number from 0-8')
  x = int(x)
  board[x] = 'X'
  print_board()
然后,我们决定打开python的另一个选项卡,使用repl.it在一个孤立的环境中尝试解决这个问题,在这个环境中,我们提出了:

import random
import colorama 
from colorama import Fore, Style
def getPieceLabel(piece):
  if (piece == 1):
    return "|" + color.PURPLE + color.BOLD + "X" + color.END + "|"
  elif (piece == 2 ):
    return "|" + color.BLUE + color.BOLD + "O"
    + "|" 
  else:
    return color.BOLD + "|_|" + color.END 

board = ["_"] * 9

def print_board():
  print(board[0] + '|' + board[1] + '|' + board[2])
  print(board[3] + '|' + board[4] + '|' + board[5])
  print(board[6] + '|' + board[7] + '|' + board[8])
  print(Style.RESET_ALL)

while True:
  x = input('Pick a number from 0-8')
  x = int(x)
  board[x] = 'X'
  print_board()

我们需要一些帮助来解决这个问题。

这里有一个代码,可以为repl.it上测试的不同项目打印不同的颜色

随机输入 进口色拉马 从色彩、风格 printFore.BLUE+Tic-Tac-Toe 全部重置 玩家_1_选择= 玩家_2_选择= 如果玩家_1_pick==或玩家_2_pick==: 如果玩家_1_pick==: 玩家_1_选择=玩家1 如果玩家_2_pick==: 玩家2_选择=玩家2 其他: 通过 董事会=[[uu]*9 def打印板: 对于0,3范围内的i: 对于范围为0,3的j: 如果电路板[i*3+j]=“X”: printFore.BLUE+板[i*3+j],结束= elif板[i*3+j]=“O”: printFore.RED+板[i*3+j],结束= 其他: 印刷板[i*3+j],结束= printStyle.RESET_ALL,结束= 如果j!=2: 打印“|”,结束= 打印新行 印刷电路板 如果random.randint1,2==1: player_1_pick=输入player_1_pick+,选择X或O: 如果玩家_1_pick==X: 玩家_2_选择=O 尽管如此: x=输入“从0-8中选择一个数字:” x=intx 电路板[x]=“x” 印刷电路板 为什么??当您使用Back.RED或Fore.RED时,它只会更改全局输出颜色,而不仅仅是特定的打印语句。这意味着您必须为每个要打印的项目更改颜色,如果您希望它们具有不同的颜色。这就是我在印刷板下所做的

由于要打印3x3矩阵或2D数组以及元素或项目之间的边框,因此我必须使用两个循环,根据需要以不同的颜色打印每个元素或项目


注意:程序可以运行,但我认为缺少一些逻辑,因为游戏只适用于第一名玩家;没有第二个播放器,甚至没有系统播放器。这超出了这个答案的范围。

在您的第一个代码中,它都以蓝色打印,因为在您的第四行中,您将字体颜色设置为蓝色。因此,您的所有文本现在都将以蓝色打印。