игра в города список городов



Автор Илья Касимов задал вопрос в разделе Python

помогите написать Игру в города в питоне классическая игра в города и получил лучший ответ

Ответ от Oba yoba[гуру]
А что мешает, что ты уже сделал и что не получается?

Ответ от Виктор К[гуру]
Качаешь какую ни будь БД с городами, выгружаешь в SQLitte, например. Или просто в файл построчно.
Пользователь пишет слово, ты выполняешь проверку по списку городов, если ок, ищешь в списке город на последнюю букву переведенную в верхний регистр citi[-1].title()
Не забывай как-то фиксировать уже выбранные города.

Ответ от Акакий Сосипатриев[гуру]
массив с городами,

Ответ от KingLeonidas[гуру]
# -*- coding: utf8 -*-
import sys
import random
reload(sys)
sys.setdefaultencoding("UTF-8")
cityDataFile = "city.txt"
citys = []
nCity = {}
uCity = []
currChr = ''
bChr = 'ьъы'
lastCh = ''
def capitalizeString(inputStr):
return inputStr.strip().lower().capitalize()
def getLastChr(inputStr, spcChrs):
inputStr = inputStr[::-1]
lastChr = ''
for i in inputStr:
if not(i in spcChrs):
lastChr = i
break
return lastChr
with open(cityDataFile) as f:
citys = map(lambda x: capitalizeString(x), f.readlines())
for i in range(len(citys)):
citysF = citys[i].decode("UTF-8")[0]
if not nCity.has_key(citysF):
nCity[citysF] = []
nCity[citysF].append(citys[i].decode("UTF-8"))
while True:
userChoise = capitalizeString(raw_input().decode(encoding='UTF-8',errors='replace'))
fChr = userChoise[0]
if fChr == lastCh or lastCh == '':
if fChr in nCity.keys():
if not userChoise in nCity[fChr]:
if not userChoise in uCity:
print "Такого города нет в моей базе данных. Ещё попытка. "
else:
print "Этот город уже использовался в игре. Может что-то другое? "
continue
else:
uCity.append(nCity[fChr].pop(nCity[fChr].index(userChoise))
rChr = getLastChr(userChoise, bChr).upper()
print "Так-так, мне на букву '%s'" % (rChr)
try:
programChoise = nCity[rChr].pop(random.randint(0, len(nCity[rChr]) - 1))
except:
print "Я не знаю больше городов. "
print "Я проиграл :("
break
uCity.append(programChoise)
lastCh = getLastChr(programChoise, bChr).upper()
print "Пусть это будет город %s" % (programChoise,)
if nCity.has_key(lastCh) and len(nCity[lastCh]) != 0:
print "Тебе на букву '%s'" % (lastCh,)
continue
else:
print "Так как города на букву '%s' закончились в моей базе, то ты проиграл. " % (lastCh,)
print "Не расстраивайся неудачник. "
break
else:
print "Таких городов у меня вообще нет, предложи другой вариант. "
continue
else:
print "Ты должен написать город на букву '%s', повтори снова. " % (lastCh)
Пример работы для базы из четырех городов:
Москва
Так-так, мне на букву 'А'
Пусть это будет город Астрахань
Тебе на букву 'Н'
Новгород
Так-так, мне на букву 'Д'
Пусть это будет город Дмитров
Так как города на букву 'В' закончились в моей базе, то ты проиграл.
Не расстраивайся неудачник.
И пример работы для трех городов:
Москва
Так-так, мне на букву 'А'
Пусть это будет город Астрахань
Тебе на букву 'Н'
Новгород
Так-так, мне на букву 'Д'
Я не знаю больше городов.
Я проиграл 🙁
======================
Не самое оптимальное решение, но как есть. Накидал по-быстрому.

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: помогите написать Игру в города в питоне классическая игра в города
Список городов России на Википедии
Посмотрите статью на википедии про Список городов России
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*