Форум сайта python.su
MagentaIcebergтак она ничего не ищет, она делает только то что вы ей прописали.
не понимаю всё равно) как программа ищет именно по вертикали, а не по горизонтали, например..
MagentaIcebergнаверно както так в самом простом случае:
Переделайте игру так, чтобы для загадывания строки и столбца нужна была только одна функция.
guess_row, guess_col = map(int, input("Введите координаты через пробел в виде:Строка Столбец").split())
[code python][/code]
Отредактировано PEHDOM (Май 7, 2021 15:55:46)
Офлайн
PEHDOMда, я в итогу решил задачу, но не валидировал, тк уже просто по-быстрее сдать всё хочу))
Офлайн
PEHDOMЯ вот ещё бы обратился, с финальной задачей (финальный босс), тот же код:
from random import randint board = [] for x in range(6): board.append(["O"] * 6) def print_board(board): for row in board: print((" ").join(row)) #создаётся игровое поле def random_row(board): return randint(0, len(board) - 1) #фунцкия загадывания корабля по строке def random_col(board): return randint(0, len(board[0]) - 1) #фунцкия загадывания корабля по столбцу print("Начнем игру в Морской бой!") print_board(board) ship_row = random_row(board) #загадываем корабль по строке ship_col = random_col(board) #загадываем корабль по столбцу for turn in range(10): #10 попыток print ("Ход: ", turn) guess_row = int(input("Строка 0-5:")) #ввод строки guess_col = int(input("Столбец 0-5:")) #ввод столбца if guess_row == ship_row and guess_col == ship_col: #если попал print("Поздравляю, ты потопил мой корабль!") break else: if (guess_row < 0 or guess_row > 5) or (guess_col < 0 or guess_col > 5): #если мимо игрового поля print("Oops, эти координаты не в нашем океане.") elif(board[guess_row][guess_col] == "X"): #если назвал повторно координаты print("Эти координаты вы уже называли.") else: print("Мимо!") board[guess_row][guess_col] = "X" #если не попал по кораблю ствлю Х if turn == 9: print("Игра окончена! Я уплываю в закат!") # конец игры #turn =+ 1 print_board(board)
Офлайн
MagentaIceberg1. ну для начала нам нужно определиться с палубностью, пускай их будет 2. можно конечно завести отдельные переменные для каждой палубы, но в перспективе это превратится в китайский код. Поэтому нужно хранить кординаты в спике в виде:
Я понимаю, что надо пришпилить к рандомным координатам(12 и 14 стр) палубу, но как.. Просто не понимаю.. И как проверку сделать..
ship=[[x1, y1],[x2,y2]...]
ship[0]=[ship_row, ship_col]
ship[1]=[ship_row-1, ship_col]
if [guess_row, guess_col] in ship: ship.remove([guess_row, guess_col])
[code python][/code]
Отредактировано PEHDOM (Май 10, 2021 08:30:02)
Офлайн