def getInvalidFields(self, justLaunched): invalidFields = [] # Datatype checking if (not DatatypeUtils.isIntegerString(self.view.numTrainingVar.get())): invalidFields.append("'Maximale Anzahl der Trainings' muss eine Ganzzahl sein (zum Beispiel: 100)!") if (not DatatypeUtils.isIntegerString(self.view.incrementVar.get())): invalidFields.append("'Abstufungen der Trainings' muss eine Ganzzahl sein (zum Beispiel: 10)!") if (not DatatypeUtils.isIntegerString(self.view.numGamesVar.get())): invalidFields.append("'Anzahl der Wertungsspiele' muss eine Ganzzahl sein (zum Beispiel: 20)!") if (not DatatypeUtils.isString(self.view.outputFilenameVar.get())): invalidFields.append("'Ausgabedatei' muss eine Zeichenkette sein (zum Beispiel: output_001.csv)!") if (not DatatypeUtils.isIntegerString(self.view.numGhostsVar.get())): invalidFields.append("'Anzahl der Geister' muss eine Ganzzahl sein (zum Beispiel: 4)!") if (not DatatypeUtils.isString(self.view.layoutVar.get())): invalidFields.append("'Spielfeld' muss eine Zeichenkette sein (zum Beispiel: mediumClassic)!") if (not DatatypeUtils.isString(self.view.pacmanVar.get())): invalidFields.append("'Pacman-Agent' muss eine Zeichenkette sein (zum Beispiel: KeyboardAgent)!") if (not DatatypeUtils.isBooleanString(self.view.fixRandomSeedVar.get())): invalidFields.append("'Feste Random-Seed' muss ein Wahrheitswert sein (True oder False)!") # Value checking (numTraining) if (DatatypeUtils.isIntegerString(self.view.numTrainingVar.get())): numTrainingValue = DatatypeUtils.stringToInteger(self.view.numTrainingVar.get()) if (numTrainingValue < 0): invalidFields.append("'Maximale Anzahl der Trainings' muss groesser oder gleich " + str(0) + " sein!") # Value checking (increment) if (DatatypeUtils.isIntegerString(self.view.incrementVar.get())): incrementValue = DatatypeUtils.stringToInteger(self.view.incrementVar.get()) if (incrementValue < 0): invalidFields.append("'Abstufungen der Trainings' muss groesser oder gleich " + str(0) + " sein!") # Value checking (numGames) if (DatatypeUtils.isIntegerString(self.view.numGamesVar.get())): numGamesValue = DatatypeUtils.stringToInteger(self.view.numGamesVar.get()) if (numGamesValue < 1): invalidFields.append("'Anzahl der Spiele' muss groesser oder gleich " + str(1) + " sein!") # Value checking (outputFilename) if (DatatypeUtils.isString(self.view.outputFilenameVar.get()) and (not justLaunched)): if self.outputFileAlreadyExists(): invalidFields.append("Ausgabedatei '" + self.view.outputFilenameVar.get() + "' ist bereits vorhanden!") # Value checking (numGhosts) if (DatatypeUtils.isIntegerString(self.view.numGhostsVar.get())): numGhostsValue = DatatypeUtils.stringToInteger(self.view.numGhostsVar.get()) if (numGhostsValue < 0): invalidFields.append("'Anzahl der Geister' muss groesser oder gleich " + str(0) + " sein!") layout = self.view.layoutVar.get() mapNumGhosts = self.getMapNumGhosts(layout) if (mapNumGhosts > 5): mapNumGhosts = 5 if (numGhostsValue > mapNumGhosts): invalidFields.append("'Anzahl der Geister' muss fuer Spielfeld '" + layout + "' kleiner oder gleich " + str(mapNumGhosts) + " sein!") return invalidFields
def getInvalidFields(self): invalidFields = [] # Datatype checking if (not DatatypeUtils.isIntegerString(self.view.numTrainingVar.get())): invalidFields.append("'Anzahl der Trainings' muss eine Ganzzahl sein (zum Beispiel: 1)!") if (not DatatypeUtils.isIntegerString(self.view.numGamesVar.get())): invalidFields.append("'Anzahl der Spiele' muss eine Ganzzahl sein (zum Beispiel: 1)!") if (not DatatypeUtils.isIntegerString(self.view.numGhostsVar.get())): invalidFields.append("'Anzahl der Geister' muss eine Ganzzahl sein (zum Beispiel: 4)!") if (not DatatypeUtils.isString(self.view.layoutVar.get())): invalidFields.append("'Spielfeld' muss eine Zeichenkette sein (zum Beispiel: mediumClassic)!") if (not DatatypeUtils.isString(self.view.pacmanVar.get())): invalidFields.append("'Pacman-Agent' muss eine Zeichenkette sein (zum Beispiel: KeyboardAgent)!") if (not DatatypeUtils.isBooleanString(self.view.fixRandomSeedVar.get())): invalidFields.append("'Feste Random-Seed' muss ein Wahrheitswert sein (True oder False)!") if (not DatatypeUtils.isFloatString(self.view.zoomVar.get())): invalidFields.append("'Zoomfaktor' muss eine Kommazahl sein (zum Beispiel: 1.0)!") if (not DatatypeUtils.isFloatString(self.view.frameTimeVar.get())): invalidFields.append("'Spielgeschwindigkeit' muss eine Kommazahl sein (zum Beispiel: 0.1)!") if (not DatatypeUtils.isBooleanString(self.view.textGraphicsVar.get())): invalidFields.append("'Ausgabe als Text' muss ein Wahrheitswert sein (True oder False)!") if (not DatatypeUtils.isBooleanString(self.view.quietTextGraphicsVar.get())): invalidFields.append("'Minimale Ausgabe' muss ein Wahrheitswert sein (True oder False)!") # Value checking (numTraining) if (DatatypeUtils.isIntegerString(self.view.numTrainingVar.get())): numTrainingValue = DatatypeUtils.stringToInteger(self.view.numTrainingVar.get()) if (numTrainingValue < 0): invalidFields.append("'Anzahl der Trainings' muss groesser oder gleich " + str(0) + " sein!") # Value checking (numGames) if (DatatypeUtils.isIntegerString(self.view.numGamesVar.get())): numGamesValue = DatatypeUtils.stringToInteger(self.view.numGamesVar.get()) if (numGamesValue < 1): invalidFields.append("'Anzahl der Spiele' muss groesser oder gleich " + str(1) + " sein!") # Value checking (numGhosts) if (DatatypeUtils.isIntegerString(self.view.numGhostsVar.get())): numGhostsValue = DatatypeUtils.stringToInteger(self.view.numGhostsVar.get()) if (numGhostsValue < 0): invalidFields.append("'Anzahl der Geister' muss groesser oder gleich " + str(0) + " sein!") layout = self.view.layoutVar.get() mapNumGhosts = self.getMapNumGhosts(layout) if (mapNumGhosts > 5): mapNumGhosts = 5 if (numGhostsValue > mapNumGhosts): invalidFields.append("'Anzahl der Geister' muss fuer Spielfeld '" + layout + "' kleiner oder gleich " + str(mapNumGhosts) + " sein!") # Value checking (zoom) if (DatatypeUtils.isFloatString(self.view.zoomVar.get())): zoomValue = DatatypeUtils.stringToFloat(self.view.zoomVar.get()) if (zoomValue > MAX_ZOOM): invalidFields.append("'Zoomfaktor' muss kleiner oder gleich " + str(MAX_ZOOM) + " sein!") if (zoomValue < MIN_ZOOM): invalidFields.append("'Zoomfaktor' muss groesser oder gleich " + str(MIN_ZOOM) + " sein!") # Value checking (frameTime) if (DatatypeUtils.isFloatString(self.view.frameTimeVar.get())): frameTimeValue = DatatypeUtils.stringToFloat(self.view.frameTimeVar.get()) if (frameTimeValue > MAX_SPEED): invalidFields.append("'Spielgeschwindigkeit' muss kleiner oder gleich " + str(MAX_SPEED) + " sein!") if (frameTimeValue < MIN_SPEED): invalidFields.append("'Spielgeschwindigkeit' muss groesser oder gleich " + str(MIN_SPEED) + " sein!") return invalidFields