From 82a6de5fa2efdd0fb6012922847c7a43fa4ace77 Mon Sep 17 00:00:00 2001 From: Rampoina Date: Tue, 3 Jan 2023 22:17:28 +0100 Subject: [PATCH] Improve comments --- 2048.bqn | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/2048.bqn b/2048.bqn index 29836f5..214cf73 100755 --- a/2048.bqn +++ b/2048.bqn @@ -1,7 +1,8 @@ #!/usr/bin/env BQN +# 2048 game # The game is controlled with the vim movement keys: -# h: left, j: down, k: up, l: right -# it needs a VT-100 compatible terminal +# h: left, j: down, k: up, l: right, q: quit +# needs a VT-100 compatible terminal Merge←{𝕩 0⊸≠⊸/↩ ⋄ m←<`=⟜«𝕩 ⋄ 4↑(¬»m)/𝕩×1+m}⌾⌽ # Merge a single row to the right Step←Merge˘ # Merges each row of the board @@ -16,7 +17,7 @@ Win←∨´·∨˝2048⊸= # Winning condition, 2048! board←Spawn 4‿4⥊0 e←@+27 •term.RawMode 1 -Quit←{•Out e∾"[?12l"∾e∾"[?25h" ⋄ •Exit 𝕩} +Quit←{•Out e∾"[?12l"∾e∾"[?25h" ⋄ •Exit 𝕩} # Restores the terminal and exits •Out e∾"[?25l"∾e∾"[2J"∾e∾"[H" # Cursor to origin, hide it and clear screen {𝕤⋄ •Out e∾"[H"∾e∾"[2J" # Cursor to origin @@ -24,7 +25,7 @@ Quit←{•Out e∾"[?12l"∾e∾"[?25h" ⋄ •Exit 𝕩} •Show board key←•term.CharB @ # Read key - ⊑key∊"hjklq"? + ⊑key∊"hjklq"? # Valid key? {𝕤⋄•Out e∾"[?12l"∾e∾"[?25h"⋄ Quit 0}⍟(key='q')@ # Quit key? move←⊑(key="hjkl")/Left‿Down‿Up‿Right # Get movement function from the key {𝕤⋄board↩Spawn∘Move 𝕩}⍟(Move⊸≢) board # Generate the next board if the move is valid @@ -33,4 +34,4 @@ Quit←{•Out e∾"[?12l"∾e∾"[?25h" ⋄ •Exit 𝕩} {𝕤⋄•Out "You win!" ⋄ Quit 0}⍟Win board {𝕤⋄•Out "You lose!"⋄ Quit 1}⍟Lose board ; @ -}•_While_{𝕤⋄¬Lose board}@ +}•_While_{𝕤⋄1}@