2016-06-14 5 views
0

Ich habe ein 2-D-Array, das ich als Karte für ein textbasiertes Spiel verwende, das ich in Python geschrieben habe. Ich möchte Benutzer davon abhalten, bestimmte Kacheln zu betreten. Dies ist eine einfache Lösung, wenn es um die Grenze geht, wie es mit '#' an den Rändern dargestellt wird. In der Geographie des Spiels wird jedoch das farbige Modul der Termfarbe verwendet, z. Berge sind colored('^', 'red'), was die Identifizierung der Charakterart schwierig macht.Wie identifiziere ich eine farbige Zeichenfolge in einem Array?

if USERPOSITION == ('#' or -INSERT_COLORED_STRING-): 
    # revert to previous position. 

Wenn ich einfach '#' or colored('^', 'red') geben, identifiziert es die normale Pfund-Symbol, aber nicht die roten '^'. Wenn ich nur '#' or '^' setze bekomme ich die gleichen Ergebnisse.

Wie kann ich Python überprüfen, um zu sehen, ob eine Zeichenfolge ein farbiges Zeichen ist?

Antwort

2

Ihre Bedingung ist falsch. Sie möchten prüfen, ob USERPOSITION gleich '#' ist oder ob es gleich colored('^', 'red') ist.

Dazu schreibt jede Bedingung ausdrücklich darauf hin, und prüfen, ob entweder wahr ist or mit:

if USERPOSITION == '#' or USERPOSITION == colored('^', 'red'):

Alternativ können Sie USERPOSITION in ('#', colored('^', 'red')) verwenden. Dies wäre vorteilhaft, wenn Sie mehrere verschiedene Werte von USERPOSITION hätten, die der Bedingung entsprechen sollten.

Verwandte Themen