簡體   English   中英

名稱 " " 未定義

[英]name " " is not defined

import math

EMPTY = '-'

def is_between(value, min_value, max_value):
    """ (number, number, number) -> bool

    Precondition: min_value <= max_value

    Return True if and only if value is between min_value and max_value,
    or equal to one or both of them.

    >>> is_between(1.0, 0.0, 2)
    True
    >>> is_between(0, 1, 2)
    False
    """
    return value >= min_value and value <= max_value

    # Students are to complete the body of this function, and then put their
    # solutions for the other required functions below this function.

def game_board_full(cells):
    """ (str) -> bool

    Return True if no EMPTY in cells and else False

    >>> game_board_full ("xxox")
    True
    >>> game_board_full ("xx-o")
    False
    """

    return "-" not in cells



def get_board_size (cells):
    """ (str) -> int

    Return the square root of the length of the cells

    >>>get_board_size ("xxox")
    2
    >>>get_board_size ("xoxoxoxox")
    3
    """
    sqrt_cell= len(cells) ** 0.5

    return  int(sqrt_cell)


def make_empty_board (size):
    """ (int) -> str
    Precondition: size>=1 and size<=9

    Return a string for storing information with the size
    >>>make_empty_board (2)
    "----"
    >>>make_empty_board (3)
    "---------"
    """

    return "-" *size ** 2 



def get_position (row_index,col_index,size):
    """ (int,int,int) -> int

    Precondition:size >=col_index and size >= row_index

    Return the str_index of the cell with row_index,col_index and size
    >>>get_position (2,2,4)
    5
    >>>get_position (3,4,5)
    13
    """
    str_index = (row_index - 1) * size + col_index - 1  
    return str_index


def make_move( symbol,row_index,col_index,game_board):
    """(str,int,int,str) -> str

    Return the resultant game board with symbol,row_index,col_index and game_board
    >>>make_move("o",1,1,"----")
    "o---"
    >>>make_move("x"2,3,"---------")
    "-----x---"
    """
    length=len(game_board)
    size=len(cells) ** 0.5 
    str_index = (row_index - 1) * size + col_index - 1
    return "-"*(str_index-1)+symbol+"-"*(length-str_index)




def extract_line (cells,direction,cells_num):
    """ (str,str,int) -> str

    Return the characters of a specified row with cells, direction and cells_num

    >>>extract_line ("xoxoxoxox","across",2)
    "oxo"
    >>>extract_line ("xoxo","up_diagonal","-")
    "xo"
    """
    num=cells_num
    s=cells
    size= get_board_size (cells)
    if direction=="across":
        return  s[(num-1)* size : num*size]
    elif direction=="down":
        return  s[num-1:size **2:size]
    elif direction=="up_diagonal":
        return  s[(size-1)*size:size-2:1-size]
    elif direction=="down_diagonal":
        return  s[0:size*2:size+1]

NameError:未定義名稱“單元格”

我不知道如何定義cells因為它是一個參數。

您沒有cells參數

def make_move( symbol,row_index,col_index,game_board):

下次仔細閱讀錯誤消息,以便您知道在哪個代碼行中遇到了問題。

我發現您在沒有聲明的情況下在 make_move 函數中引用了可變單元格,也許您應該在參數列表中定義它。

順便說一句,你必須把你所有的回溯都放上來,否則我們所有人都很難找出問題所在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM