2016-04-10 1 views
1

Я хочу дать пользователю выбор того, хотят ли они рандомизировать координаты или хотят ли они вводить их для игры с линкорами на Python. Следует отметить, что я использую портативное приложение PyScripter для его создания.Как я могу дать пользователю возможность выбрать, в каком режиме играть?

рандомизированное Версия

from random import randint 

Battleship_Board =[] 


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

def print_Battleship_Board(Battleship_Board): 
for row in Battleship_Board: 
    print (" ".join(row)) 

print ("Let's play Battleships!") 
print_Battleship_Board(Battleship_Board) 

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

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

Battleship_Row = random_row(Battleship_Board) 
Battleship_Column = random_col(Battleship_Board) 

for turn in range(5): 
    Guess_Board_Row = int(input("Guesss the X value")) 
    Guess_Board_Column = int(input("Guess the Y value")) 

if Guess_Board_Row == Battleship_Row and Guess_Board_Column == Battleship_Column: 
    print("You sunk my battleship!") 
    break 
else: 

    if (Guess_Board_Row < 1 or Guess_Board_Row > 5) or (Guess_Board_Column < 1 or Guess_Board_Column > 5): 
      print("Apologies, that's not on the grid") 

    elif(Battleship_Board[Guess_Board_Row][Guess_Board_Column] == "X"): 
      print("You already guessed that value") 

    else: 
     print("You missed my battleship") 
     Battleship_Board[Guess_Board_Row][Guess_Board_Column] = "X" 

     print("Turn" + str(turn+1) + " out of 4.") 
     print_Battleship_Board(Battleship_Board) 

    if turn >=4: 
     print("Game Over") 

Как вы можете видеть, я позволяя пользователю играть в игру на основе рандомизированного значения для столбца и строки.

, введенная Версия

Battleship_Board =[] 


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



def print_Battleship_Board(Battleship_Board): 
for row in Battleship_Board: 
    print (" ".join(row)) 

print ("Let's play Battleships!") 
print_Battleship_Board(Battleship_Board) 

Battleship_Row = int(input("Please enter a X value")) 
Battleship_Column = int(input("Please enter a Y value")) 

if (Battleship_Row < 1 or Battleship_Row > 5) or (Battleship_Column < 1 or Battleship_Row > 5): 
print("Apologies, that's not on the grid") 

for turn in range(5): 
    Guess_Board_Row = int(input("Guess the X value")) 
    Guess_Board_Column = int(input("Guess the Y value")) 

if Guess_Board_Row == Battleship_Row and Guess_Board_Column == Battleship_Column: 
    print("You sunk my battleship!") 
    print("My Ship was here: [" + str(Battleship_Row) + "][" + str(Battleship_Column) + "]") 
    break 

else: 
    if turn == 5: 
     Battleship_Board[Battleship_Row][Battleship_Column] = "X" 
     print_Battleship_Board(Battleship_Board) 
     print("Game Over") 
     print("My Ship was here: [" + str(Battleship_Row) + "][" + str(Battleship_Column) + "]") 

    else: 
     if (Guess_Board_Row < 1 or Guess_Board_Row > 5) or (Guess_Board_Column < 1 or Guess_Board_Column > 5): 
      print("Apologies, that's not on the grid") 

     elif(Battleship_Board[Guess_Board_Row][Guess_Board_Column] == "X"): 
      print("You already guessed that value") 

     else: 
      print("You missed my battleship!") 
      Battleship_Board[Guess_Board_Row][Guess_Board_Column] = "X" 

     print("Turns taken out of 5:", turn + 1) 
     print_Battleship_Board(Battleship_Board) 

Вот один, в котором пользователь получает входные значения.

Я хочу установить вариант между этими двумя версиями для выбора пользователем при запуске приложения. Как я могу это сделать?

+2

Инструкция 'if'? –

+0

Я принимал так же много, но я не был уверен, как правильно компоновать весь код, учитывая, что мне нужно будет различать эти две версии для python, чтобы понять и запустить его. –

+0

Что вы пробовали? Сделали какие-либо попытки в меню скрипта/функции/класса или что-то подобное? – jDo

ответ

2

Вы можете использовать аргументы командной строки, которые позволяют пользователю выбрать режим, когда он запускает игру до:

import sys 

if len(sys.argv) > 1 and sys.argv[1] == '<some-value>': 
    # Randomize 
else: 
    # Prompt user for input 

Подробнее о параметрах командной строки here. Для параметров командной строки, удобных для пользователя (читайте fancier), проверьте argparse.

Смежные вопросы