MCPcopy Create free account
hub / github.com/ActiveState/code / nextTurn

Method nextTurn

recipes/Python/580811_Uno_TextBased/recipe-580811.py:1099–1228  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1097 return
1098
1099 def nextTurn(self):
1100 self.turnComplete = False
1101 self.handPosition = 0
1102 turnType = self.players[self.turn].getType()
1103 self.players[self.turn].beginTurn()
1104 ### Prepare Hand Visuals ###
1105
1106 self.elements['HName'] = self.handTitles[self.turn]
1107 self.buildHandVisual(self.turn)
1108
1109 if self.event == 'skip':
1110 self.eventSkip()
1111 elif self.drawAmount > 0:
1112 self.eventDraw()
1113
1114 while not self.turnComplete:
1115 if turnType == 'Human':
1116 self.players[self.turn].getLegalCards(self.currentColor, self.currentValue, self.zeroChange)
1117 if len(self.deck) > 0:
1118 self.elements['Console'] = 'Select a card, (D)raw, or (P)ause.'
1119 else:
1120 self.players[self.turn].removeForceDraw()
1121 self.elements['Console'] = 'Select a card, (D)raw, (P)ause, or Pas(s).'
1122 if self.players[self.turn].getForceDraws() > 0:
1123 self.elements['Error'] = 'Draw Card Played! Draw {} cards.'.format(self.players[self.turn].getForceDraws())
1124 print(self.drawScreen())
1125 playerInput = str(input("\033[97mSelection: \033[92m"))
1126 checked = self.checkInput(playerInput)
1127 while not checked['valid']:
1128 print(self.drawScreen())
1129 playerInput = str(input("\033[97mSelection: \033[92m"))
1130 checked = self.checkInput(playerInput)
1131
1132 playerInput = checked['entry']
1133
1134 if playerInput == '<':
1135 self.handPosition -= 1
1136 if self.handPosition == -1:
1137 self.handPosition = self.players[self.turn].maxScroll
1138 self.buildHandVisual(self.turn)
1139 elif playerInput == '>':
1140 self.handPosition += 1
1141 if self.handPosition > self.players[self.turn].maxScroll:
1142 self.handPosition = 0
1143 self.buildHandVisual(self.turn)
1144 elif playerInput == 'd':
1145 if len(self.deck) > 0:
1146 self.elements['Error'] = ''
1147 self.dealCard(self.turn)
1148 else:
1149 self.elements['Error'] = "Cannot Draw. Deck is Empty"
1150 elif playerInput == 'p':
1151 pauseOutput = self.pauseScreen()
1152 if pauseOutput == 'quit':
1153 self.matchComplete = True
1154 self.turnComplete = True
1155 self.winnerID = 'play1'
1156 self.matchAbort = True

Callers 1

playMatchFunction · 0.95

Calls 15

buildHandVisualMethod · 0.95
eventSkipMethod · 0.95
eventDrawMethod · 0.95
drawScreenMethod · 0.95
checkInputMethod · 0.95
dealCardMethod · 0.95
pauseScreenMethod · 0.95
extractCardMethod · 0.95
placeCardMethod · 0.95
resetDrawBoolMethod · 0.95
eventReverseMethod · 0.95
eventWildCardMethod · 0.95

Tested by

no test coverage detected