powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Просьба помочь с алгоритмом в connect4
2 сообщений из 2, страница 1 из 1
Просьба помочь с алгоритмом в connect4
    #39429643
Alexander2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю адаптацию функций для игры 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
Просьба помочь с алгоритмом в connect4
    #39429648
Alexander2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
картинка куска задания не подклеилась
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Просьба помочь с алгоритмом в connect4
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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