Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maybe show Right Letter, Wrong Place differently #30

Open
hackerb9 opened this issue Sep 2, 2022 · 17 comments
Open

Maybe show Right Letter, Wrong Place differently #30

hackerb9 opened this issue Sep 2, 2022 · 17 comments

Comments

@hackerb9
Copy link
Contributor

hackerb9 commented Sep 2, 2022

@bgri wrote:

I was thinking of 'reverse video' initially [for Right Letter, Right Place], but dismissed it as I couldn't be consistent with the ones that were 'right letter, wrong place'.

Rapidly display and erasing is a good option. Maybe flipping between 'normal' and 'inverse' for those, or I'm also thinking maybe switching between proper letter and 'grey' box:
image

I guess it all depends on what they look like on the hardware. Emulators are one thing...

Originally posted by @bgri in #29 (comment)

@hackerb9
Copy link
Contributor Author

hackerb9 commented Sep 2, 2022

Turns out, on actual hardware, flipping between normal and inverse of the same letter actually shows a filled square at half-brightness. That makes sense since each pixel is on for only half of the time.

Flipping between the letter in reverse video and a normal space works pretty well. Almost all the pixels are dim, the ones defining the letter are clear. (At least on my Tandy 200.)

I have no idea how it looks on an emulator, though.

@hackerb9
Copy link
Contributor Author

hackerb9 commented Sep 3, 2022

By the way, it was a good idea with the checkerboard "grey box", but it turned out illegible.

I tried to figure out why. I believe the reason is that only half of the pixels in the letter are shown at full brightness (where the checkerboard has an on-pixel) and half are shown dim (where the checkerboard is off). To add to the confusion, the background (where the letter has off-pixels) also shows up as dim pixels whenever the checkerboard has an on-pixel.

Character number 88     Character number 255    Superposition
@   @                   @ @ @                   @ . @
@   @                    @ @ @                  .. ...
 @ @                    @ @ @                   .....
  @                      @ @ @                   ... .
 @ @                    @ @ @                   .....
@   @                    @ @ @                  .. ...
@   @                   @ @ @                   @ . @
                         @ @ @                   . . .

@hackerb9
Copy link
Contributor Author

Blinking may be tricky and counter to the goal of shrinking the program.

What if Right Letter, Wrong Place was shown as lowercase? That's probably not enough, but it could be a start.

What if the lines above and below the alphabet had some sort of marker pointing to the character indicating its special status? Or if the letters were moved up a line (or down for letters N-Z)?

There is as lot of space where the CONGRATULATIONS! message goes, so it should be possible to come up with a good solution.

@bgri
Copy link
Owner

bgri commented Oct 7, 2022

I was looking at using symbols at one point, but modified the design and didn't get back to them.
image

We can probably move the messaging area (CONGRATULATIONS!) up a line or two, then go with symbols above and below the letter block? I'm guessing that we might have to keep the bottom line clear as 'weird things' happen when some characters are written there... or at least that's what happened early on in this project. Who knows, maybe it's not an issue with VT52 addressing.

image

As for the symbols, NEC doesn't have the graphic set that Tandy units do. Anything after CHR$(130) is user defined (NEC PC-8201a Basic Reference APX A4-3). Haven't looked to see if the KY-85 or M10 have this or not.

So we could include symbol definitions for these, or be creative with existing characters (lower case V, and the Caret character).

@hackerb9
Copy link
Contributor Author

Moving the board up sounds good to me. We may have to change which character number is used for UP ARROW and DOWN ARROW. You can see what characters are available for the different machines by looking at the kyotronic-85.yaff file in Rob Hageman's Hoard of Bitfonts.

Printing to the Function Key area shouldn't be a problem as I've now disabled it on the NEC 8021A using SCREEN 0,0. Just be sure to suffix any print with a semicolon (;) or else it will scroll the whole page up.

Let's circle back to this after revision 0.m is released.

@hackerb9
Copy link
Contributor Author

hackerb9 commented Oct 16, 2022

Mainly a note for future-self: The undocumented EscS escape sequence does not appear to work in the Virtual T emulator for the Tandy 102. I had been thinking of using it for taking a snapshot of the alphabet line in two different states and then restoring it rapidly to cause some letters to flash. Do those codes only work on the Tandy 200?

Sample program that works on Tandy 200
10 BS$=CHR$(8)
20 ES$=CHR$(27)
30 RV$=ES$+"p"
40 NV$=ES$+"q"
50 CR$=CHR$(13)
60 FOR T=ASC("A") TO ASC("Z") STEP 2
70 PRINTRV$;CHR$(T);NV$;CHR$(T+1);
80 NEXT T
85 PRINT ES$;"S";
86 PRINT CR$;
90 FOR T=ASC("A") TO ASC("Z") STEP 2
100 PRINT CHR$(T);RV$;CHR$(T+1);NV$;
110 NEXT T
130 PRINT ES$;"s";
140 PRINT
200 REM
210 CLS
215 FOR T=1 TO 50
220 PRINTES$;"R";
230 PRINTES$;"r";
240 NEXT T
250 PRINT

@bgri
Copy link
Owner

bgri commented Oct 18, 2022

Ok, that seems to work... moving the board to make space, that is.
image

If I recall, there's a way to create custom character/bitmaps (at least on the NEC). Maybe we can create our own?

@bgri
Copy link
Owner

bgri commented Oct 18, 2022

Made the alphabet move changes. Also repositioned the Congrats! line. Still want to make that a bit more glitzy. Next to figure out what to use above/below characters.

Only to the .DO and +comments.DO.

I tried saving as tokenized .BA on my NEC, then copying that to the Backpack and loading it with the VirtualT emulator but it couldn't understand the .BA file. Have to refine the workflow a bit but bouncing between work and this right now so not able to focus for too long :)

Still want to test writing the file directly to Serial and seeing what happens there.

@hackerb9
Copy link
Contributor Author

Looking good. Did you want this change to be included in the 0.m release?

@hackerb9
Copy link
Contributor Author

Here's an idea. It may not be a good one, but let's roll it around and see.

How about, instead of having arrows pointing — which is tricky to do with the different fonts — the letters themselves could move.

There could be a dedicated line on the screen for Right Letter, Wrong Place (and perhaps another for Right Letter, Right Place).

*: 🅼🅾
?: it

 BCD FGH JK  
N PQ S UVWXYZ

Or, the letters could "step" out from the alphabet.

        i    
 BCD FGH JK 🅼
N🅾PQ S UVWXYZ
      t      

@hackerb9
Copy link
Contributor Author

hackerb9 commented Oct 19, 2022

Or they could step out, leaving behind the markers we already have set:

        i   🅼
 BCD FGH?JK *
N*PQ S?UVWXYZ
 🅾    t      

@bgri
Copy link
Owner

bgri commented Oct 20, 2022

Oooh, I like that last idea. I'll give it a shot and see how it looks. And yeah, I'm good with this also being in 0.m if you are :)

@bgri
Copy link
Owner

bgri commented Nov 2, 2022

image

I think it works quite well! Thanks for that suggestion.

@hackerb9
Copy link
Contributor Author

hackerb9 commented Nov 2, 2022

Your implementation works great! I often don't notice when a new letter has matched since it is covered up with a question mark, but I just played three games where having the letter step out helped me to see it.

If you're up for doing more on Right Letter, Wrong Place, (RLWP) here are some thoughts:

  • Now that plain text means RL-Wrong-P and reverse video means RL-Right-P in the alphabet, it makes sense to me to do the same in the hints.
  • The update speed after a guess is noticeably slower. I think it could be made faster by getting rid of the GOSUB 4200 to position the cursor after every letter.
    • Only reposition the cursor after printing an * or a ?.
    • Instead of specifying an absolute position, use a relative step. For example
      PRINT  "*";LT$;UP$;RV$;CHR$(T+64);NV$;
      (Of course, you'd use DN$ for the lower half of the alphabet).
  • Moving the alphabet up made it bump into the "SORRY!!" message if the player loses.

@bgri
Copy link
Owner

bgri commented Nov 5, 2022

I often don't notice when a new letter has matched since it is covered up with a question mark, but I just played three games where having the letter step out helped me to see it.

Agreed. It does help quickly identify the clues.

Points 1 & 3, for sure. I'll look at them.

Point 2

The update speed after a guess is noticeably slower.

Actually, I kinda liked the speed it worked on the hardware. Looked like a visual effect as they were revealed, like in the TV show Jeopardy when Vanna turns the letters :)

But I'll look at speeding it up anyway to see if the effect is still noticeable.

@hackerb9
Copy link
Contributor Author

hackerb9 commented Nov 5, 2022

If you like the speed, then by all means keep it. What would Jeopardy be without Vanna White? And, you're right, it does add some "sparkle" to playing.

@hackerb9
Copy link
Contributor Author

Next step: maybe the hint box should match the alphabet box. Earlier, I had suggested reverse video letters should always mean "right place", so instead of,

PRIUS    ....?
STEAM    S....
SNOOD    S.O?.
SCOWL    SCO..

the hint box would show:

PRIUS    ....S
STEAM    🆂....
SNOOD    🆂.🅾O.
SCOWL    🆂🅲🅾..

However, yesterday I had a friend who plays Wordle religiously try playing M100LE. They suggested that since the inverse letters are hard to read on the M100 they actually look deemphasized and perhaps it'd be better to use reverse video to replace the question marks (right letter, wrong place). That would look like,

PRIUS    ....🆂
STEAM    S....
SNOOD    S.O🅾.
SCOWL    SCO..

I admit that may be better. I have gotten used to the M100 font and had forgotten that the letters are incomplete on the left side, making many of them a puzzle of negative space. (For example, U could easily be J and E could be seen as a sideways π).

My friend also suggested that there is no need to use reverse video on the alphabet board. Having the letters next to the * or ? is sufficient and normal video makes it easier to see at a glance what letters are available. That would look something like,

        I   M
.BCD.FGH?JK.*
N*PQ.S?UVWXYZ
 O    T      

That seems reasonable to me and would actually be simpler code. What do you think?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants