Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоVK ComboВсе проекты

ИНФОРМАТИКА НА ПОМОШЬ!!!!!! ПИТОН

dvd5o3 vv Ученик (85), закрыт 2 месяца назад
Игра «Космическое домино».

Правила.

1. В игре участвуют только ТРЕХЗНАЧНЫЕ числа.

2. Перед началом игры для каждого игрока случайным образом генерируется некоторый диапазон трехзначных чисел, из которого и ТОЛЬКО из него он может выбирать числа для продолжения игры.

3. Первые два стартовых числа генерируются тоже компьютером.

4. Игроки ходят по очереди, доставляя сопряженное число из своего диапазона (если такое есть) к левому или правому концу цепочки.

5. Если у игрока нет в диапазоне числа, сопрягаемого ни с одним из концов цепочки, то игра завершается его проигрышем.

Определение: число M называется сопрягаемым с числом N, если оно построено по следующим правилам:

1. Если N нечетное, то число M начинается с нечетной цифры, если N – четное, то с четной (но не с 0!)

2. Последние две цифры числа M есть сумма цифр числа N.

Заметим, что оба числа являются трехзначными!

Например, если N = 213, тогда M может быть 106, 306, 506, 706 или 906. Для числа N = 914, число M может быть только 214, 414, 614 или 814.

Примечание: числа в цепочке могут повторяться.

Входные данные:

L и R два натуральных трехзначных числа через пробел в одной строке. Левое и правое число в цепочке соответственно.

A и B два натуральных трехзначных числа через пробел в одной строке. Диапазон, который выпал игроку в начале игры. A < B. Число A или B также может быть выбрано игроком для хода, если является сопрягаемым с концом цепочки.

Выходные данные:

На первой строчке количество чисел, сопрягаемых с концами цепочки из диапазона игрока.

На второй строке минимальное из этих чисел с указанием перед ним без пробела литеры “ L”, если его надо поставить к левому концу, и литеры “R”, если к правому. Если число можно добавить в любой конец, то ставим его в левый конец.

Лучший ответ
Платон Борщёв Борщев Ученик (166) 3 месяца назад
import random

def generate_range():
lower = random.randint(100, 999)
upper = random.randint(lower + 1, 9999)
return str(lower) + ‘-’ + str(upper)

def is_valid(num, player_range):
num_str = str(num)
if len(num_str) != 3 or num_str not in player_range:
return False
else:
return True

def get_opposite(num):
opposite_first_digit = ‘0’ if num % 2 == 0 else str(num % 10)
last_two_digits = str(sum(map(int, str(num))))
return opposite_first_digit + last_two_digits

def play_game():
player_range_1 = generate_range()
player_start_1_1, player_start_1_2 = map(int, player_range_1.split(‘-’))
dvd5o3 vvУченик (85) 3 месяца назад
Чё делать?
dvd5o3 vvУченик (85) 3 месяца назад
Прикрепи файл питон пж через
dvd5o3 vvУченик (85) 3 месяца назад
поменяй пж через "-" никак нельзя
Остальные ответы
Кирилл Чернышов Гуру (3394) 3 месяца назад
Этот скрипт сначала определяет все сопрягаемые числа в диапазоне игрока, которые могут быть добавлены к цепочке. Если таких чисел нет, игра заканчивается проигрышем игрока. В противном случае скрипт выводит количество сопрягаемых чисел и минимальное из них, указывая, к какому концу цепочки его следует добавить. Пожалуйста, учтите, что этот код не включает в себя полную игру с несколькими ходами и игроками. Это просто демонстрация того, как можно реализовать правила игры в коде.



def get_conjugate_numbers(L, R, A, B):
def is_conjugate(n, m):
return (n % 2 == m // 100 % 2) and (n // 100 + n // 10 % 10 + n % 10 == m % 100)

conjugates = []
for i in range(A, B + 1):
if is_conjugate(L, i):
conjugates.append(('L', i))
if is_conjugate(R, i):
conjugates.append(('R', i))

return conjugates

def play_domino(L, R, A, B):
conjugates = get_conjugate_numbers(L, R, A, B)
if not conjugates:
return "Игрок проиграл, нет сопрягаемых чисел в диапазоне."
else:
min_conjugate = min(conjugates, key=lambda x: x[1])
return f"Количество сопрягаемых чисел: {len(conjugates)}\nМинимальное сопрягаемое число: {min_conjugate[0]}{min_conjugate[1]}"

print(play_domino
(213, 914, 100, 999))
dvd5o3 vvУченик (85) 3 месяца назад
Прикрепи, пожалуйста файлом .py
Кирилл Чернышов Гуру (3394) dvd5o3 vv, А тут нельзя файлы прикреплять
Кирилл ЧернышовГуру (3394) 3 месяца назад
Ошибка "Syntax error return outside" обычно возникает, когда оператор `return` используется вне функции. В Python оператор `return` должен быть использован только внутри функции. Если вы получаете эту ошибку, проверьте, правильно ли вы скопировали и вставили код. Возможно, вы пропустили определение функции или вставили оператор `return` на неправильном уровне отступа.
vv dvd5oЗнаток (361) 3 месяца назад
Прикрепите скрин пожалуйста
Кирилл Чернышов Гуру (3394) vv dvd5o,
dvd5o3 vvУченик (85) 3 месяца назад
Это тот же vv dvd5o
всё ок, а там мне надо вводить данные, а программа сразу ответ даёт, это для каких значений?
Кирилл Чернышов Гуру (3394) dvd5o3 vv, как задать напиши
Кирилл ЧернышовГуру (3394) 3 месяца назад
В комментарии не влезает скрипт который я доработал можешь задать новый вопрос чтобы я его туда вставил
Похожие вопросы