Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/251: Рейтинг темы: голосов - 251, средняя оценка - 4.98
-27 / 13 / 0
Регистрация: 29.12.2018
Сообщений: 214

Дартс

31.01.2019, 16:37. Показов 53103. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Стандартная мишень для игры в дартс разделена на 20 ячеек с номерами от 1 до 20. В центре расположено «яблочко», попадание в которое приносит игроку 50 очков. Вокруг него — зелёное кольцо, при попадании в которое засчитывается 25 очков. Попадание во внешнее (узкое) кольцо мишени удваивает число сектора, а во внутреннее — утраивает.

Эти правила показались игрокам слишком простыми, поэтому они решили присвоить секторам во внешнем и внутреннем кольцах случайные значения. В глобальной переменной scoring хранится словарь для подсчета очков (обратите внимание, что в случае внутреннего и внешнего колец значениями являются словари, ключами в которых являются номера сектора, а значениями –– количество очков):

Яблочко: 50

Зеленое кольцо: 25

Внешнее кольцо: 1: 8, 2: 6, 3: 42,…, 20: 50

Внутреннее кольцо: 1: 2, 2: 9, 3: 56,…, 20: 3

Напишите функцию score(), которая принимает на вход 1 (если это «Яблочко» или «Зеленое кольцо») или 2 аргумента (если это внутреннее или внешнее кольцо, то название кольца и номер сектора) и возвращает количество очков.

Пример 1
Ввод
print(score("Яблочко"))
Вывод
50
Пример 2
Ввод
print(score("Внешнее_кольцо", 1))
Вывод
18
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.01.2019, 16:37
Ответы с готовыми решениями:

Дартс
Стандартная мишень для игры в дартс разделена на 20 ячеек с номерами от 1 до 20. В центре расположено «яблочко», попадание в которое...

Дартс
Максим, Виталий и Ксения очень любят играть в дартс. Для проведения больших соревнований они решили разработать систему автоматического...

Дартс
Стандартная мишень для игры в дартс разделена на 20 ячеек с номерами от 1 до 20. В центре расположено «яблочко», попадание в которое...

7
10 / 9 / 3
Регистрация: 17.01.2019
Сообщений: 36
02.03.2019, 16:49
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
scoring = {1: [8, 2], 2: [6, 9], 3: [42, 56], 20: [50, 3]}
 
 
def score(*args, **kwargs):
    global scoring
    if len(args) == 1:
        if args[0] == 'Яблочко':
            return 50
        else:
            return 25
    else:
        if args[0] == 'Внешнее_кольцо':
            return scoring[args[1]][0]
        else:
            return scoring[args[1]][1]
1
-27 / 13 / 0
Регистрация: 29.12.2018
Сообщений: 214
18.03.2019, 16:11  [ТС]
спасибо, но
Ввод
print(score("Внутреннее_кольцо", 2))
Ожидаемый результат
16
Вывод
9
0
10 / 9 / 3
Регистрация: 17.01.2019
Сообщений: 36
18.03.2019, 20:41
Ну в словаре поменяй 9 на 16, в чем проблема
0
14 / 11 / 5
Регистрация: 01.02.2020
Сообщений: 21
02.02.2021, 11:00
Приветствую, а как решить данную задачу, не используя параметры *args и **kwargs?
0
10 / 9 / 3
Регистрация: 17.01.2019
Сообщений: 36
02.02.2021, 19:29
Вместо *args ставишь переменную(пусть будет s), отвечающую за строку, вместо **kwargs переменную(пусть будет n), приравненную к любому числу. И там расписываешь для каждого возможного s вывод
1
4 / 4 / 0
Регистрация: 06.02.2021
Сообщений: 2
06.02.2021, 13:47
Задача странная, идёт проверка со словарём который представлен лишь частично, как следствие что бы её сдать необходимо через запись ошибок и редактирования собственного словаря в конце концов восстановить глобальный словарь автора. Руки бы вырвать автору этой задачи, представляю частично восстановленный словарь, его достаточно для того что бы сдать задачу.

Добавлено через 1 минуту
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import random
 
a = int(random.uniform(1, 50))
b = int(random.uniform(1, 50))
scoring = {'Яблочко': 50, 'Зеленое_кольцо': 25,
           'Внешнее_кольцо': {1: 8, 2: 6, 3: 42, 4: a, 5: a, 6: a, 7: 38, 8: 1,
                              9: 41, 10: 14, 11: 38, 12: 38, 13: 3, 14: 36, 15: 48,
                              16: a, 17: 21, 18: a, 19: 11, 20: 50},
           'Внутреннее_кольцо': {1: 2, 2: 16, 3: 56, 4: b, 5: 16, 6: b, 7: 38,
                                 8: b, 9: b, 10: b, 11: b, 12: b, 13: b, 14: 21,
                                 15: b, 16: b, 17: b, 18: b, 19: b, 20: 39}}
 
 
def score(zona, cector=0):
    if cector == 0:
        return scoring[zona]
    else:
        return scoring[zona][cector]
Добавлено через 6 минут
Переменные а и б введены из условия (случайные числа), заодно и видно что собственно ещё не восстановлено

Добавлено через 7 минут
На форуме новичок, поэтому пока не знаю как вставить правильно с отступами, но код простой сдвиги догадаетесь как сделать
3
15 / 14 / 1
Регистрация: 16.11.2019
Сообщений: 33
01.02.2022, 10:51
Python
1
2
3
4
5
def score(ring, sector=0):
    global scoring
    if not sector:
        return scoring[ring]
    return scoring[ring][sector]
Вот и всё))

Добавлено через 52 секунды
Да нет, scoring объявлять вообще не нужно было. Тестирующая система в Лицее сама это делает
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.02.2022, 10:51
Помогаю со студенческими работами здесь

Дартс
В системе координат X, Y «нарисована» мишень на 10 кругов с центром в начале координат и шагом радиуса 10 единиц. Кругу с радиусом 10...

Дартс
Стандартная мишень для игры в дартс разделена на 20 ячеек с номерами от 1 до 20. В центре расположено «яблочко», попадание в которое...

Дартс на StringGrid
Нужно сделать дартс с помощью StringGrida. Матрицу я сделал, а прицел хочу сделать с помощью 2-х ScrollBar, то есть ScrollBar замкнуты...

Программа дартс
Добрый день, помогите пожалуйста с программой дартс. Необходимо, чтобы пользователь вводил координаты точки, а программа выдавала ему, куда...

OpenGl Дартс
OpenGL Часть 1 Есть проект дартс!В нем есть нарисован дротик и цель, в которую дротик летит. 2.Возможность попадание дротика в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru