2009-01-17 8 views
7

मैं पर काम कर रहा एक अजगर खेल im साथ मदद की जरूरत (मैं सिर्फ अजगर सीखने के बारे में 3 दिन पहले शुरू कर दिया है, इसलिए मैं अभी भी एक noob हूँ =) लेखनएक सरल "रॉक कागज कैंची" खेल बॉट

यह क्या है मैं के साथ आया था:

import random 

from time import sleep 

print "Please select: " 
print "1 Rock" 
print "2 Paper" 
print "3 Scissors" 

player = input ("Choose from 1-3: ") 

if player == 1: 
    print "You choose Rock" 
    sleep (2) 
    print "CPU chooses Paper" 
    sleep (.5) 
    print "You lose, and you will never win!" 

elif player == 2: 
    print "You choose Paper" 
    sleep (2) 
    print "CPU chooses Scissors" 
    sleep (.5) 
    print "You lose, and you will never win!" 

else: 
    print "You choose Scissors" 
    sleep (2) 
    print "CPU chooses Rock" 
    sleep (.5) 
    print "You lose, and you will never win!" 

और क्या मैं कार्यक्रम करना चाहते हैं बेतरतीब नहीं क्या बात उपयोगकर्ता इनपुट तीन विकल्प (रॉक कागज कैंची) में से 1 का चयन करने के लिए है!

+0

अब यह बिल्कुल ठीक है। – PyRulez

उत्तर

29

ठीक है, आप पहले ही यादृच्छिक मॉड्यूल आयात कर चुके हैं, यह एक शुरुआत है।

यादृच्छिक.चॉइस फ़ंक्शन का प्रयास करें।

>>> from random import choice 
>>> cpu_choice = choice(('rock', 'paper', 'scissors')) 
7
import random 

ROCK, PAPER, SCISSORS = 1, 2, 3 
names = 'ROCK', 'PAPER', 'SCISSORS' 

def beats(a, b): 
    if (a,b) in ((ROCK, PAPER), (PAPER, SCISSORS), (SCISSORS, ROCK)): 
     return False 

    return True 


print "Please select: " 
print "1 Rock" 
print "2 Paper" 
print "3 Scissors" 

player = int(input ("Choose from 1-3: ")) 
cpu = random.choice((ROCK, PAPER, SCISSORS)) 

if cpu != player: 
    if beats(player, cpu): 
     print "player won" 
    else: 
     print "cpu won" 
else: 
    print "tie!" 

print names[player-1], "vs", names[cpu-1] 
+0

साफ! मुझे भी एक बनाना था। =) – PEZ

+3

आपकी बीट्स फ़ंक्शन एक छोटी सी गुंजाइश है ... क्यों न केवल "(बी, बी)) ((पेपर, रॉक), (स्किस्सोर्स, पेपर), (स्किस्सोर्स, रॉक))"? – Kiv

4

गुमुज़ से प्रेरित होकर:

import random 

WEAPONS = 'Rock', 'Paper', 'Scissors' 

for i in range(0, 3): 
    print "%d %s" % (i + 1, WEAPONS[i]) 

player = int(input ("Choose from 1-3: ")) - 1 
cpu = random.choice(range(0, 3)) 

print "%s vs %s" % (WEAPONS[player], WEAPONS[cpu]) 
if cpu != player: 
    if (player - cpu) % 3 < (cpu - player) % 3: 
    print "Player wins" 
    else: 
    print "CPU wins" 
else: 
    print "tie!" 
+0

क्या आप 'if (player - cpu)% 3 <(cpu - player)% 3:' line समझा सकते हैं? – koogee

4

उपयोग शब्दकोशों

loseDic = { 'rock'  : 'paper', 
      'paper' : 'scissors', 
      'scissors' : 'rock', 
} 

## Get the human move, chose a random move, bla bla bla... 

if robotMove == humanMove: 
    tie() 
elif humanMove == loseDic[robotMove]: 
    lose() 
else: 
    win() 
+5

एक आशावादी ने इसके अनुसार संशोधित मैचों के साथ 'winDic' कहा होगा;) – sjngm

1

नहीं एक विशेषज्ञ, लेकिन यहाँ है कि मैं क्या अभी तक है, एक __name__ == '__main__' कथन का उपयोग सहायक हो सकता है है यदि आपको कंप्यूटर उत्पन्न करने और इसे साफ और संक्षिप्त रखने के लिए कंप्यूटर की आवश्यकता है।

कोई समाधान नहीं दिया गया।

import random 

def is_tie(move1, move2): 

'''FIX! (parameter types) -> return type 

    Return True if move1 and move2 are the same.''' 

    if move1 == move2: 
     return True 

def is_win(move1, move2): 
    '''FIX! (parameter types) -> return type 

    Return True iff move1 beats move2 in rock-paper-scissors.''' 

    choice1 = scissor > paper, 
    choice2 = paper > rock, 
    choice3 = rock > scissor 

    return choice1 or choice2 or choice3 

    if move1 > move2: 

    return True 

if __name__ == '__main__': 

    # Get a move from the user. 
    print "Rock, Paper, Scissor",  
    move1 = raw_input("What is your move? ") 

    # Now, to generate a random move for the computer. Tricky... Here are some examples and suggestions, no solution given. 

    if move2(random.randint(1,3)) == 1: 
     print "paper" 
    elif move2(random.randint(1,3)) == 2: 
     print "rock" 
    else: 
     print "scissor" 

    # Evaluate who wins and then print out an appropriate message.  
    #if solution(move1, move2): 
    # print 
    #if move2 > move1: 
    # usr_fail = (raw_input('I win!!')) 
    # print usr_fail 
    #if move2 < move1: 
    # usr_win = (raw_input('Damn it!')) 
    # print usr_win 
    #if move2 == move1 
    #usr_draw = (raw_input('Draw!!!') 
    # print usr_draw 
संबंधित मुद्दे