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