Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2022, 19:12   #1
Delok123
 
Регистрация: 16.04.2022
Сообщений: 6
По умолчанию Python, игра виселица

Добрый вечер, уважаемые форумчане помогите пожалуйста с кодом на Payton
собственно игра висилица строчная естественно, вот код:

Код:
import random
s = ""
some_word = ['яблоко','банан','свекла','огурец','киви','гречка']
word = random.choice(some_word)
print(word)
print("Подсказка: угадай, слово это фуркт, овощь, или ягода.Удачи")
chances = len(word) + 2
latters_gussed = [" _ "] * len(word)
for letters in latters_gussed:
    print(letters, end=' ')
print()

while  latters_gussed != list(word) and chances > 0 :
     guess = input("Введите букву: ")
     chances = chances - 1
     if guess in word:
         print("Молодец! буква угадана!")
         for index, latter in enumerate(word):
           if s == guess:
                latters_gussed[index] = s
         for letters in latters_gussed:
             print(letters, end=' ')   
    
          


     else:
        print("буква не угадана, попробуй ещё, чувак")
     print('\n осталось:', chances, 'попыток брат')
в блоке выделенном красным цветом как не пытался написать упёрся в то, что кусок кода не работает, либо путаюсь в имени переменной и при вводе буквы не происходит заменены пустой строки с " _ " , кто знает что не так там? второй день мучаюсь.
ps это повторение мастер класса по Pyton.
Вложения
Тип файла: rar Новый точечный рисунок.rar (135.8 Кб, 1 просмотров)

Последний раз редактировалось BDA; 18.04.2022 в 20:45.
Delok123 вне форума Ответить с цитированием
Старый 16.04.2022, 23:50   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,316
По умолчанию

Код:
for index, latter in enumerate(word):
    if latter == guess:
        latters_gussed[index] = guess
Вот так запоминаются угаданные буквы. P.S. Для оформления кода используйте кнопочку CODE - в питоне отступы слишком важны, чтобы их терять.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 17.04.2022, 13:27   #3
Delok123
 
Регистрация: 16.04.2022
Сообщений: 6
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Код:
for index, latter in enumerate(word):
    if latter == guess:
        latters_gussed[index] = guess
Вот так запоминаются угаданные буквы. P.S. Для оформления кода используйте кнопочку CODE - в питоне отступы слишком важны, чтобы их терять.
Спасибо большое за вашу помощь
буду стараться дальше
Delok123 вне форума Ответить с цитированием
Старый 17.04.2022, 20:23   #4
Delok123
 
Регистрация: 16.04.2022
Сообщений: 6
По умолчанию

Добрый Вечер по пробовал снова код на пайтон был вдохновлён домашним заданием на вводном бесплатном курсе по профориентации IT, написать простую игру камень ножницы бумага вроде получалось и снова затык пытался по строчно выполнять код, один фиг запутался, пытался отладить пересмотрел наверное штук 5 разных видео про подобные игры, и снова не могу понять где и что мне мешает можете объяснить снова? честно сказать боюсь по этой причине идти на платные курсы думаю что сначала нужно набить так сказать руку до уровня школы хотя бы потом идти уже на обучение.

собственно сам код:

Код:
import random, time

computer_choise =  [' 1 ',' 2 ',' 3 ','4']
count = [0,0]



print('Привет я Алекс, давай сразимся в игру: "Камень, Ножницы, Бумага !')
name1 = input("Введите ваше имя: ")
print("Привет меня звать ", name1 , "и я принимаю твой вызов !!! ")
print(''' Выберитее дейсвтие(цифру от 1 до 3 ): 
        1) Камень
        2) Ножницы
        3) Бумага
        4) Выход ''')
def knb_choice(t):
    t = input()
    print()
    time.sleep(0.5)
    if t == '1':
        print(" Камень! ")
    elif t== '2':
        print(" Ножницы! ")
    elif t == '3':
        print(" Бумага! ")
def main():
    gameloop = True
    while gameloop:
            if t == '4':
                print(" До свидания! ")
                gameloop = False
            elif t != '1' and  '2' and   '3' and '4' :
                 print("\n ОШИБКА! ВВОДИТЬ МОЖНО ТОЛЬКО ЧИСЛА ОТ 1 ДО 3х! " * 5) :
                 gameloop = False
            else:
                
                knb_choice(toDo)
                computer_turn = random.choice(computer_choise)
                if toDo == '1' and computer_turn == '2' or toDo == '2' and computer_turn == '3' or toDo == '3' and computer_turn == '1':
                    print(name, 'ты победил! ')
                    count[0] += 1
                if toDo == '2' and computer_turn == '1' or toDo == '3' and computer_turn == '2' or toDo == '1' and computer_turn == '3':
                    print(name, 'ты проиграл! ')
                    count[1] += 1
                    print('Счёт:  ', count[0], ':',  count[1])
                if 5 in count : gameloop = False
if __name__ == '__main__':
    main()
P.S. пишу второй день может поэтому такие слабые по знания простите уж, но я стараюсь

Последний раз редактировалось BDA; 18.04.2022 в 20:45.
Delok123 вне форума Ответить с цитированием
Старый 18.04.2022, 20:43   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,316
По умолчанию

Чуть причесал до работоспособного состояния:
Код:
import random

def main():
    computer_choise = ['1', '2', '3', '4']
    objects = {'1': 'Камень', '2': 'Ножницы', '3': 'Бумага'}
    count = [0, 0]

    print('Привет, давай сразимся в игру "Камень, Ножницы, Бумага"!')
    name1 = input("Введите ваше имя: ")
    print("Привет, меня звать", name1, "и я принимаю твой вызов!!!")
    while True:
        t = input('''Выберите действие (число от 1 до 4): 
                1) Камень
                2) Ножницы
                3) Бумага
                4) Выход
'''
        )
        if t == '4':
            print("До свидания!")
            break
        elif t not in ['1', '2', '3']:
            print("ОШИБКА! ВВОДИТЬ МОЖНО ТОЛЬКО ЧИСЛА ОТ 1 ДО 4!")
            break
        else:
            computer_turn = random.choice(computer_choise)
            print('%s, ты выбрал %s, я выбрал %s!' % (name1, objects[t], objects[computer_turn]))
            if t == '1' and computer_turn == '2' or t == '2' and computer_turn == '3' or t == '3' and computer_turn == '1':
                print('%s, ты победил!' % name1)
                count[0] += 1
            elif t == '2' and computer_turn == '1' or t == '3' and computer_turn == '2' or t == '1' and computer_turn == '3':
                print('%s, ты проиграл!' % name1)
                count[1] += 1
            else:
                print('%s, ничья!' % name1)
            print('Счёт: %d:%d' % (count[0], count[1]))
            if 5 in count:
                break

if __name__ == '__main__':
    main()
Цитата:
Сообщение от Delok123 Посмотреть сообщение
один фиг запутался
В принципе можно просто заново запускать код и исправлять каждую ошибку, которую напишет питон. Например, убрать двоеточие в строке, которая выводит сообщение об ошибочном вводе.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 20.04.2022, 13:25   #6
Delok123
 
Регистрация: 16.04.2022
Сообщений: 6
По умолчанию

Цитата:
В принципе можно просто заново запускать код и исправлять каждую ошибку, которую напишет питон. Например, убрать двоеточие в строке, которая выводит сообщение об ошибочном вводе.
Спасибо за совет, я так и делал, и всё равно запутался наверное отсутствие опыта сказывается спасибо, что Вам это нужно.
в целом подсказать можете какую работу мне проводить над собой и кодом, что нужно изучить в pyton чтобы уже начать своё обучение на платных курсах и нормально всё успевать там или платные курсы не нужны ?
по образованию инженер трубопроводного транспорта нефти и газа, работаю по специальности но хочу сменить сферу своей деятельности ввиду нехватки здоровья, времени у меня в неделю часов 18-20 где-то на изучение /отработку материала, но книги могу читать на 6 часов больше примерно.
Delok123 вне форума Ответить с цитированием
Старый 21.04.2022, 02:00   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,316
По умолчанию

Платные курсы дают чуть большую мотивацию (деньги-то потрачены) и надежду на наличие персонального подхода (ответы на вопросы, субъективная оценка качества кода). Но всякие экспресс-курсы, на мой взгляд, не дают фундаментальных знаний, а направлены, скорее, на выкачивание денег. Так что найти качественный курс - отдельное испытание. Книга-самоучитель лучше подходит для изучения в своем темпе. Как можно больше практики написания кода. Можно писать еще более простые программы, но самостоятельно побороть все ошибки и добиться желаемого результата работы. Порешать олимпиадные задачки с автоматической системой проверки решения (informatics.msk.ru, acmp.ru, acm.timus.ru и т.д.), чтобы понять важность алгоритмов (наивные решения не пройдут все тесты), ошибки при обработке больших или неверных входных данных, необходимость внимательно обрабатывать граничные случаи.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игра Виселица сергей123444 Помощь студентам 4 22.06.2019 23:56
Игра Виселица на windows forms c++ Grouch Помощь студентам 1 13.12.2018 16:14
[JavaScript] Canvas - игра "Виселица" krikqwerty Помощь студентам 4 15.10.2017 20:58
C++ TCP «Игра «Виселица» топология «Клиент-Сервер» iLeg0 Фриланс 6 26.11.2014 18:31
игра виселица ilnar4ik18 Помощь студентам 0 28.04.2013 14:08