ವಿಷಯಕ್ಕೆ ತೆರಳಿ

ಪ್ರಾಜೆಕ್ಟ್ 13: ಕಲ್ಲು, ಕಾಗದ, ಕತ್ತರಿ (Rock, Paper, Scissors)

ಈ ಪ್ರಾಜೆಕ್ಟ್‌ನಲ್ಲಿ, ನಾವು ಪ್ರಸಿದ್ಧ "ಕಲ್ಲು, ಕಾಗದ, ಕತ್ತರಿ" ಆಟದ ಕಮಾಂಡ್-ಲೈನ್ ಆವೃತ್ತಿಯನ್ನು ನಿರ್ಮಿಸುತ್ತೇವೆ. ಬಳಕೆದಾರರು ತಮ್ಮ ಆಯ್ಕೆಯನ್ನು (ಕಲ್ಲು, ಕಾಗದ, ಅಥವಾ ಕತ್ತರಿ) ಮಾಡುತ್ತಾರೆ, ಮತ್ತು ಕಂಪ್ಯೂಟರ್ ಯಾದೃಚ್ಛಿಕವಾಗಿ ಒಂದು ಆಯ್ಕೆಯನ್ನು ಮಾಡುತ್ತದೆ. ನಂತರ, ಆಟದ ನಿಯಮಗಳ ಆಧಾರದ ಮೇಲೆ ಯಾರು ಗೆದ್ದರು ಎಂದು ಪ್ರೋಗ್ರಾಂ ನಿರ್ಧರಿಸುತ್ತದೆ.

ಕಲಿಕೆಯ ಪರಿಕಲ್ಪನೆಗಳು

  • random ಮಾಡ್ಯೂಲ್, ವಿಶೇಷವಾಗಿ random.choice().
  • ಬಳಕೆದಾರರಿಂದ ಇನ್‌ಪುಟ್ ಪಡೆಯುವುದು ಮತ್ತು ಅದನ್ನು ಮೌಲ್ಯೀಕರಿಸುವುದು.
  • while ಲೂಪ್ - ಆಟವನ್ನು ಮುಂದುವರಿಸಲು.
  • if-elif-else ಬಳಸಿ ಆಟದ ಲಾಜಿಕ್ ಅನ್ನು ಇಂಪ್ಲಿಮೆಂಟ್ ಮಾಡುವುದು.
  • ಲಿಸ್ಟ್‌ಗಳು ಮತ್ತು ಸ್ಟ್ರಿಂಗ್ ಮ್ಯಾನಿಪ್ಯುಲೇಶನ್.

ಆಟದ ನಿಯಮಗಳು

  • ಕಲ್ಲು ಕತ್ತರಿಯನ್ನು ಸೋಲಿಸುತ್ತದೆ (ಕಲ್ಲು ಕತ್ತರಿಯನ್ನು ಮುರಿಯುತ್ತದೆ).
  • ಕತ್ತರಿ ಕಾಗದವನ್ನು ಸೋಲಿಸುತ್ತದೆ (ಕತ್ತರಿ ಕಾಗದವನ್ನು ಕತ್ತರಿಸುತ್ತದೆ).
  • ಕಾಗದ ಕಲ್ಲನ್ನು ಸೋಲಿಸುತ್ತದೆ (ಕಾಗದ ಕಲ್ಲನ್ನು ಮುಚ್ಚುತ್ತದೆ).

ಕೋಡ್

import random

def get_computer_choice():
    """ಕಂಪ್ಯೂಟರ್‌ನ ಆಯ್ಕೆಯನ್ನು ಯಾದೃಚ್ಛಿಕವಾಗಿ ಹಿಂತಿರುಗಿಸುತ್ತದೆ."""
    choices = ['rock', 'paper', 'scissors']
    return random.choice(choices)

def get_user_choice():
    """ಬಳಕೆದಾರರ ಆಯ್ಕೆಯನ್ನು ಪಡೆಯುತ್ತದೆ ಮತ್ತು ಮೌಲ್ಯೀಕರಿಸುತ್ತದೆ."""
    while True:
        user_input = input("ನಿಮ್ಮ ಆಯ್ಕೆಯನ್ನು ನಮೂದಿಸಿ (rock, paper, or scissors): ").lower()
        if user_input in ['rock', 'paper', 'scissors']:
            return user_input
        else:
            print("ತಪ್ಪಾದ ಆಯ್ಕೆ. ದಯವಿಟ್ಟು 'rock', 'paper', ಅಥವಾ 'scissors' ನಲ್ಲಿ ಒಂದನ್ನು ಆಯ್ಕೆಮಾಡಿ.")

def determine_winner(user_choice, computer_choice):
    """ಆಟದ ವಿಜೇತರನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ."""
    print(f"\nನೀವು ಆಯ್ಕೆ ಮಾಡಿದ್ದು: {user_choice}")
    print(f"ಕಂಪ್ಯೂಟರ್ ಆಯ್ಕೆ ಮಾಡಿದ್ದು: {computer_choice}\n")

    if user_choice == computer_choice:
        return "ಆಟ ಡ್ರಾ ಆಗಿದೆ! (It's a tie!)"

    # ಗೆಲ್ಲುವ ಸಂಯೋಜನೆಗಳು
    if (user_choice == 'rock' and computer_choice == 'scissors') or \
       (user_choice == 'scissors' and computer_choice == 'paper') or \
       (user_choice == 'paper' and computer_choice == 'rock'):
        return "ಅಭಿನಂದನೆಗಳು! ನೀವು ಗೆದ್ದಿದ್ದೀರಿ! (You win!)"
    else:
        return "ಕ್ಷಮಿಸಿ, ನೀವು ಸೋತಿದ್ದೀರಿ. (You lose.)"

def main():
    """ಆಟದ ಮುಖ್ಯ ಫಂಕ್ಷನ್."""
    user_score = 0
    computer_score = 0

    print("ಕಲ್ಲು, ಕಾಗದ, ಕತ್ತರಿ ಆಟಕ್ಕೆ ಸ್ವಾಗತ!")

    while True:
        user_choice = get_user_choice()
        computer_choice = get_computer_choice()

        result = determine_winner(user_choice, computer_choice)
        print(result)

        # ಸ್ಕೋರ್ ಅಪ್‌ಡೇಟ್ ಮಾಡುವುದು
        if "You win" in result:
            user_score += 1
        elif "You lose" in result:
            computer_score += 1

        print(f"\nಸ್ಕೋರ್ -> ನೀವು: {user_score} | ಕಂಪ್ಯೂಟರ್: {computer_score}")

        play_again = input("\nಮತ್ತೊಮ್ಮೆ ಆಡಬೇಕೇ? (yes/no): ").lower()
        if play_again != 'yes':
            print("ಆಟವಾಡಿದ್ದಕ್ಕಾಗಿ ಧನ್ಯವಾದಗಳು!")
            break

if __name__ == "__main__":
    main()

ವಿವರಣೆ

  1. get_computer_choice(): ಈ ಫಂಕ್ಷನ್ ['rock', 'paper', 'scissors'] ಲಿಸ್ಟ್‌ನಿಂದ ಯಾದೃಚ್ಛಿಕವಾಗಿ ಒಂದು ಆಯ್ಕೆಯನ್ನು ಮಾಡಲು random.choice() ಅನ್ನು ಬಳಸುತ್ತದೆ.
  2. get_user_choice():
    • ಬಳಕೆದಾರರಿಂದ ಇನ್‌ಪುಟ್ ಪಡೆಯುತ್ತದೆ ಮತ್ತು lower() ಬಳಸಿ ಅದನ್ನು ಚಿಕ್ಕಕ್ಷರಗಳಿಗೆ ಪರಿವರ್ತಿಸುತ್ತದೆ.
    • ಬಳಕೆದಾರರು ಮಾನ್ಯವಾದ ಆಯ್ಕೆಯನ್ನು (rock, paper, ಅಥವಾ scissors) ನಮೂದಿಸುವವರೆಗೆ while ಲೂಪ್‌ನಲ್ಲಿ ಮತ್ತೆ ಮತ್ತೆ ಕೇಳುತ್ತದೆ.
  3. determine_winner(user_choice, computer_choice):
    • ಇದು ಆಟದ ಮುಖ್ಯ ಲಾಜಿಕ್ ಅನ್ನು ಹೊಂದಿದೆ.
    • ಮೊದಲು, ಎರಡೂ ಆಯ್ಕೆಗಳು ಸಮನಾಗಿದ್ದರೆ, ಅದು "ಡ್ರಾ" ಎಂದು ನಿರ್ಧರಿಸುತ್ತದೆ.
    • ನಂತರ, ಬಳಕೆದಾರರು ಗೆಲ್ಲುವ ಎಲ್ಲಾ ಮೂರು ಸಂಯೋಜನೆಗಳನ್ನು (if ಬ್ಲಾಕ್‌ನಲ್ಲಿ) ಪರಿಶೀಲಿಸುತ್ತದೆ.
    • ಮೇಲಿನ ಯಾವುದೇ ಷರತ್ತುಗಳು ನಿಜವಾಗದಿದ್ದರೆ, ಬಳಕೆದಾರರು ಸೋತಿದ್ದಾರೆ ಎಂದು else ಬ್ಲಾಕ್ ನಿರ್ಧರಿಸುತ್ತದೆ.
  4. main():
    • ಇದು ಆಟದ ಮುಖ್ಯ ಲೂಪ್ ಅನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ.
    • ಬಳಕೆದಾರರ ಮತ್ತು ಕಂಪ್ಯೂಟರ್‌ನ ಸ್ಕೋರ್‌ಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು user_score ಮತ್ತು computer_score ವೇರಿಯೇಬಲ್‌ಗಳನ್ನು ಬಳಸುತ್ತದೆ.
    • ಪ್ರತಿ ಸುತ್ತಿನ ನಂತರ, ಫಲಿತಾಂಶವನ್ನು ಆಧರಿಸಿ ಸ್ಕೋರ್ ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡುತ್ತದೆ.
    • ಬಳಕೆದಾರರು ಮತ್ತೊಮ್ಮೆ ಆಡಲು ಬಯಸುತ್ತಾರೆಯೇ ಎಂದು ಕೇಳುತ್ತದೆ. ಬಳಕೆದಾರರು "yes" ಎಂದು ಉತ್ತರಿಸದಿದ್ದರೆ, break ಸ್ಟೇಟ್‌ಮೆಂಟ್ ಬಳಸಿ ಲೂಪ್ ಅನ್ನು ಕೊನೆಗೊಳಿಸುತ್ತದೆ.