Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Просьба помочь с алгоритмом в connect4 / 2 сообщений из 2, страница 1 из 1
30.03.2017, 07:56
    #39429643
Alexander2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просьба помочь с алгоритмом в connect4
Делаю адаптацию функций для игры Connect4, столкнулся с непонятками в требуемом алгоритме проверки
требовалось написать свои функции для проверки по горизонтали, вертикали, двум диагоналям, и функцию проверки выигрышного хода. Это удалось написать. А вот на последней споткнулся окончательно. Особенно на фразе #R e m o v e t h e top checker from that column - правильно ли я ее понял? WonGame - это проверка TRUE итога хотя бы в одной из 4 проверок

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
# Checking if there is a move that the player can make to win the game?
# Params:
#   board: The board as a 2D list.
#   player: The player that is going to make the move, either PLAYER1 or PLAYER2.
# Returns:
#   -1                                          if there is no winning move.
#   The column number in the board if there is a winning move.
#
def WinMove(board, player):
    for col in range(0,len(board[0])-1):   #для фразы For each column in the board 
        if columnFull(board,col) == False:   #If_the_column_is not full 
            board[dropChecker(board,col)][col] = player #Play_a_checker_in that column for the current player 
            if WonGame(board,playChecker(board,col),col)==True:   #check if the game was won by playing that checker 
                board[playChecker(board,col)][col] = BLANK   #Remove the top checker from that column  (надо удалить этот только что введеный?)
                return col
            else:
                board[playChecker(board,col)][col] = BLANK   #Remove the top checker from that column 
    return -1



Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
def Horizontal(board, row, col):
    for row in range(0,len(board)):
        for col in range(0,len(board[row])-3):
                if ((board[row][col] == board[row][col+ 1] == board[row][col+ 2] ==\
                     board[row][col+ 3]) and  (board[row][col] != BLANK)):
                    return True
    return False

def Vertical(board, row, column):
    for row in range(0,len(board)-3):
        for col in range(0,len(board[row])):
            if (board[row][col] == board[row + 1][col] == board[row + 2][col] ==\
                board[row + 3][col]) and (board[row][col] != BLANK):
                return True
    return False

def PosSlope(board, row, column):
    for row in range(0,len(board)-3):
        for col in range(3,len(board[row])):
            if len(board) >4:
                if (board[row][col] == board[row + 1][col - 1] == board[row + 2][col - 2] ==\
                    board[row + 3][col - 3]) and (board[row][col] != BLANK):
                    return True
            elif (board[row][col] == board[row + 1][col - 1] == board[row + 2][col - 2] ==\
                  board[row + 3][col - 3]) and (board[row][col] != BLANK):
                return True    
    return False

def NegSlope(board, row, column):
    for row in range(0,len(board)-3):            # how many rows in array
        for col in range(0,len(board[row])-3):  # how many columns in array
            if len(board[row]) < 5:                  # limits scope by 5 COLUMNS
                if (board[row][col] == board[row + 1][col + 1] == board[row + 2][col + 2] ==\
                    board[row + 3][col + 3]) and (board[row][col] != BLANK):
                    return True
            elif (board[row][col] == board[row + 1][col + 1] == board[row + 2][col + 2] ==\
                  board[row + 3][col + 3]) and (board[row][col] != BLANK):
                return True
    else:
        return False
...
Рейтинг: 0 / 0
30.03.2017, 07:58
    #39429648
Alexander2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просьба помочь с алгоритмом в connect4
картинка куска задания не подклеилась
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Просьба помочь с алгоритмом в connect4 / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]