2013-04-05 2 views
0

backgroundломтик/шаг по переменной?

Я пытаюсь закодировать базовую буквенную игру на питоне. В игре модератор компьютера выбирает слово из списка возможных слов. Каждому игроку (компьютерному AI и человеку) показана серия пробелов, по одной для каждой буквы слова. Каждый игрок угадывает букву и позицию, и говорят, один из следующих:

  • Это письмо принадлежит в этой позиции (лучший результат)
  • Это письмо в слове, но не в таком положении
  • это письмо не в какой-либо из оставшихся пустых пространств

Когда слово было полностью раскрывается, игрок угадать большинство букв правильно выигрывает очко. Модератор компьютера выбирает другое слово и снова запускается. Первый игрок до пяти очков выигрывает игру. В основной игре оба игрока имеют одинаковый набор пробелов, которые они заполняют, поэтому игроки выигрывают от работы друг друга.

мой вопрос

Есть ли способ, чтобы использовать переменную, содержащую целое число для обозначения степени кусочком/походкой?

потому что секретное слово рандомизировано, у меня нет способа узнать, сколько символов он будет содержать. Сначала я хочу проверить вход пользователя (предположение) на основании его точности в отношении значения места, которое выбрал пользователь, прежде чем проверять, отображается ли буква в секретном слове вообще (не только в том месте, которое они указали). Я думаю, что я мог бы использовать len(), чтобы определить количество мест в секретном слове, а затем использовать числовой ввод игрока для фрагмента/шага к правильному месту персонажа в слове, указанном игроком.

Как получить заданное пользователем целое число в команду slice/stride? Кажется, он не соглашается назначать ввод переменной и затем помещает переменную в срез/шаг.

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

ответ

2

Проще говоря, да, вы можете это сделать. Вы хотите убедиться, что ввод, который вы получаете на самом деле, - a int, и работать с ним оттуда.

some_word = "This is the song that doesn't end" 
stride = int(raw_input("Stride distance? ")) 

print some_word[::stride] # prints out "Ti stesn htdented" 

Посмотрев в комментариях, вы можете выделить один символ в строке/последовательности путем индексации в нее.

some_word = "This is the song that doesn't end" 
iso = int(raw_input("Isolated character? ")) 

print some_word[iso] # prints out whatever character is in that position, 0-based. 
+0

хмм, говорит, что «ИНТ» не отозваны – jamyn

+0

еще раз, простите меня, если это элементарно, но я пытаюсь изолировать один символ от some_word. Вход пользователя сказал мне, какой номер персонажа (например, o будет 2 в «собаке»). Но я не знаю, как это сделать сам. Все шаги, которые я пробовал, напечатали несколько писем ... – jamyn

+0

Я предполагаю, что есть неправильное представление о том, что шаг в последовательности служит в Python. Этот необязательный параметр принимает только каждый элемент * nth * из последовательности, что означает, что он все еще получает всю последовательность. Возможно, вы ищете другой способ выразить то, что выполняете, и «шаг» слишком перегружен термином для его передачи. – Makoto

0

Похоже, это сделал, пытаясь изолировать «и» в «чувак», на основе пользовательского ввода 2.

userGuessPosition = 2 

secretWord = ('dude') 
slice1 = (secretWord.__len__()) - userGuessPosition - 1 
print (secretWord[slice1:userGuessPosition]) 
+0

благодарит за помощь @makoto – jamyn

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