Во-первых, я понимаю, что следующий код, вероятно, не очень хорош, поэтому извиняюсь за все, что заставляет вас съеживаться, я просто пытаюсь закодировать столько, сколько могу, в надежде получить лучше.Проект палача новичка: Работа с дублирующими буквами
Это часть маленького игрового проекта для палача, я пытаюсь найти лучший способ справиться с повторяющимися буквами в строках.
Это то, что я сейчас:
def checkDupes(word):
global dupeList
global repeatTimesDupes
if repeatTimesDupes != 0:
dupeCount = 0
for i in range(len(word)):
temp = word[i]
print("temp letter is: ", temp)
for j in range(i+1,len(word)):
if word[j] == temp:
if temp not in dupeList:
dupeList.append(word[j])
print("the dupeList contains: ", dupeList)#debug
repeatTimesDupes -= 1
def getLetter(position,buttons,word):
i = 96
index = 0
letter = chr(i)
for button in buttons:
if button != None:
i+=1
if button.collidepoint(position):
print("the position is: ", position)
print(i)
for j in range(len(word)):
print(word[j] , chr(i))
if word[j] == chr(i):
index = j
return chr(i), index
else:
return '?', -1
def checkForLetter(word,letter):
inWord = " "
for i in range(len(word)):
if word[i] == letter:
inWord = True
break
else:
print(len(word))
print (word[i])
inWord = False
return inWord
#========================== Start Loop ===========================================
while done == False:
events = pygame.event.get()
screen.fill(BGCOLOR)
timedelta = clock.tick_busy_loop(60)
timedelta /= 1000 # Convert milliseconds to seconds
for event in events:
if event.type == pygame.QUIT:
done = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
done = True
if event.type == pygame.MOUSEBUTTONUP:
if event.button == MOUSEBUTTONLEFT:
pos = pygame.mouse.get_pos()
for button in buttonsList:
if button.collidepoint(pos):
if button != None:
checkDupes(gameWord)
letter, atIndex = getLetter(pos,buttonsList,gameWord)
letterSelected = True
moveCounter+=1
screen.blit(blackBG,(0,0))
showButtons(letterList)
showLetterSlots(gameWord,screenRect)
setCounters(moveMade,mistakeMade)
if letterSelected:
inGameWord = checkForLetter(gameWord, letter)
if inGameWord:
print(atIndex)
print(letter)
letterRen = wordFonts.render(letter,1,(0,255,0))
renderList[atIndex] = letterRen
print("The render list is: ", renderList)
renCount = 0
for r in lineRectList:
if renderList[renCount] != '?' :
screen.blit(renderList[renCount],((r.centerx-10),430))
if renCount <= len(gameWord):
renCount+=1
#update game screen
clock.tick(60)
pygame.display.update()
#========================== End Loop =============================================
pygame.quit()
Я ищу быстрый способ иметь дело с дубликатами, чтобы они вместе с выведено их спичек. Я уже замедляю свои блики с этим циклом, поэтому я не уверен, что мой текущий getDupes
- это путь.
Если кто-то хочет взглянуть на это и внести свой вклад, я очень благодарен.
Спасибо за ваше время.
Пожалуйста, сузите отправку кода только на то, что имеет отношение к вопросу, который вы задаете. –
Сделано и сделано, в то время как все downvotes? Разве это место настолько укоренилось в элитизме, что люди смотрят на новичков и тех, кто пытается улучшить? Прошу прощения, я не хочу встречаться с задницей, но отрицательный ответ, который я получаю на каждый вопрос, который я публикую, немного расстраивает. Я имею в виду, должен ли я просто искать в другом месте для достойной помощи? – Wretch11
@ Wretch11 Добро пожаловать в переполнение стека! Головокружения не являются личным размышлением о вас. Тебе очень рады. Downvotes - это сигналы о том, что сообщение должно быть улучшено, а не прямое отклонение того, что вы отправили. Теперь посмотрим, сможем ли мы понять, что здесь происходит. Какое желаемое поведение здесь? Что должно произойти, если есть повторяющаяся строка? – Ares