python - os.system 功能不会清屏
问题描述
我不知道为什么我的屏幕不清晰。相反,我得到一个指向第一个字母的箭头。我查看了谷歌,一个消息来源说在某些情况下它可能会返回一个 0。也许这就是为什么它指向我的第一个字符串的第一个字母?我的代码也存在其他问题,但我花了很多时间试图弄清楚为什么这个函数不起作用,但我无法弄清楚。
import os
import random
'''
In this tic-tac-toe game, the user will be prompted to choose a mark.
The player will play against a computer.
CURRENT PROBLEMS WITH GAME:
board_tiles and tiles_available do not reset after new game
clear_screen function does not work
Error when tie occurs
'''
board_tiles = [0, 1, 2, 3, 4, 5, 6, 7, 8]
tiles_available = [0, 1, 2, 3, 4, 5, 6, 7, 8]
# create a function that clears the screen
def clear_screen():
os.system('cls')
# create a function that draws the tic-tac-toe board
def draw_board():
# clear screen
clear_screen()
print(f'{board_tiles[0]} | {board_tiles[1]} | {board_tiles[2]}')
print('-' * 10)
print(f'{board_tiles[3]} | {board_tiles[4]} | {board_tiles[5]}')
print('-' * 10)
print(f'{board_tiles[6]} | {board_tiles[7]} | {board_tiles[8]}')
# create a function that allows the user to choose a piece
def choose_mark():
player = input("Would you like to be 'X' or 'O'? ").upper()
if player == 'X':
computer = 'O'
else:
computer = 'X'
print(f'Player is {player}. Computer is {computer}.')
return player, computer
# create a function that allows the computer to make a random move on the board
def computer_move(computer):
computers_move = random.choice(tiles_available)
tiles_available.remove(computers_move)
board_tiles.insert(computers_move, computer)
board_tiles.remove(computers_move)
return computers_move
# create a function that checks if the chosen spot is available and draws it to the board
def draw_mark(player, computer):
while tiles_available:
players_move = int(input('Where would you like to move? '))
if players_move in tiles_available:
tiles_available.remove(players_move)
board_tiles.insert(players_move, player)
board_tiles.remove(players_move)
computer_move(computer)
draw_board()
score()
else:
print('{players_move} has already been taken')
return player
# define what is a win/lose/tie
def score():
if board_tiles[0] == board_tiles[1] == board_tiles[2] or \
board_tiles[3] == board_tiles[4] == board_tiles[5] or \
board_tiles[6] == board_tiles[7] == board_tiles[8] or \
board_tiles[0] == board_tiles[3] == board_tiles[6] or \
board_tiles[1] == board_tiles[4] == board_tiles[7] or \
board_tiles[2] == board_tiles[5] == board_tiles[8] or \
board_tiles[0] == board_tiles[4] == board_tiles[8] or \
board_tiles[2] == board_tiles[4] == board_tiles[6]:
print('YOU WIN!!!')
play_again()
if len(tiles_available) == 0:
print('It is a tie!')
play_again()
def play_again():
replay = input("Would you like to play again? \n"
"Type 'y' for yes and 'n' for no: ").lower()
if replay == 'y':
game()
else:
print('Come back!')
quit()
def game():
playing = True
player, computer = choose_mark()
while playing:
draw_board()
draw_mark(player, computer)
game()
解决方案
推荐阅读
- c# - 如何显示从 influxdb 读取的数据?
- c# - 使用 EF 核心关系时,Linq 查询返回 null
- scala - 如何将 csv 文件作为 akka http 响应发送?
- node.js - 启用 CORS 不适用于 Spotify Web API
- java - 在tomcat服务器上上传Spring MVC项目
- python - 有没有办法使用 python 附加具有相同列名的列的值?
- python-3.x - 在python中使用fortran
- c - 在 C 中使用 fscanf 的分段错误
- testing - 如何测试 (QA) 我的亚马逊应用程序 MWS
- wordpress - 防止 WordPress 中的自动分页 URL 重定向