Add interactive text-based UI with environment visualization and decoupled architecture#111
Add interactive text-based UI with environment visualization and decoupled architecture#111
Conversation
Co-authored-by: dmccoystephenson <21204351+dmccoystephenson@users.noreply.github.com>
Co-authored-by: dmccoystephenson <21204351+dmccoystephenson@users.noreply.github.com>
dmccoystephenson
left a comment
There was a problem hiding this comment.
@copilot that's great, but the enrollment should be visualized and a non blocking terminal should be used to allow key commands. See Preponderous-Software/ophidian#95
…ext mode Co-authored-by: dmccoystephenson <21204351+dmccoystephenson@users.noreply.github.com>
Done! Commit 1bec9e5 adds: Environment Visualization:
Non-blocking Terminal Controls:
Visual Layout: The implementation now provides a fully interactive terminal experience similar to the referenced ophidian-prototype PR. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
dmccoystephenson
left a comment
There was a problem hiding this comment.
@copilot Great job, now ensure the user interface is abstracted sufficiently and decoupled sufficiently from the gameplay that it will be easy to support both with minimal changes when modifying just gameplay.
… simulation Co-authored-by: dmccoystephenson <21204351+dmccoystephenson@users.noreply.github.com>
Done! Commit f2d395c introduces Key Improvements:
Architecture: Both UIs now call controller methods like |
dmccoystephenson
left a comment
There was a problem hiding this comment.
@copilot the text visualization of the environment appears to be broken, I no longer see it when running the program
Co-authored-by: dmccoystephenson <21204351+dmccoystephenson@users.noreply.github.com>
Fixed in commit 3dc9910. The issue was a reference to The Bug: statsHeight = 12 if self.debug else 8 # AttributeError - self.debug doesn't existThe Fix: statsHeight = 12 if self.controller.isDebug() else 8 # Now uses controllerThe AttributeError was being silently caught in the exception handler (line 240), causing the entire |
|
@copilot the screen appears to be refreshing far too often and it is difficult to play because text jumps around instead of remaining stable |
Co-authored-by: dmccoystephenson <21204351+dmccoystephenson@users.noreply.github.com>
Fixed in commit 9e4311e. The screen was refreshing on every simulation tick (30-60 times per second), causing excessive flickering. Changes:
The simulation still processes at high speed, but the visual display updates at a comfortable 10 FPS rate, providing a stable viewing experience without text jumping. |
|
@copilot logs regarding entity behavior are pushing the game board off the screen. These should be rendered in a non conflicting way or only the latest message should be displayed. |
Co-authored-by: dmccoystephenson <21204351+dmccoystephenson@users.noreply.github.com>
Fixed in commit 9cccb9f. Entity behavior logs (deaths/reproductions) were using print() statements that disrupted the curses display. Solution:
The logs are now captured instead of written directly to stdout, preventing terminal scrolling while keeping users informed of important events. |
Plan: Add Text-Based UI Option
All tasks completed! Logs now display as a single "Event:" line in the stats area.
Original prompt
Fixes #110
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.