DAILY BLOCKS v2026.10.8.2 A daily falling-block challenge door all BBS systems alexcorris@outlook.com bbswordle.com https://bsky.app/profile/bbswordle.com ====================================================================== Every day the door deals ONE board. Every caller gets exactly the same pieces, in the same order, in the same starting well, and one try at it. Best score wins the day; scores add up over the month and all-time. Missed days can be made up from the calendar while they are still open. RUNNING ---------------------------------------------------------------------- Use the correct exe for your system, chmod +x for Linux style installs dblocks Linux dblockspi Linux ARM Systems (Raspberry Pi) dblocks.exe MS-DOS dblocksW32.exe Windows 32-bit dblocksW64.exe Windows 64-bit dblocks -DDOOR32.SYS (or DOOR.SYS, DORINFOx.DEF, BBSDEV.DRP) dblocks -N -S dblocks -L local mode, asks for a name (no -D and BBSDEV_DRP set in the environment also works) Extra switches: -U local mode on Linux: send UTF-8 instead of CP437 so the blocks look right in a modern terminal -PName local mode: log in as Name without the prompt (_ = space) -TYYYYMMDD pretend today is that date - for testing only The door needs ANSI and an 80x24 (or bigger) screen. Players are identified by alias (real name if the drop file has no alias). All data lives in the directory the executable is in, wherever the BBS happens to run it from. DBLOCKS.INI ---------------------------------------------------------------------- PiecesPerDay=50 pieces in each board (20-500) MakeupDays=30 how many days back a missed board stays open (0 = no make-ups) SpecialBoards=1 1 = some days start with blocks in the well BoardSeed= this BBS's own number; picked at random on first run StartDate=YYYYMMDD first day of play; set automatically on first run PiecesPerDay, SpecialBoards and BoardSeed change the boards themselves. Pick PiecesPerDay and SpecialBoards once and leave BoardSeed alone. If any of them changes later, old and new scores are not comparable. YOUR BOARDS ARE YOURS. The board for a day comes from the date plus BoardSeed. Every caller on your BBS gets the same pieces and the same starting well that day; a caller on somebody else's Daily Blocks gets something different, because that BBS drew a different number. Nobody can practise today's board on another system. The number is drawn the first time the door runs and written to dblocks.ini. If two or more BBSes ever WANT identical boards (a league, say), they can agree to use the same BoardSeed, PiecesPerDay and SpecialBoards. BoardSeedFrom=YYYYMMDD only appears on an install that already had scores when BoardSeed was first drawn Boards dated before BoardSeedFrom keep the original pieces, so a make-up day is still the same board for the callers who play it late as it was for those who played it on time. Do not change it. StartDate is the day the door first ran, so a brand-new install has no make-up days yet. Set it earlier if you want to open past days. PLAYING AHEAD. From PlayAheadDay to the end of each month, every remaining day of THAT month can be played early from the calendar - so a caller who will be away over the 30th and 31st can finish the month before leaving, but nobody can clear a month out on day 1. Next month never opens early. PlayAheadDay can be changed at any time; it does not touch the boards or any score already on file. A score played ahead is SEALED until its own day arrives: it is banked in dblocks.dat and its owner sees it on the calendar, but it is left off every scoreboard, standing, record, streak and "score to beat" until that date. On the day it simply appears, marked "early". So the scoreboards always read "as of today", and nobody can tell how beatable a day is before it has been dealt. HOW IT PLAYS ---------------------------------------------------------------------- Default keys Left/Right (A D, 4 6) move Up (W X, 5) rotate Z rotate back Down (S, 2) soft drop Space (8) hard drop C or H hold / swap G ghost on/off P pause Q or Esc quit the board Each caller can change these from "Keys & Controls" on the main menu: ten actions, up to four keys each. A key can only do one thing, so giving it to a new action takes it away from the old one. The set is saved per caller in dblocks.key and comes back at every logon; the in-game help line and the How to Play screen show the caller's own keys. ESC always quits a board whatever is set. Only the in-game keys can be changed - menus, calendar and scoreboards are fixed. Scoring Single 100, Double 300, Triple 500, Tetris 800 - times level +50 x level for each extra clear in a row (combo) Soft drop 1 per row, hard drop 2 per row Whole well emptied: +2,000 All pieces placed: +1,000, plus 50 per empty row left Level goes up every 10 pieces and the pieces fall faster Boards Classic empty well Rubble 3-5 junk rows on the floor, with gaps Scatter 10-16 stray blocks in the lower well Pillars 3-4 stone columns Deep Well 4-6 packed rows with one open shaft Roughly 45% of days are Classic. The piece order is a shuffled-bags-of-seven sequence seeded from the date and BoardSeed, so the same date gives the same board on every node of your BBS, whatever platform the door was built for. RULES WORTH KNOWING ---------------------------------------------------------------------- * One try per board. The board is claimed the moment the pieces start falling, and the score is written to disk after EVERY piece. Quit, hang up, time out or get the door killed: the score so far stands and the day is used. Nobody gets to see the pieces twice. * Pausing (and the quit prompt) hides the well, the next pieces and the hold piece. * Make-ups count in full - for the day's ranking, the month, streaks, everything. That means a day's winner can still change until its make-up window closes; the scoreboards mark such days "open". * Hitting Play when today is done offers your open make-up days, or tells you to come back tomorrow if there are none. * Whatever piece is on hold when the bag runs out must still be played. SCOREBOARDS ---------------------------------------------------------------------- 1 Day ranking for any single board 2 Winners who won each day of a month 3 Month monthly standings (total, days, wins, average, best) 4 Champs the champion of every month 5 All-Time lifetime standings 6 Top Days the 50 highest single boards ever 7 Records hall of records + the caller's own numbers Left/Right switches board, , and . move through days or months. Any list longer than the screen scrolls: Up/Down a line at a time, PgUp/PgDn (or Space) a page, Home/End to the ends. MAINTENANCE ---------------------------------------------------------------------- Delete dblocks.dat to wipe all scores. Do not delete dblocks.ini on a BBS that is in use: BoardSeed lives there. Without it the door draws a new number that takes effect from the next day, and any older day still open for make-ups goes back to the original board set - not the one your callers already played. Keep a copy of the BoardSeed line with your backups. Delete dblocks.key to put every caller back on the default keys. A stale dblocks.lck directory after a crash is harmless; the door takes it over after three seconds. DO NOT change the random number code once the door is in use: Every past board would become a different one.