Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.79/127: Рейтинг темы: голосов - 127, средняя оценка - 4.79
-33 / 7 / 0
Регистрация: 29.12.2018
Сообщений: 214
1

Дартс

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

Стандартная мишень для игры в дартс разделена на 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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2019, 16:37
Ответы с готовыми решениями:

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

Моделирование игры в дартс VB 6.0
Нужно создать игру дартс для двух игроков Круговая мишень как в дартс, за один бросок можно...

Подсчет очков в дартс на C++
Всё остальное сделал , осталось только подсчет очков , посоветуйте как сделать подсчет очков?

Дартс 501 расчет и вывод последовательностей выигрыша
Всем привет, сегодня порадовали такой задачей: Напишите программу, которая рассчитывает и...

6
9 / 8 / 3
Регистрация: 17.01.2019
Сообщений: 35
02.03.2019, 16:49 2
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
-33 / 7 / 0
Регистрация: 29.12.2018
Сообщений: 214
18.03.2019, 16:11  [ТС] 3
спасибо, но
Ввод
print(score("Внутреннее_кольцо", 2))
Ожидаемый результат
16
Вывод
9
0
9 / 8 / 3
Регистрация: 17.01.2019
Сообщений: 35
18.03.2019, 20:41 4
Ну в словаре поменяй 9 на 16, в чем проблема
0
11 / 8 / 5
Регистрация: 01.02.2020
Сообщений: 21
02.02.2021, 11:00 5
Приветствую, а как решить данную задачу, не используя параметры *args и **kwargs?
0
9 / 8 / 3
Регистрация: 17.01.2019
Сообщений: 35
02.02.2021, 19:29 6
Вместо *args ставишь переменную(пусть будет s), отвечающую за строку, вместо **kwargs переменную(пусть будет n), приравненную к любому числу. И там расписываешь для каждого возможного s вывод
1
3 / 3 / 0
Регистрация: 06.02.2021
Сообщений: 2
06.02.2021, 13:47 7
Задача странная, идёт проверка со словарём который представлен лишь частично, как следствие что бы её сдать необходимо через запись ошибок и редактирования собственного словаря в конце концов восстановить глобальный словарь автора. Руки бы вырвать автору этой задачи, представляю частично восстановленный словарь, его достаточно для того что бы сдать задачу.

Добавлено через 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 минут
На форуме новичок, поэтому пока не знаю как вставить правильно с отступами, но код простой сдвиги догадаетесь как сделать
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2021, 13:47

Дартс в haskell? Какой ужас.понятия не имею, как и с чем это есть
А как делать это???=-O Дартс поделен на 20 секций. За каждый бросок начисляется такое...

Как рассчитать очки по заданным координатам в игре "Дартс"
Здравствуйте, имеется картинка. Я кликую по ней и получаю координаты куда попал. Картинка 500x500....

Простенькая игра "Дартс"
(*) Реализовать проект -игру "Дартс". На форме размером 500х400 пикселей расположена мишень с...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.