युद्धपोत पाइथन कोड अकादमी - पायथन

किसी कारण से अगर मेरे पास कथन हैजांच कर रहा है कि अनुमानित स्थान और वास्तविक स्थान समान हैं, बस यह काम नहीं कर रहा है। मैंने इसे सेट अप किया है, इसलिए मुझे पता है कि जहाज कहां है। मैंने इसे सभी इनपुट और उनके संबंधित प्रकारों को मुद्रित करने की कोशिश की है, बस मैंने अनुमान लगाया है और यह जांचने से पहले कि वे बराबर हैं लेकिन कुछ कारणों से यह अभी चलता है और कहता है कि मैं चूक गया हूं।

लेकिन वैसे भी यह है:

from random import randint

board = []

for x in range(0, 5):
board.append(["O"] * 5)

def print_board(board):
for row in board:
print " ".join(row)

print_board(board)

def random_row(board):
return randint(0, len(board) - 1)

def random_col(board):
return randint(0, len(board[0]) - 1)

ship_row = random_row(board)
ship_col = random_col(board)

print ship_row
print ship_col

##########################################
#Value error checking and guess row inputs
##########################################
def get_guess_row():
guess_row = int(raw_input("Guess Row:"))
return guess_row
def value_guess_row():
try:
y = get_guess_row()
except ValueError:
print ("Please enter a valid number.")
y = value_guess_row()
return y

##########################################
#Value error checking and guess col inputs
##########################################
def  get_guess_col():
guess_col = int(raw_input("Guess Col:"))
return guess_col
def value_guess_col():
try:
x = get_guess_col()
except ValueError:
print ("Please enter a valid number.")
x = value_guess_col()
return x

###############################
#Get the coloumn and row values
###############################
guess_col = value_guess_col()
guess_row = value_guess_row()

guess_col -= 1
guess_row -= 1


print ("Guessed coloumn: ", guess_col, "the type is: ", (type(guess_col)))
print ("Guessed row: ", guess_row, "the type is: ", (type(guess_row)))
print ("Actual coloumn: ",  ship_row, "the type is: ", (type(ship_row)))
print ("Actual row: ", ship_col, "the type is: ", (type(ship_col)))

# Write your code below!
if  guess_row == ship_row and guess_col == ship_col:
print  ("Congratulations! You sank my battleship!")

elif guess_row not in range(5) or 
guess_col not in range(5):
print ("Oops, that"s not even in the ocean.")

elif board[guess_row][guess_col] == "X":
print  ("You guessed that one already.")

else:
print ("You missed my battleship!")
board[guess_row][guess_col] = "X"
print_board(board)

उत्तर:

उत्तर № 1 के लिए 1

मैंने बस अपना कोड चलाया और यह ठीक काम करता प्रतीत होता है:

O O O O O
O O O O O
O O O O O
O O O O O
O O O O O
4
1
Guess Col:2
Guess Row:5
("Guessed coloumn: ", 1, "the type is: ", <type "int">)
("Guessed row: ", 4, "the type is: ", <type "int">)
("Actual coloumn: ", 4, "the type is: ", <type "int">)
("Actual row: ", 1, "the type is: ", <type "int">)
Congratulations! You sank my battleship!

कुछ चीजों को ध्यान में रखना जो आपको भ्रमित कर सकता है:

1) जब आप यादृच्छिक कॉलम और पंक्ति प्रिंट करते हैं, तो आप इसे ठीक उसी तरह दिखाते हैं जैसे सूची सूचकांक दिखता है: 4 1

लेकिन जब आप मानों के लिए पूछते हैं, तो आप पढ़े गए मान से 1 घटाते हैं (इसलिए यदि यादृच्छिक पंक्ति है 3, आप इनपुट होना चाहिए 4)

2) जब आप सिस्टम द्वारा उत्पन्न मानों को मुद्रित करते हैं, तो आपने पंक्तियों और स्तंभों को गलत स्थान दिया है, इसे यहां बदलें:

print ("Actual coloumn: ",  ship_col, "the type is: ", (type(ship_row)))
print ("Actual row: ", ship_row, "the type is: ", (type(ship_col)))

संबंधित सवाल
सबसे लोकप्रिय