summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-06-25 17:38:04 -0600
committermo khan <mo@mokhan.ca>2025-06-25 17:38:04 -0600
commit291d5071fea479e4d04d5a51d4fdefc9b56eb30a (patch)
tree5cffc2f8254e60fc81e805b26677d9217c33ecf0
parent76c09f2f11611c79a4b1a1f5017901b1cc2ae776 (diff)
fix: Properly hide unvisited rooms on exploration map
- Fixed map display to show only visited rooms and current location - Unvisited rooms now appear as [???] instead of showing room numbers - Added exploration statistics (visited/total rooms) - Improved map legend and formatting - Connections to unknown rooms are properly hidden Now the map truly reveals the world as you explore it\! πŸ€– Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
-rw-r--r--AdventureGame.py73
1 files changed, 54 insertions, 19 deletions
diff --git a/AdventureGame.py b/AdventureGame.py
index 34279e1..cea82b6 100644
--- a/AdventureGame.py
+++ b/AdventureGame.py
@@ -661,48 +661,83 @@ def print_to_description(output, user_input=False):
def create_map_display():
"""Create ASCII map showing visited rooms and current location"""
- # Map layout based on README (simplified for display)
- map_layout = [
- " [001]<->[002]<->[003]<->[004]<->[005]",
+ # Map layout template with placeholders
+ map_template = [
+ " {001}<->{002}<->{003}<->{004}<->{005}",
" A ",
" | ",
" V ",
- " [006]<->[007]<->[008] ",
+ " {006}<->{007}<->{008} ",
" A ",
" | ",
" V ",
- " [009] [010]<->[011] ",
+ " {009} {010}<->{011} ",
" A A ",
" | | ",
" V V ",
- " [012]<->[013]<->[014] [015]<->[016] ",
+ " {012}<->{013}<->{014} {015}<->{016} ",
" A A ",
" | | ",
" V V ",
- " [017]<->[018]<->[019] ",
+ " {017}<->{018}<->{019} ",
" A A ",
" | | ",
" V V ",
- " [020] [021]<->[022] "
+ " {020} {021}<->{022} "
]
- # Replace room numbers with status indicators
- map_text = "\n".join(map_layout)
+ # Build the map by replacing placeholders
+ map_text = "\n".join(map_template)
- # Mark visited rooms and current location
+ # Replace each room placeholder with appropriate display
for room_num in range(1, 23):
- room_str = f"[{room_num:03d}]"
+ placeholder = "{" + f"{room_num:03d}" + "}"
+
if room_num == current_location:
- # Current location - bright highlight
- map_text = map_text.replace(room_str, f"[β˜…{room_num:02d}]")
+ # Current location - bright highlight with room number
+ replacement = f"[β˜…{room_num:02d}]"
elif room_num in visited_rooms:
- # Visited room - dimmed
- map_text = map_text.replace(room_str, f"[βœ“{room_num:02d}]")
+ # Visited room - show room number with checkmark
+ replacement = f"[βœ“{room_num:02d}]"
else:
- # Unvisited room - hidden
- map_text = map_text.replace(room_str, "[???]")
+ # Unvisited room - completely hidden
+ replacement = "[???]"
+
+ map_text = map_text.replace(placeholder, replacement)
+
+ # Hide connections to unvisited rooms by replacing arrows with spaces
+ lines = map_text.split('\n')
+ clean_lines = []
+
+ for line in lines:
+ # If a line contains ??? rooms, hide the connections to them
+ if "[???]" in line:
+ # Replace arrows pointing to/from unknown rooms with spaces
+ cleaned_line = line
+ # Hide horizontal connections
+ import re
+ # Replace <-> between known and unknown rooms
+ cleaned_line = re.sub(r'(\[[\β˜…βœ“]\d{2}\])<->(\[[\?]{3}\])', r'\1 \2', cleaned_line)
+ cleaned_line = re.sub(r'(\[[\?]{3}\])<->(\[[\β˜…βœ“]\d{2}\])', r'\1 \2', cleaned_line)
+ cleaned_line = re.sub(r'(\[[\?]{3}\])<->(\[[\?]{3}\])', r'\1 \2', cleaned_line)
+ clean_lines.append(cleaned_line)
+ else:
+ clean_lines.append(line)
+
+ map_text = "\n".join(clean_lines)
+
+ # Count visited rooms for stats
+ visited_count = len(visited_rooms)
+ total_rooms = 22
- return f"πŸ—ΊοΈ ADVENTURE MAP πŸ—ΊοΈ\n{'='*40}\nβ˜… = Current Location\nβœ“ = Visited\n? = Unknown\n{'='*40}\n\n{map_text}"
+ return f"""πŸ—ΊοΈ ADVENTURE MAP πŸ—ΊοΈ
+{'='*40}
+β˜… = You Are Here βœ“ = Visited
+? = Unknown Territory
+Explored: {visited_count}/{total_rooms} rooms
+{'='*40}
+
+{map_text}"""
def update_map_display():
"""Update the map widget with current exploration status"""