A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 267 lines 11 kB view raw
1\subsection{Wormlet} 2\screenshot{plugins/images/ss-wormlet}{Wormlet game}{img:wormlet} 3Wormlet is a \opt{MULTIPLAYER_PAD}{multi{}-user }multi{}-worm game on a multi{}-threaded 4multi{}-functional Rockbox console. You navigate a hungry little worm. 5Help your worm to find food and to avoid poisoned argh{}-tiles. The 6goal is to turn your tiny worm into a big worm for as long as possible. 7 8\opt{MULTIPLAYER_PAD}{ 9For 2{}-player games a remote control is not necessary but recommended. 10If you try to hold the \dap\ in the four hands of two players 11you'll find out why. Games with three players are only 12possible using a remote control.\\} 13 14 15%The following table is only for the recorder version of the game, since the 16%other versions do not support either multi player or different control modes. 17%It is however prepared for the other targets should they ever support these 18%features. Also some other parts of the text is "opted" out for these targets. 19 20{\bfseries 21Game controls:} 22 23\opt{MULTIPLAYER_PAD}{ 24\renewcommand{\arraystretch}{1.8} 25\begin{rbtabular}{\textwidth}{c X p{3cm} p{3cm} p{3cm}}% 26{\textbf{Players} & \textbf{Modes} & \textbf{Player 1} & \textbf{Player 2} 27 & \textbf{Player 3}}{}{} 28% 290 & Out of control & \multicolumn{3}{p{9cm}}{With no player taking part in the 30 game all worms are out of control and steered by artificial stupidity.}\\ 31% 32\multirow{2}{*}{1} & 2 key control & on \dap\ \ButtonLeft: turn left 33 \ButtonRight: turn right & {}- & {}-\\ 34 & 4 key control & on \dap\ 35 \ButtonLeft: turn left 36 \ButtonUp: turn up 37 \ButtonRight: turn right 38 \ButtonDown: turn down & {}- & {}- \\ 39% 40\multirow{2}{*}{2} & Remote control & on \dap\ \ButtonLeft: turn left 41 \ButtonRight: turn right & on remote control VOL DOWN: 42 turn left VOL UP: turn right & {}- \\ 43 & No remote control & on \dap\ \ButtonLeft: turn left 44 \ButtonRight: turn right & on \dap\ \ButtonFTwo: turn 45 left \ButtonFThree: turn right & {}- \\ 463 & Remote control & on \dap\ \ButtonLeft: turn left \ButtonRight: turn right 47 & on remote control VOL DOWN: turn left VOL UP: turn 48 right & on \dap\ \ButtonFTwo: turn left \ButtonFThree: 49 turn right \\ 50\end{rbtabular} 51\renewcommand{\arraystretch}{1.0} 52} 53 54\nopt{MULTIPLAYER_PAD}{ 55 \begin{btnmap} 56 \nopt{MPIO_HD200_PAD,MPIO_HD300_PAD,XDUOO_X3_PAD,touchscreen}{\ButtonLeft} 57 \opt{MPIO_HD200_PAD}{\ButtonVolDown} 58 \opt{MPIO_HD300_PAD}{\ButtonRew} 59 \opt{XDUOO_X3_PAD}{\ButtonPrev} 60 \opt{touchscreen}{\TouchMidLeft} 61 & 62 \opt{HAVEREMOTEKEYMAP}{ 63 &} 64 Turn left 65 \\ 66 67 \nopt{MPIO_HD200_PAD,MPIO_HD300_PAD,XDUOO_X3_PAD,touchscreen}{\ButtonRight} 68 \opt{MPIO_HD200_PAD}{\ButtonVolUp} 69 \opt{MPIO_HD300_PAD}{\ButtonFF} 70 \opt{XDUOO_X3_PAD}{\ButtonNext} 71 \opt{touchscreen}{\TouchMidRight} 72 & 73 \opt{HAVEREMOTEKEYMAP}{ 74 &} 75 Turn right 76 \\ 77 78 \nopt{IPOD_3G_PAD,IPOD_4G_PAD,IRIVER_H10_PAD,MPIO_HD200_PAD% 79 ,MPIO_HD300_PAD,XDUOO_X3_PAD,touchscreen}{\ButtonUp} 80 \opt{IPOD_3G_PAD,IPOD_4G_PAD}{\ButtonMenu} 81 \opt{IRIVER_H10_PAD}{\ButtonScrollUp} 82 \opt{MPIO_HD200_PAD}{\ButtonRew} 83 \opt{MPIO_HD300_PAD}{\ButtonScrollUp} 84 \opt{XDUOO_X3_PAD}{\ButtonHome} 85 \opt{touchscreen}{\TouchTopMiddle} 86 & 87 \opt{HAVEREMOTEKEYMAP}{ 88 &} 89 Turn Up 90 \\ 91 92 \nopt{IPOD_3G_PAD,IPOD_4G_PAD,IRIVER_H10_PAD,MPIO_HD200_PAD% 93 ,MPIO_HD300_PAD,XDUOO_X3_PAD,touchscreen}{\ButtonDown} 94 \opt{IPOD_3G_PAD,IPOD_4G_PAD}{\ButtonPlay} 95 \opt{IRIVER_H10_PAD}{\ButtonScrollDown} 96 \opt{MPIO_HD200_PAD}{\ButtonFF} 97 \opt{MPIO_HD300_PAD}{\ButtonScrollDown} 98 \opt{XDUOO_X3_PAD}{\ButtonOption} 99 \opt{touchscreen}{\TouchBottomMiddle} 100 & 101 \opt{HAVEREMOTEKEYMAP}{ 102 &} 103 Turn Down 104 \\ 105 \end{btnmap} 106} 107 108\subsubsection{The game} 109Use the control keys of your worm to navigate around obstacles and find 110food. Worms do not stop moving except when dead. Dead worms are no fun. 111Be careful as your worm will try to eat anything that you steer it 112across. It won't distinguish whether it is edible or not. 113 114\begin{description} 115\item[Food.] 116The small square hollow pieces are food. Move the worm over a food tile 117to eat it. After eating the worm grows. Each time a piece of food has 118been eaten a new piece of food will pop up somewhere. Unfortunately for 119each new piece of food that appears two new ``argh'' pieces will 120appear, too. 121\item[Argh.] 122An ``argh'' is a black square poisoned piece {}- slightly bigger than 123food {}- that makes a worm say ``Argh!'' when 124run into. A worm that eats an ``argh'' is dead. Thus eating an 125``argh'' must be avoided under any circumstances. ``Arghs'' have the 126annoying tendency to accumulate. 127\item[Worms.] 128Thou shall not eat worms. Neither other worms nor thyself. Eating worms 129is blasphemous cannibalism, not healthy and causes instant 130death. And it doesn't help anyway: the other worm 131isn't hurt by the bite. It will go on creeping happily 132and eat all the food you left on the table. 133\item[Walls.] 134Don't crash into the walls. Walls are not edible. 135Crashing a worm against a wall causes it a headache it 136doesn't survive. 137\item[Game over.] 138The game is over when all worms are dead. The longest worm wins the 139game. 140\item [Pause the game.] 141Press 142\opt{IAUDIO_X5_PAD,PBELL_VIBE500_PAD,MPIO_HD200_PAD% 143 ,MPIO_HD300_PAD,SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonPlay}% 144\opt{IRIVER_H100_PAD,IRIVER_H300_PAD,IPOD_4G_PAD,IPOD_3G_PAD,SANSA_E200_PAD,SANSA_FUZE_PAD% 145 ,GIGABEAT_PAD,GIGABEAT_S_PAD}{\ButtonSelect} 146\opt{COWON_D2_PAD}{\TouchCenter} 147to pause the game. Press it again to resume the game. 148 149\item[Stop the game.] 150There are two ways to stop a running game. 151 152\begin{itemize} 153\item If you want to quit Wormlet entirely simply hit 154\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}% 155\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}% 156\opt{IAUDIO_X5_PAD,SANSA_E200_PAD,GIGABEAT_PAD,XDUOO_X3_PAD}{\ButtonPower}% 157\opt{SANSA_FUZE_PAD}{Long \ButtonHome}% 158\opt{PBELL_VIBE500_PAD}{\ButtonRec}% 159\opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonRew}% 160\opt{MPIO_HD200_PAD}{\ButtonRec + \ButtonPlay}% 161\opt{MPIO_HD300_PAD}{Long \ButtonMenu}% 162\opt{GIGABEAT_S_PAD}{\ButtonBack}. 163The game will stop immediately and you will return to the game menu. 164\item If you want to stop the game and still see the screen hit 165\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOn}% 166\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonPlay}% 167\opt{IAUDIO_X5_PAD,SANSA_E200_PAD}{\ButtonRec}% 168\opt{SANSA_FUZE_PAD}{\ButtonSelect+\ButtonUp}% 169\opt{GIGABEAT_PAD}{\ButtonA}% 170\opt{PBELL_VIBE500_PAD}{\ButtonCancel}% 171\opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonFF}% 172\opt{MPIO_HD200_PAD}{Long \ButtonFunc}% 173\opt{MPIO_HD300_PAD}{Long \ButtonPlay}% 174\opt{GIGABEAT_S_PAD}{\ButtonMenu}. 175\opt{XDUOO_X3_PAD}{\ButtonPlay}. 176This freezes the game. If you hit 177\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOn}% 178\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonPlay}% 179\opt{IAUDIO_X5_PAD,SANSA_E200_PAD}{\ButtonRec}% 180\opt{SANSA_FUZE_PAD}{\ButtonSelect+\ButtonUp}% 181\opt{GIGABEAT_PAD}{\ButtonA}% 182\opt{PBELL_VIBE500_PAD}{\ButtonCancel}% 183\opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonFF}% 184\opt{MPIO_HD200_PAD}{Long \ButtonFunc}% 185\opt{MPIO_HD300_PAD}{Long \ButtonPlay}% 186\opt{GIGABEAT_S_PAD}{\ButtonMenu} 187\opt{XDUOO_X3_PAD}{\ButtonHome + \ButtonPower}. 188button again a new game starts with the same configuration. To return to the 189games menu you can hit 190\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}% 191\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}% 192\opt{IAUDIO_X5_PAD,SANSA_E200_PAD,GIGABEAT_PAD,XDUOO_X3_PAD}{\ButtonPower}% 193\opt{SANSA_FUZE_PAD}{Long \ButtonHome} 194\opt{PBELL_VIBE500_PAD}{\ButtonRec}% 195\opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonRew}% 196\opt{MPIO_HD200_PAD}{\ButtonRec + \ButtonPlay}% 197\opt{MPIO_HD300_PAD}{Long \ButtonMenu}% 198\opt{GIGABEAT_S_PAD}{\ButtonBack}. A stopped game can not be resumed. 199\end{itemize} 200\end{description} 201 202\subsubsection{The scoreboard} 203On the right side of the game field is the score board. For each worm it 204displays its status and its length. The top most entry displays the 205state of worm 1, the second worm 2 and the third worm 3. When a worm 206dies its entry on the score board turns black. 207 208\begin{description} 209\item[Len:] 210Here the current length of the worm is displayed. When a worm is eating 211food it grows by one pixel for each step it moves. 212 213\item[Hungry:] 214That's the normal state of a worm. Worms are always 215hungry and want to eat. It is good to have a hungry 216worm since it means that your worm is alive. But it is 217better to get your worm growing. 218 219\item[Growing:] 220When a worm has eaten a piece of food it starts growing. For each step 221it moves over food it can grow by one pixel. One piece of food lasts 222for 7 steps. After your worm has moved 7 steps the food is used up. If 223another piece of food is eaten while growing it will increase the size 224of the worm for another 7 steps. 225 226\item[Crashed:] 227This indicates that a worm has crashed against a wall. 228 229\item[Argh:] 230If the score board entry displays ``Argh!'' it 231means the worm is dead because it tried to eat an ``argh''. Until we 232can make the worm say ``Argh!'' it is your job to say ``Argh!'' aloud. 233 234\item[Wormed:] 235The worm tried to eat another worm or even itself. 236That's why it is dead now. Making traps for other players with a worm 237is a good way to get them out of the game. 238\end{description} 239 240\subsubsection{Hints} 241 242\begin{itemize} 243 244\item Initially you will be busy with controlling your worm. Try to 245avoid other worms and crawl far away from them. Wait until they curl up 246themselves and collect the food afterwards. Don't worry if the other 247worms grow longer than yours {}- you can catch up after they've died. 248 249\item When you are more experienced watch the tactics of other worms. 250Those worms controlled by artificial stupidity head straight for the 251nearest piece of food. Let the other worm have its next piece of food 252and head for the food it would probably want next. Try to put yourself 253between the opponent and that food. From now on you can `control' the 254other worm by blocking it. You could trap it by making a 1 pixel wide 255U{}-turn. You also could move from food to food and make sure you keep 256between your opponent and the food. So you can always reach it before 257your opponent. 258 259\opt{MULTIPLAYER_PAD}{ 260\item While playing the game the \dap\ can still play music. For 261single player game use any music you like. For berserk games with 2 players use 262hard rock and for 3 player games use heavy metal or X{}-Phobie 263(\url{http://www.x-phobie.de/}). 264Play fair and don't kick your opponent in the toe or 265poke him in the eye. That would be bad manners. 266} 267\end{itemize}