Найти - Пользователи
Полная версия: Задачка по кортежам
Начало » Python для новичков » Задачка по кортежам
1 2
z_yue_ziyou
Доработайте игру “Анаграммы” так, чтобы к каждому слову полагалась подсказка. Игрок должен получать право на подсказку в том случае, если у него нет никаких предположений. Разработайте систему начисления очков, по которой бы игроки, отгадавшие слово без подсказки, получали больше тех, кто запросил подсказку.

Вот основа программы:
# Анаграммы
import random
WORDS=("питон","анаграмма","простая","сложная","ответ","подстаканник","абсолютный","честность",
       "авторитетный","мнение", "поступить","академия", "оранжевый","апельсин", "громкий","аплодисменты",
       "цирк","арена", "приятный","аромат", "атака", "благоприятный","атмосфера", "старинный","балкон",
       "бархатный","скатерть", "играть","баскетбол", "безвкусный","конфета", "беречь","имущество", "беседовать",
       "профессия", "размешиват","бетон", "разглядывать", "бинокль", "благородный", "поступок", "прочитать","брошюра")
word=random.choice(WORDS)
correct=word
jumble=""
while word:
    position=random.randrange(len(word))
    jumble+=word[position]
    word=word[:position]+word[(position+1):]
print("Добро пожаловатив игру 'Анаграммы'!",
      "\nНадо пререставить буквы так, чтобы получилось слово.\n(Для выхода нажмите Enter, не вводя своей версии.)")
print("Вот анаграмма: ", jumble)
guess=input("\nПопробуйте отгадать слово: ")
while guess!=correct and guess!="":
    print("К сожалению, вы неправы.")
    guess=input("Попробуйте еще раз: ")
if guess==correct:
    print("Вы угадали!!!\n")
print("Спасибо за игру!!!")
input("\n\nНажмите Enter, чтобы выйти.")

Вот с выполнением задания:
# Анаграммы
import random
WORDS=("питон","анаграмма","простая","сложная","ответ","подстаканник","абсолютный","честность", "авторитетный","мнение",
       "поступить","академия", "оранжевый","апельсин", "громкий","аплодисменты", "цирк","арена", "приятный","аромат", "атака",
       "благоприятный","атмосфера", "старинный","балкон", "бархатный","скатерть", "играть","баскетбол", "безвкусный","конфета",
       "беречь","имущество", "беседовать","профессия", "размешиват","бетон", "разглядывать", "бинокль", "благородный", "поступок",
       "прочитать","брошюра")
word=random.choice(WORDS)
correct=word
jumble=""
while word:
    position=random.randrange(len(word))
    jumble+=word[position]
    word=word[:position]+word[(position+1):]
print("Добро пожаловатив игру 'Анаграммы'!",
      "\nНадо пререставить буквы так, чтобы получилось слово.\n(Для выхода нажмите Enter, не вводя своей версии.)")
print("Вот анаграмма: ", jumble)
guess=input("\nПопробуйте отгадать слово: ")
n=0
count=int(len(word))*100
i=int(-len(word))
while guess!=correct and guess!="":
    print("К сожалению, вы неправы.")
    guess=input("Попробуйте еще раз: ")
    count=count-100
    n+=1
    if n//3==0:
        c=i+1
        print("Подсказка! Буква номер",c,":")
        print(word[i])
        i+=1
if guess==correct:
    procent=count/(int(len(word))*100)
    print("Вы угадали!!!\n", "Вы потратели ",n, "попытки(ок) и получили",count,"очков (или угадав слово на",procent,"%)")
print("Спасибо за игру!!!")
input("\n\nНажмите Enter, чтобы выйти.")

Но у меня выдает ошибку (прикреплен)

Как ее исправить?
py.user.next
z_yue_ziyou
while word:
z_yue_ziyou
count=int(len(word))*100
Вычисляешь длину пустой строки.
Swell84
FishHook
Swell84
Как считаете норм?
нет

1. Смесь французского с нижегородским. Вы если каких-то слов по английски не знаете, ну так посмотрите в переводчике. Транслит, это всегда показатель очень низкой культуры кода.

2. Код состоит из самоповторов. Вы то ли в принципе не знаете про функции, толи не умеете их применять. Ну может быть вы китаец, у них это нормально.

3. Вы молодец, открыли для себя библиотеку random, но вы только первые строки документации прочитали? Если у вас уже юзается рандом, то почему не random.shuffle

4. Что это за херня? ochki = int(0)
Кто вас этому научил и какой по-вашему смысл в этой конструкции?
Swell84
FishHook
Слово Очки )) Ochki
Только начал изучать. Простите, может, я не силён в русском еже ле в английском. Постоянно спешу…
Мне например понятнее код на транслите… Я же для себя делаю. А не для кого-то.

Ну и плюс. Переменные ежели не ошибаюсь писать можно как угодно, кому как удобнее…
Я пока учусь… Создаю переменные, как удобнее на данный момент мне…
Чтож вы так сразу кричите-то
FishHook
Swell84
Я пока учусь…
Swell84
Постоянно спешу…
Swell84
я не силён в русском
Swell84
Только начал изучать.

Это лично ваши половые трудности. Вы просили оценить код, я вам дал объективную оценку. Ваша программа не стала лучше, от знания того, что вы куда-то там спешите или не умеете пользоваться словарями.
Swell84
Создаю переменные, как удобнее на данный момент мне
Удобнее вам? Ну и любуйтесь тогда на это сами, зачем всему миру показывать?
Swell84
FishHook
Да ты зануда )) Но спасибо будем исправляться… ))
4kpt_IV
Swell84
Смотрите. FishHook абсолютно прав. Вы представляете свой код на суд зрителей. Это как сказать, что я вышел на сцену, но не прочитал свою роль.

И Вам сразу советуют как сделать лучше. Рекомендую прислушаться и взять рекомендации за правила, тогда не придется тратить время на переучивание. Себе жизнь упростите существенно. Ну и в качестве благодарности все же не стоит называть помогающего занудой. Потому как с его почасовой зарплатой он как минимум потратил время на то, чтобы прочитать Ваш код бесплатно.

P.S. Удачи в освоении. И переходите уже на функции
Swell84
4kpt_IV
Всё норм… Критика ясна. Сам понял кое какие вещи… Будем исправляться… )) А про зануду. Шучу просто.
Код убрал. Переделывать буду… Хотя вроде всё работает. Но криво не нравится…

FishHook
Вам спасибо за совет
DemianWolf
Вот код (правда, он на английском):
 import random
score=0
hint='no'
print("""
           Welcome to Word Jumble v.1.00!
        
   Unscramble the letters to make a word.
(Press the enter key at the prompt to quit.)
""")
maxscore=int(input('Play to score... '))
while score<maxscore:
    WORDS = ("python", "jumble", "easy", "difficult", "answer", "xylophone")
    word = random.choice(WORDS)
    correct = word
    jumble =""
    while word:
        position = random.randrange(len(word))
        jumble += word[position]
        word = word[:position] + word[(position + 1):]
    print("The jumble is:", jumble)
    guess=""
    while guess != correct:
        guess = input("Your guess: ")
        if guess!=correct:
            print("Sorry, that's not it.")
            hint = input("Hint?(y/n) ")
        if hint == "y":
            score-=5
            if correct=="python":
                print("Hint. Free, modern and easy programming language.")
            elif correct=="jumble":
                print("Hint. The name of this game")
            elif correct=="easy":
                print("Hint. People say this word, when they can do an action simply.")
            elif correct=="difficult":
                print("Hint. People say this word, when they can't do an action simply.")
            elif correct=="answer":
                print("Hint. When other person asks you about any thing, you...")
            elif correct=="xylophone":
                print("Hint. The music instrument.")
            hint='n'
    
    if guess == correct:
        print("That's it!  You guessed it!\n")
        score+=10
print("CONGRATULATIONS!\nYou scored "+str(score)+".\nThanks for playing.")
input("\n\nPress ENTER to exit.")
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB