Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Как сделать камень ножницы бумага на Python

  1. Как сделать камень ножницы бумага на Python

    Привет, ребята! Недавно начал учить Python и захотел запрограммировать простую игру "Камень, ножницы, бумага". Как лучше структурировать код для этого? Есть какие-то стандартные практики или советы? Был бы очень рад примерам кода и любым вспомогательным инструментам.



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! Вот простой пример кода для игры \\"Камень, ножницы, бумага\\" на Python. Он использует модуль random для генерации случайного выбора компьютера и включает проверки на ничью и победу:

    Программный код:

    import random



    options 
    = ['камень''ножницы''бумага']



    while 
    True:

        
    user_choice input('Выберите: камень, ножницы или бумага? ').lower()

        if 
    user_choice not in options:

            print(
    'Некорректный выбор, попробуйте снова.')

            continue

        
    computer_choice random.choice(options)

        print(
    f'Компьютер выбрал: {computer_choice}')

        

        if 
    user_choice == computer_choice:

            print(
    'Ничья!')

        
    elif (user_choice == 'камень' and computer_choice == 'ножницы') or \\

             (
    user_choice == 'ножницы' and computer_choice == 'бумага') or \\

             (
    user_choice == 'бумага' and computer_choice == 'камень'):

            print(
    'Вы выиграли!')

        else:

            print(
    'Компьютер выиграл!')

        

        
    again input('Хотите сыграть еще раз? (да/нет): ').lower()

        if 
    again != 'да':

            break 
    Этот код достаточно базовый, но его можно расширить по мере работы.

  4. Цитата Сообщение от Маргарита Викторовна
    Привет! Вот простой пример кода для игры \\"Камень, ножницы, бумага\\" на Python. Он использует модуль random для генерации случайного выбора компьютера и включает проверки на ничью и победу:

    Программный код:

    import random



    options 
    = ['камень''ножницы''бумага']



    while 
    True:

        
    user_choice input('Выберите: камень, ножницы или бумага? ').lower()

        if 
    user_choice not in options:

            print(
    'Некорректный выбор, попробуйте снова.')

            continue

        
    computer_choice random.choice(options)

        print(
    f'Компьютер выбрал: {computer_choice}')

        

        if 
    user_choice == computer_choice:

            print(
    'Ничья!')

        
    elif (user_choice == 'камень' and computer_choice == 'ножницы') or \\

             (
    user_choice == 'ножницы' and computer_choice == 'бумага') or \\

             (
    user_choice == 'бумага' and computer_choice == 'камень'):

            print(
    'Вы выиграли!')

        else:

            print(
    'Компьютер выиграл!')

        

        
    again input('Хотите сыграть еще раз? (да/нет): ').lower()

        if 
    again != 'да':

            break 
    Этот код достаточно базовый, но его можно расширить по мере работы.
    Неплохой старт! Кстати, сюда можно добавить проверку на число попыток или улучшить ввод данных пользователем.

  5. Хей! Для \\"Камень, ножницы, бумага\\" достаточно использовать цикл for и словарь для хранения комбинаций. Например:

    Программный код:

    import random



    choices 
    = {'камень''ножницы''ножницы''бумага''бумага''камень'}



    def get_winner(usercomp):

        if 
    user == comp:

            return 
    'ничья'

        
    elif choices[user] == comp:

            return 
    'пользователь'

        
    else:

            return 
    'комп'



    options = ['камень''ножницы''бумага']



    while 
    True:

        
    user_choice input('Ваш выбор: камень, ножницы, бумага? ').lower()

        if 
    user_choice not in options:

            print(
    'Повторите ввод')

            continue

        
    computer_choice random.choice(options)

        print(
    f'Комп выбрал: {computer_choice}')

        

        
    winner get_winner(user_choicecomputer_choice)

        if 
    winner == 'ничья':

            print(
    'Ничья!')

        
    elif winner == 'пользователь':

            print(
    'Вы выиграли!')

        else:

            print(
    'Выиграл комп!')

        

        
    play_again input('Сыграем еще раз? (да/нет): ').lower()

        if 
    play_again != 'да':

            break 

  6. Цитата Сообщение от QuantumLeaper
    Хей! Для \\"Камень, ножницы, бумага\\" достаточно использовать цикл for и словарь для хранения комбинаций. Например:

    Программный код:

    import random



    choices 
    = {'камень''ножницы''ножницы''бумага''бумага''камень'}



    def get_winner(usercomp):

        if 
    user == comp:

            return 
    'ничья'

        
    elif choices[user] == comp:

            return 
    'пользователь'

        
    else:

            return 
    'комп'



    options = ['камень''ножницы''бумага']



    while 
    True:

        
    user_choice input('Ваш выбор: камень, ножницы, бумага? ').lower()

        if 
    user_choice not in options:

            print(
    'Повторите ввод')

            continue

        
    computer_choice random.choice(options)

        print(
    f'Комп выбрал: {computer_choice}')

        

        
    winner get_winner(user_choicecomputer_choice)

        if 
    winner == 'ничья':

            print(
    'Ничья!')

        
    elif winner == 'пользователь':

            print(
    'Вы выиграли!')

        else:

            print(
    'Выиграл комп!')

        

        
    play_again input('Сыграем еще раз? (да/нет): ').lower()

        if 
    play_again != 'да':

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

  7. Привет, могу предложить использовать классы для этой игры. Это немного более продвинутый вариант, но он поможет структурировать код лучше.

    Программный код:

    class RockPaperScissors:

        
    def __init__(self):

            
    self.choices = ['камень''ножницы''бумага']

        

        
    def get_computer_choice(self):

            
    import random

            
    return random.choice(self.choices)

        

        
    def determine_winner(selfuser_choicecomputer_choice):

            if 
    user_choice == computer_choice:

                return 
    'ничья'

            
    elif (user_choice == 'камень' and computer_choice == 'ножницы') or \\

                 (
    user_choice == 'ножницы' and computer_choice == 'бумага') or \\

                 (
    user_choice == 'бумага' and computer_choice == 'камень'):

                return 
    'пользователь'

            
    else:

                return 
    'комп'

        

        
    def play(self):

            while 
    True:

                
    user_choice input('Ваш выбор: камень, ножницы, бумага? ').lower()

                if 
    user_choice not in self.choices:

                    print(
    'Ошибка выбора, попробуйте снова.')

                    continue

                
    computer_choice self.get_computer_choice()

                print(
    f'Комп выбрал: {computer_choice}')

                
    winner self.determine_winner(user_choicecomputer_choice)

                if 
    winner == 'ничья':

                    print(
    'Ничья!')

                
    elif winner == 'пользователь':

                    print(
    'Вы выиграли!')

                else:

                    print(
    'Выиграл комп!')

                

                
    play_again input('Сыграем еще раз? (да/нет): ').lower()

                if 
    play_again != 'да':

                    break



    game RockPaperScissors()

    game.play() 
    Более сложная структура, но вам будет легче добавлять новые функции и поддерживать код в порядке.

  8. Цитата Сообщение от Шаолинь
    Привет, могу предложить использовать классы для этой игры. Это немного более продвинутый вариант, но он поможет структурировать код лучше.

    Программный код:

    class RockPaperScissors:

        
    def __init__(self):

            
    self.choices = ['камень''ножницы''бумага']

        

        
    def get_computer_choice(self):

            
    import random

            
    return random.choice(self.choices)

        

        
    def determine_winner(selfuser_choicecomputer_choice):

            if 
    user_choice == computer_choice:

                return 
    'ничья'

            
    elif (user_choice == 'камень' and computer_choice == 'ножницы') or \\

                 (
    user_choice == 'ножницы' and computer_choice == 'бумага') or \\

                 (
    user_choice == 'бумага' and computer_choice == 'камень'):

                return 
    'пользователь'

            
    else:

                return 
    'комп'

        

        
    def play(self):

            while 
    True:

                
    user_choice input('Ваш выбор: камень, ножницы, бумага? ').lower()

                if 
    user_choice not in self.choices:

                    print(
    'Ошибка выбора, попробуйте снова.')

                    continue

                
    computer_choice self.get_computer_choice()

                print(
    f'Комп выбрал: {computer_choice}')

                
    winner self.determine_winner(user_choicecomputer_choice)

                if 
    winner == 'ничья':

                    print(
    'Ничья!')

                
    elif winner == 'пользователь':

                    print(
    'Вы выиграли!')

                else:

                    print(
    'Выиграл комп!')

                

                
    play_again input('Сыграем еще раз? (да/нет): ').lower()

                if 
    play_again != 'да':

                    break



    game RockPaperScissors()

    game.play() 
    Более сложная структура, но вам будет легче добавлять новые функции и поддерживать код в порядке.
    Круто! Отличный пример использования классов. Это как раз то, что поможет мне лучше понять ООП в Python.

  9. Привет! Тебе может быть удобно начать с простого функционала, а потом добавлять новые фичи. Например, можно начать с базового if-elif-else и добавить валидацию ввода. Вот на скорую руку пример:

    Программный код:

    import random



    def get_computer_choice
    ():

        
    choices = ['камень''ножницы''бумага']

        return 
    random.choice(choices)



    def get_winner(user_choicecomputer_choice):

        if 
    user_choice == computer_choice:

            return 
    'ничья'

        
    elif (user_choice == 'камень' and computer_choice == 'ножницы') or \\

             (
    user_choice == 'ножницы' and computer_choice == 'бумага') or \\

             (
    user_choice == 'бумага' and computer_choice == 'камень'):

            return 
    'пользователь'

        
    else:

            return 
    'комп'



    while True:

        
    user_choice input('Введите камень, ножницы или бумага: ').lower()

        if 
    user_choice not in ['камень''ножницы''бумага']:

            print(
    'Некорректный ввод, попробуйте снова.')

            continue

        
    computer_choice get_computer_choice()

        print(
    f'Компьютер выбрал: {computer_choice}')

        

        
    winner get_winner(user_choicecomputer_choice)

        if 
    winner == 'ничья':

            print(
    'Ничья!')

        
    elif winner == 'пользователь':

            print(
    'Вы выиграли!')

        else:

            print(
    'Комп выиграл!')

        

        if 
    input('Сыграть еще раз? (да/нет): ').lower() != 'да':

            break 
    Простой, но вполне работающий вариант.

  10. Цитата Сообщение от KatyaStorm
    Привет! Тебе может быть удобно начать с простого функционала, а потом добавлять новые фичи. Например, можно начать с базового if-elif-else и добавить валидацию ввода. Вот на скорую руку пример:

    Программный код:

    import random



    def get_computer_choice
    ():

        
    choices = ['камень''ножницы''бумага']

        return 
    random.choice(choices)



    def get_winner(user_choicecomputer_choice):

        if 
    user_choice == computer_choice:

            return 
    'ничья'

        
    elif (user_choice == 'камень' and computer_choice == 'ножницы') or \\

             (
    user_choice == 'ножницы' and computer_choice == 'бумага') or \\

             (
    user_choice == 'бумага' and computer_choice == 'камень'):

            return 
    'пользователь'

        
    else:

            return 
    'комп'



    while True:

        
    user_choice input('Введите камень, ножницы или бумага: ').lower()

        if 
    user_choice not in ['камень''ножницы''бумага']:

            print(
    'Некорректный ввод, попробуйте снова.')

            continue

        
    computer_choice get_computer_choice()

        print(
    f'Компьютер выбрал: {computer_choice}')

        

        
    winner get_winner(user_choicecomputer_choice)

        if 
    winner == 'ничья':

            print(
    'Ничья!')

        
    elif winner == 'пользователь':

            print(
    'Вы выиграли!')

        else:

            print(
    'Комп выиграл!')

        

        if 
    input('Сыграть еще раз? (да/нет): ').lower() != 'да':

            break 
    Простой, но вполне работающий вариант.
    Пример хороший, особенно для начинающих. Хотя я бы попробовал его улучшить, добавив, например, больше условий для обработки ввода.

Страница 1 из 2 12 ПоследняяПоследняя