Я программист начального уровня, пытаюсь изучить Python. Я не мог понять, как изменить значения, чтобы ограничить перемещение шашек по диагонали, я хочу, чтобы они могли перемещаться только по горизонтали и вертикали.
import pygame
from .constants import BROWN, ROWS, BEIGE, SQUARE_SIZE, COLS, BLACK
from .pieces import Pieces
class Board:
def __init__(self):
self.board = []
self.black_left = self.white_left = 16 # check how many pieces left
self.black_kings = self.white_kings = 0
self.create_board()
def draw_squares(self, win):
win.fill(BROWN)
for row in range(ROWS):
for col in range(row % 2, COLS, 2):
pygame.draw.rect(win, BEIGE, (row * SQUARE_SIZE, col * SQUARE_SIZE, SQUARE_SIZE, SQUARE_SIZE))
def move(self, piece, row, col):
self.board[piece.row][piece.col], self.board[row][col] = self.board[row][col], self.board[piece.row][piece.col]
piece.move(row, col)
if row == ROWS - 1 or row == 0:
piece.make_king()
if piece.color == BEIGE:
self.white_kings += 1
else:
self.black_kings += 1
def get_piece(self, row, col):
return self.board[row][col]
def create_board(self):
for row in range(ROWS):
self.board.append([])
for col in range(COLS):
if col % 1 == ((row + 1) % 1):
if 0 < row < 3:
self.board[row].append(Pieces(row, col, BEIGE))
elif 7 > row > 4:
self.board[row].append(Pieces(row, col, BLACK))
else:
self.board[row].append(0)
else:
self.board[row].append(0)
def draw(self, win):
self.draw_squares(win)
for row in range(ROWS):
for col in range(COLS):
piece = self.board[row][col]
if piece != 0:
piece.draw(win)
def remove(self, pieces):
for piece in pieces:
self.board[piece.row][piece.col] = 0
if piece != 0:
if piece.color == BLACK:
self.black_left -= 1
else:
self.white_left -= 1
def winner(self):
if self.black_left = ROWS:
break
current = self.board[down][c]
if current == 0:
if skipped and not last:
break
elif skipped:
moves[(down, c)] = last + skipped
else:
moves[(down, c)] = last
if last:
moves.update(self._move_up(c, c + 1, step, color, down - 1, skipped=last))
moves.update(self._move_down(c, c + 1, step, color, down + 1, skipped=last))
break
elif current.color == color:
break
else:
last = [current]
down += 1
return moves
Мой код указан, и я думаю, что проблема вызвана move_left и т. д., но я понятия не имею, как это исправить. Я смотрю видео о его создании, но парень не очень хорошо объяснил, как работают функции (он заставляет фигуры двигаться по диагонали).
Я программист начального уровня, пытаюсь изучить Python. Я не мог понять, как изменить значения, чтобы ограничить перемещение шашек по диагонали, я хочу, чтобы они могли перемещаться только по горизонтали и вертикали. [code]import pygame from .constants import BROWN, ROWS, BEIGE, SQUARE_SIZE, COLS, BLACK from .pieces import Pieces
class Board: def __init__(self): self.board = [] self.black_left = self.white_left = 16 # check how many pieces left self.black_kings = self.white_kings = 0 self.create_board()
def draw_squares(self, win): win.fill(BROWN) for row in range(ROWS): for col in range(row % 2, COLS, 2): pygame.draw.rect(win, BEIGE, (row * SQUARE_SIZE, col * SQUARE_SIZE, SQUARE_SIZE, SQUARE_SIZE))
def create_board(self): for row in range(ROWS): self.board.append([]) for col in range(COLS): if col % 1 == ((row + 1) % 1): if 0 < row < 3: self.board[row].append(Pieces(row, col, BEIGE)) elif 7 > row > 4: self.board[row].append(Pieces(row, col, BLACK)) else: self.board[row].append(0) else: self.board[row].append(0)
def draw(self, win): self.draw_squares(win) for row in range(ROWS): for col in range(COLS): piece = self.board[row][col] if piece != 0: piece.draw(win)
def remove(self, pieces): for piece in pieces: self.board[piece.row][piece.col] = 0 if piece != 0: if piece.color == BLACK: self.black_left -= 1 else: self.white_left -= 1
def winner(self): if self.black_left = ROWS: break
current = self.board[down][c] if current == 0: if skipped and not last: break elif skipped: moves[(down, c)] = last + skipped else: moves[(down, c)] = last
if last: moves.update(self._move_up(c, c + 1, step, color, down - 1, skipped=last)) moves.update(self._move_down(c, c + 1, step, color, down + 1, skipped=last)) break elif current.color == color: break else: last = [current]
down += 1
return moves
[/code] Мой код указан, и я думаю, что проблема вызвана move_left и т. д., но я понятия не имею, как это исправить. Я смотрю видео о его создании, но парень не очень хорошо объяснил, как работают функции (он заставляет фигуры двигаться по диагонали).
Я следил за этими учебными пособиями, которые я предоставлю ссылку для дальнейшего вниз, и у них есть некоторые проблемы, которые я вроде исправил, глядя на комментарии. Они не такие старые, но достаточно взрослые, чтобы использовать устаревший код....
проблема в первом случае, как сказано в заголовке, он не загружает сохраненную игру, а загружает игру, которая в данный момент находится на доске, на новую доску.
`void carregar(){
String z = board.promptText( Какое имя нужно сделать для записи?...
Проблема в том, что во-первых, как сказано в заголовке, не загружается сохраненная игра, а загружается игра, которая сейчас находится на доске, на новую доску.
void carregar() {
String z = board.promptText( Qual é o nome do ficheiro a carregar? );...
Я пытаюсь сделать ИИ, основанный на нейронной сети для академии джедаев, посредством поведенческого клонирования (обучение подражать профессионалам). Чтобы поведенческое клонирование было верным, важно для того, чтобы иметь возможность...