Mark One Posted February 25, 2018 #6101 Share Posted February 25, 2018 Letters from Mark Ones Agony Aunt post bag. Dear Mark One. Ive recently started a new office job in the city. The staff are ace, well most of em are but I`m not too sure about the women with the purple hair. Shes always stroking her hair and makes a strange clicking noise. Anyway, I`m writing to you about break times. See we get 2 10min ones in which to make a brew and then walk off the premises for a fag. Now I like a snack too after my first fag, then me coffee and another smoke. Ive timed the brew making around 2 mins (if the kettle is still warm), the journey to the main road 48 seconds, my first smoke is 1.30seconds, the full english butty - 7 minutes and then another swift drag before I`m chained to me desk again. As you can see I`m in right bother with the manageress over time keeping and she is also stern on toilet time too. Ive thought about contacting my union but I don't think I`m a member. A mate of mine called Woodscrew says I should pull a stroke on the firm with mental trauma especially over the limits on the bathroom. Now all I want is longer tea-breaks cos the dinner time one is a hour and I never get in bother with the manager over that one. This note was written in work time and the manageress caught me in the cloak room writing it. But dont worry bud cos I got around more grief by saying I was filling in a job form. When I told her, she froze, nodded and then smiled at me! Can you believe the old moo, letting me off so easily - I`ll have to remember that one in future. So MArk One can you tell me how to get long fag breaks? Cheers Ronny Hi Ronny, you certainly are in the troubles at the moment in your new job. But do not worry for there are several ways in which you can extend your breaks at work. The problem is you`re focusing inside the box and not out of it and stressing yourself within the constraints of the 10 minute release to freedom. Use every available moment be yond the offices door to feed the smoking habit and maintain a optimum diet. Fire drills are handy for a quick toot Ronny as are trips outdoors with the recycling or trash. Visits top the bathroom can be taken advantage of too - if your quick. Ever thought of playing the dicky tummy card? Make the staff aware you have been up all night on the John. When you then fake the a toilet time moment you can actually spend a few good minutes outdoors taking in a healthy mix of fresh air and tobacco. Also never forget to take advantage of your outdoor freedom to accidentally lose something. Hide your phone or wallet under some soil or wedge it into a gap in the brick joints in a wall. Now nip back to the office, sit at your desk and then with loudness announce, "Oh no! Where is my <wotzit>" Act with panic to all of those critical observers and then dash back outside. Light another tab up as you search - to feed that outward (fake) impression of worry. Another approach worth taking a stab at is the Human Rights Act hustle. You could claim to your manageress that you are a borderline claustrophobic and that additional minutes have to be added to your break times - or even extra breaks throughout the day. Talk heavily about breathing exercises out in the open helping to ease your troubled mind. And then there is the golden egg of all smoking scams - psychological work related trauma. IF you find that after testing and using all of the above suggestions, your boss has you in for a disciplinary - follow your chums advice and play the illness card. Warn your boss that their spying is stressing you into smoking more ciggies. Demand longer breaks or you`re contacting head office with a report. Now take the week off, visit your GP and get a sick note. Your boss should post you a letter in which a meet is needed to discuss your needs (in a more suitable and calm enviroment) - pick the pub and let the firm get the drinks in with a large plate of steak, onion rings, chips. Trust me Ronny, within days they will want you back in the office, everyone will love you and your break times will have been amended to your expectations. 1 Link to comment Share on other sites More sharing options...
Mark One Posted March 9, 2018 #6102 Share Posted March 9, 2018 Well since this topic has become quiet I`ll sneak in and win with a text-book full english breakfast. GOD SAVE THE QUEEN and the full monty too. If anyone wishes to help me tuck in...its HP Brown sauce only pal! I`m not poisoning myself with a garnish of ketchup or chilli sauce!!!! Oh and whilst your here - get us a pint of lager bud. 2 Link to comment Share on other sites More sharing options...
EllJay Posted March 11, 2018 #6103 Share Posted March 11, 2018 I forgot to turn off my cellphone in the cinema the other week, so when it rang in the middle of the movie, a kind gentlemen in the audience rose up and instructed me on what I should do; 1 Link to comment Share on other sites More sharing options...
Space Commander Travis Posted March 12, 2018 #6104 Share Posted March 12, 2018 On 3/9/2018 at 4:22 PM, Mark One said: Well since this topic has become quiet I`ll sneak in and win with a text-book full english breakfast. GOD SAVE THE QUEEN and the full monty too. If anyone wishes to help me tuck in...its HP Brown sauce only pal! I`m not poisoning myself with a garnish of ketchup or chilli sauce!!!! Oh and whilst your here - get us a pint of lager bud. Chilli sauce? That will surely lose them a few marks in the CFEFU* scoring. * Classic Full English Fry Up 1 Link to comment Share on other sites More sharing options...
Mark One Posted March 12, 2018 #6105 Share Posted March 12, 2018 8 hours ago, Vlad the Mighty said: Chilli sauce? That will surely lose them a few marks in the CFEFU* scoring. * Classic Full English Fry Up You get my vote. Link to comment Share on other sites More sharing options...
+ouija ouija Posted March 13, 2018 #6106 Share Posted March 13, 2018 Link to comment Share on other sites More sharing options...
Mark One Posted March 14, 2018 #6107 Share Posted March 14, 2018 This cuddly baby elephant wins it for me. 3 Link to comment Share on other sites More sharing options...
+ouija ouija Posted March 14, 2018 #6108 Share Posted March 14, 2018 1 hour ago, Mark One said: This cuddly baby elephant wins it for me. Mods! Please close this thread ...... we definitely have a winner! Link to comment Share on other sites More sharing options...
Mark One Posted March 15, 2018 #6109 Share Posted March 15, 2018 Thanks goes out to Ouija for highlighting my winning post and notifying the Mods of my win. Cheers luv 1 Link to comment Share on other sites More sharing options...
+ouija ouija Posted March 15, 2018 #6110 Share Posted March 15, 2018 You're welcome! Link to comment Share on other sites More sharing options...
Mark One Posted March 20, 2018 #6111 Share Posted March 20, 2018 Proof that time travel exists! Photograph taken in 2537. 1 Link to comment Share on other sites More sharing options...
+ouija ouija Posted March 20, 2018 #6112 Share Posted March 20, 2018 10 minutes ago, Mark One said: Proof that time travel exists! Photograph taken in 2537. Sorry, I seem to have missed the 'proof' bit of that post 1 Link to comment Share on other sites More sharing options...
Mark One Posted March 23, 2018 #6113 Share Posted March 23, 2018 Locals struggling up a icy hill. 1 Link to comment Share on other sites More sharing options...
Space Commander Travis Posted March 23, 2018 #6114 Share Posted March 23, 2018 6 hours ago, Mark One said: Locals struggling up a icy hill. What was he planning to do with the wheelie bin at the end? You can imagine the fun you could have with that. 2 Link to comment Share on other sites More sharing options...
Ozymandias Posted March 24, 2018 #6115 Share Posted March 24, 2018 On 11/03/2018 at 9:45 PM, EllJay said: I forgot to turn off my cellphone in the cinema the other week, so when it rang in the middle of the movie, a kind gentlemen in the audience rose up and instructed me on what I should do; His outburst constituted an even greater interruption of the film than your mobile phone ringing. PS - this is an interesting way of getting around the prohibition on using the 'f_ck' word on this forum! 1 Link to comment Share on other sites More sharing options...
Ozymandias Posted March 24, 2018 #6116 Share Posted March 24, 2018 On 09/03/2018 at 4:22 PM, Mark One said: ... a text-book full english breakfast. Looks like a full Irish to me. 1 Link to comment Share on other sites More sharing options...
RAyMO Posted March 24, 2018 #6117 Share Posted March 24, 2018 Does the english include the Black and White? If no then its Irish. Link to comment Share on other sites More sharing options...
Ozymandias Posted March 24, 2018 #6118 Share Posted March 24, 2018 9 minutes ago, RAyMO said: Does the english include the Black and White? If no then its Irish. B&W pudding is as Irish as shamrock. There is nothing uniquely national about any of this stuff, with some exceptions they are staple foods eaten everywhere in the British Isles for centuries. Link to comment Share on other sites More sharing options...
RAyMO Posted March 24, 2018 #6119 Share Posted March 24, 2018 (edited) 5 hours ago, Ozymandias said: B&W pudding is as Irish as shamrock. There is nothing uniquely national about any of this stuff, with some exceptions they are staple foods eaten everywhere in the British Isles for centuries. Listen Ozy If we say its Irish, its Irish . Why are you using facts to support your argument anyway - sure you know facts is old hat nowadays ETA: some Ard Ri you are! Edited March 24, 2018 by RAyMO Link to comment Share on other sites More sharing options...
+ouija ouija Posted March 26, 2018 #6120 Share Posted March 26, 2018 The healthier alternative : 2 Link to comment Share on other sites More sharing options...
Mark One Posted March 27, 2018 #6121 Share Posted March 27, 2018 On 3/23/2018 at 8:19 PM, Vlad the Mighty said: What was he planning to do with the wheelie bin at the end? You can imagine the fun you could have with that. The things folk will do to try and disguise their embarrassing predicament. Link to comment Share on other sites More sharing options...
Mark One Posted March 27, 2018 #6122 Share Posted March 27, 2018 On 3/26/2018 at 2:44 PM, ouija ouija said: The healthier alternative : Um. Can you pop that back in the fridge for me. I`m nipping out for a newspaper and the cob shops next door. I`ll get a full monty from there to save on the washing up. *door slams shut* 1 Link to comment Share on other sites More sharing options...
Mark One Posted March 28, 2018 #6123 Share Posted March 28, 2018 This code makes me the winner. Select the text/code below. COPY it and then PASTE it into NOTEPAD. SAVE NOTEPAD file as - Tetris.BAT - to your desktop. Now, double click on the tetris icon. @echo off setlocal EnableDelayedExpansion if "%~1" neq "" goto %1 title Tetris.BAT by Aacini rem Written by Antonio Perez Ayala rem http://www.dostips.com/forum/viewtopic.php?f=3&t=6812 rem Reference: http://colinfahey.com/tetris/tetris.html rem 2015/11/27 - version 1.0 rem Delete the next line when Bitmap font 16x8 is used set "F16x8=REM" cls echo/ echo === Pure .BATch-file Tetris game by Aacini === echo/ echo/ echo Tetris pieces are controlled with these keys: echo/ echo rot.right echo rot. rot. move I move echo left ^<- A S D -^> right left ^<- J K L -^> right echo ^| ^| echo v v echo soft drop hard drop echo/ echo/ echo Press P to pause the game; press N to end game echo/ echo/ pause cls rem Field dimensions set /A cols=10, lines=20 set /A col=cols+6, lin=lines+8 %F16x8% set /A lin+=lines+2 mode CON: cols=%col% lines=%lin% if %errorlevel% neq 0 ( echo Configuration error^^^! echo You must select a font size that allows to set echo a text window of %col% columns X %lin% lines pause goto :EOF ) chcp 850 > NUL cd . > pipeFile.txt "%~F0" Input >> pipeFile.txt | "%~F0" Main < pipeFile.txt ping localhost -n 2 > NUL del pipeFile.txt goto :EOF :Input set "com[J]=Dx=-1" set "com[L]=Dx=1" set "com[K]=del=3" set "com[I]=R=-1" set "com[A]=R=1" set "com[D]=R=-1" set "com[S]=Dy=-1" set "com[Y]=Y" set "com[N]=N=1" set "com[P]=pause=1" for /L %%# in () do ( set "key=" for /F "delims=" %%k in ('xcopy /W "%~F0" "%~F0" 2^>NUL') do if not defined key set "key=%%k" for /F %%k in ("!key:~-1!") do ( echo(!com[%%k]! if /I "%%k" equ "N" exit ) ) rem exit :Main ( for /F "delims==" %%v in ('set') do set "%%v=" set /A cols=%cols%, lines=%lines% set "F16x8=%F16x8%" ) rem Initialize the Field for /L %%i in (1,1,%cols%) do set "spc=!spc! " for /L %%i in (1,1,%lines%) do set "F%%i= ³%spc%³" set /A top=lines+1 set "F%top%= Ú" & set "F0= À" for /L %%i in (1,1,%cols%) do set "F%top%=!F%top%!Ä" & set "F0=!F0!Ä" set "F%top%=!F%top%!¿" & set "F0=%F0%Ù" set "F-1= Level: 1" & set "Level=1" set "F-2= Rows: 0" & set "Rows=0" set "F-3= Score: 0" & set "Score=0" for /L %%i in (1,1,%cols%) do set "blk=!blk!Û" set /A top=lines+3, delay=50 %F16x8% set /A linesP2=lines+2 rem Define all ":orientations:" of the O I S Z L J T pieces via "triplets": rem (offset Y . offset X . length X); one "triplet" for each horizontal line for %%t in ( "O:0.-1.2 -1.-1.2" "I:0.-2.4:1.0.1 0.0.1 -1.0.1 -2.0.1" "S:0.0.2 -1.-1.2:1.0.1 0.0.2 -1.1.1" "Z:0.-1.2 -1.0.2:1.1.1 0.0.2 -1.0.1" "L:0.-1.3 -1.-1.1:1.0.1 0.0.1 -1.0.2:1.1.1 0.-1.3:1.-1.2 0.0.1 -1.0.1" "J:0.-1.3 -1.1.1:1.0.2 0.0.1 -1.0.1:1.-1.1 0.-1.3:1.0.1 0.0.1 -1.-1.2" "T:0.-1.3 -1.0.1:1.0.1 0.0.2 -1.0.1:1.0.1 0.-1.3:1.0.1 0.-1.2 -1.0.1" ) do ( set "pc=%%~t" set "i=-1" for /F "delims=" %%p in (^"!pc::^=^ % New line % !^") do ( if !i! lss 0 (set "pc=%%p") else set "!pc!!i!=%%p" set /A i+=1 ) set "!pc!N=!i!" ) set "pcs=OISZLJT" set "init=1" for /L %%# in () do ( if defined init ( setlocal EnableDelayedExpansion set "init=" rem Create the first "previous" piece for /L %%i in (0,1,!time:~-1!) do set /A p=!random!%%7 for %%p in (!p!) do set "p2=!pcs:~%%p,1!" for %%p in (!p2!) do set "p3=!%%p0!" & set "p4=!%%pN!" set "new=1" ) if defined new ( set "new=" rem Take the "previous" piece as current one set "pc=!p2!" & set "p0=!p3!" & set "pN=!p4!" rem Create a new "previous" piece for /L %%i in (1,1,2) do ( set /A p=!random!*7/32768 for %%p in (!p!) do ( set "p=!pcs:~%%p,1!" if !p! neq !pc! set "p2=!p!" ) ) for %%p in (!p2!) do set "p3=!%%p0!" & set "p4=!%%pN!" rem Insert the new "previous" piece in its place, above Field set /A x=3+cols/2, y=top, yp=top-1 set "F!yp!= %spc%" for %%p in (!p3!) do ( for /F "tokens=1-3 delims=." %%i in ("%%p") do ( set /A yp=y+%%i, xp=x+%%j, xL=xp+%%k for /F "tokens=1-3" %%a in ("!yp! !xp! !xL!") do ( set "F%%a=!spc:~0,%%b!!blk:~0,%%k!!spc:~%%c!" ) ) ) rem Try to insert the new current piece in the Field... set /A x=3+cols/2, y=lines, b=1 for %%p in (!p0!) do ( for /F "tokens=1-3 delims=." %%i in ("%%p") do ( set /A yp=y+%%i, xp=x+%%j, xL=xp+%%k for /F "tokens=1-3" %%a in ("!yp! !xp! !xL!") do ( if "!F%%a:~%%b,%%k!" neq "!spc:~0,%%k!" set "b=" set "F%%a=!F%%a:~0,%%b!!blk:~0,%%k!!F%%a:~%%c!" ) ) ) cls for /L %%i in (%top%,-1,-3) do ( echo(!F%%i! %F16x8% if %%i geq %linesP2% echo(!F%%i! %F16x8% if %%i geq 1 if %%i leq %lines% echo(!F%%i! ) rem ... if that was not possible: if not defined b call :endGame & endlocal set "p1=!p0!" set /A "pI=0, del=delay, b=1!time:~-2!" ) rem Control module: move the piece as requested via a key, or down one row each %del% centiseconds set "move=" set /A "Dy=Dx=0" set /P "com=" if defined com ( set /A "!com!, move=1" set "com=" if defined N exit if defined pause call :Pause & set "move=" set "b=1!time:~-2!" ) else ( set /A "e=1!time:~-2!, elap=e-b, elap-=(elap>>31)*100" if !elap! geq !del! set /A b=e, Dy=move=-1 ) if defined move ( rem Delete the piece from its current position, and store current coordinates set i=0 for %%p in (!p0!) do for /F "tokens=1-3 delims=." %%i in ("%%p") do ( set /A yp=y+%%i, xp=x+%%j, xL=xp+%%k for /F "tokens=1-3" %%a in ("!yp! !xp! !xL!") do ( set "F%%a=!F%%a:~0,%%b!!spc:~0,%%k!!F%%a:~%%c!" set /A i+=1 set "c!i!=%%a %%b %%c %%k" ) ) rem If move is Rotate: get rotated piece if defined R ( set /A "p=(pI+R+pN)%%pN" for /F "tokens=1,2" %%i in ("!pc! !p!") do set "p1=!%%i%%j!" ) rem Test if the piece can be placed at the new position, and store new coordinates set j=0 for %%p in (!p1!) do if defined move ( for /F "tokens=1-3 delims=." %%i in ("%%p") do ( set /A yp=y+%%i+Dy, xp=x+%%j+Dx, xL=xp+%%k for /F "tokens=1-3" %%a in ("!yp! !xp! !xL!") do ( if "!F%%a:~%%b,%%k!" equ "!spc:~0,%%k!" ( set /A j+=1 set "n!j!=%%a %%b %%c %%k" ) else ( set "move=" ) ) ) ) if defined move ( rem Place the piece at the new position for /L %%j in (1,1,!j!) do ( for /F "tokens=1-4" %%a in ("!n%%j!") do ( set "F%%a=!F%%a:~0,%%b!!blk:~0,%%d!!F%%a:~%%c!" ) ) rem Update the Field in screen cls for /L %%i in (%top%,-1,-3) do ( echo(!F%%i! %F16x8% if %%i geq %linesP2% echo(!F%%i! %F16x8% if %%i geq 1 if %%i leq %lines% echo(!F%%i! ) rem Update any changes in the piece set /A y+=Dy, x+=Dx if defined R set "p0=!p1!" & set "pI=!p!" & set "R=" ) else ( rem The piece can not be moved rem Recover the piece at its current position for /L %%i in (1,1,!i!) do ( for /F "tokens=1-4" %%a in ("!c%%i!") do ( set "F%%a=!F%%a:~0,%%b!!blk:~0,%%d!!F%%a:~%%c!" ) ) if defined R set "p1=!p0!" & set "R=" if !Dy! neq 0 ( rem The piece "lands" rem Count completed lines set "j=0" for /L %%i in (1,1,!i!) do for /F %%a in ("!c%%i!") do ( if "!F%%a:~3,%cols%!" equ "%blk%" ( set "F%%a= ³%spc: ==%³" set /A j+=1 ) ) if !j! neq 0 ( rem Update scores (See N-Blox at http://www.tetrisfriends.com/help/tips_appendix.php#rankingsystem) set /A "xp=Level*(40+((j-2>>31)+1)*60+((j-3>>31)+1)*200+((j-4>>31)+1)*900), Score+=xp, Rows+=j, xL=Level, Level=(Rows-1)/10+1" set "F-2=!F-2:~0,8!+!j! " set "xp=!xp! " set "F-3=!F-3:~0,8!+!xp:~0,6!" echo BEL Ctrl-G Ascii-7 cls for /L %%i in (%top%,-1,-3) do ( echo(!F%%i! %F16x8% if %%i geq %linesP2% echo(!F%%i! %F16x8% if %%i geq 1 if %%i leq %lines% echo(!F%%i! ) set "F-1=!F-1:~0,8! !Level!" set "F-2=!F-2:~0,8! !Rows!" set "F-3=!F-3:~0,8! !Score!" if !Level! neq !xL! if !delay! gtr 5 set /A delay-=5 rem Remove completed lines set "i=1" for /L %%i in (1,1,%lines%) do ( set "F!i!=!F%%i!" if "!F%%i:~3,1!" neq "=" set /A i+=1 ) for /L %%i in (!i!,1,%lines%) do set "F%%i= ³%spc%³" call :Delay 95 cls for /L %%i in (%top%,-1,-3) do ( echo(!F%%i! %F16x8% if %%i geq %linesP2% echo(!F%%i! %F16x8% if %%i geq 1 if %%i leq %lines% echo(!F%%i! ) ) rem Request to show a new piece set "new=1" ) ) ) ) :endGame set /P "=Play again? " < NUL :choice set /P "com=" if not defined com goto choice if /I "%com%" equ "Y" exit /B if /I "%com:~0,1%" neq "N" set "com=" & goto choice echo N exit :Pause set "pause=!F%lines%!" set "F%lines%= ³%spc: = PAUSED %³" cls & for /L %%i in (%top%,-1,-3) do ( echo(!F%%i! %F16x8% if %%i geq %linesP2% echo(!F%%i! %F16x8% if %%i geq 1 if %%i leq %lines% echo(!F%%i! ) :wait set /P "com=" if not defined com goto wait set "com=" set "F%lines%=%pause%" cls & for /L %%i in (%top%,-1,-3) do ( echo(!F%%i! %F16x8% if %%i geq %linesP2% echo(!F%%i! %F16x8% if %%i geq 1 if %%i leq %lines% echo(!F%%i! ) set "pause=" exit /B :Delay centisecs set "b=1%time:~-2%" :wait2 set /A "e=1%time:~-2%, elap=e-b, elap-=(elap>>31)*100" if %elap% lss %1 goto wait2 set "b=1%time:~-2%" exit /B 2 Link to comment Share on other sites More sharing options...
Space Commander Travis Posted March 28, 2018 #6124 Share Posted March 28, 2018 3 hours ago, Mark One said: This code makes me the winner. Select the text/code below. COPY it and then PASTE it into NOTEPAD. SAVE NOTEPAD file as - Tetris.BAT - to your desktop. Now, double click on the tetris icon. @echo off setlocal EnableDelayedExpansion if "%~1" neq "" goto %1 title Tetris.BAT by Aacini rem Written by Antonio Perez Ayala rem http://www.dostips.com/forum/viewtopic.php?f=3&t=6812 rem Reference: http://colinfahey.com/tetris/tetris.html rem 2015/11/27 - version 1.0 rem Delete the next line when Bitmap font 16x8 is used set "F16x8=REM" cls echo/ echo === Pure .BATch-file Tetris game by Aacini === echo/ echo/ echo Tetris pieces are controlled with these keys: echo/ echo rot.right echo rot. rot. move I move echo left ^<- A S D -^> right left ^<- J K L -^> right echo ^| ^| echo v v echo soft drop hard drop echo/ echo/ echo Press P to pause the game; press N to end game echo/ echo/ pause cls rem Field dimensions set /A cols=10, lines=20 set /A col=cols+6, lin=lines+8 %F16x8% set /A lin+=lines+2 mode CON: cols=%col% lines=%lin% if %errorlevel% neq 0 ( echo Configuration error^^^! echo You must select a font size that allows to set echo a text window of %col% columns X %lin% lines pause goto :EOF ) chcp 850 > NUL cd . > pipeFile.txt "%~F0" Input >> pipeFile.txt | "%~F0" Main < pipeFile.txt ping localhost -n 2 > NUL del pipeFile.txt goto :EOF :Input set "com[J]=Dx=-1" set "com[L]=Dx=1" set "com[K]=del=3" set "com[I]=R=-1" set "com[A]=R=1" set "com[D]=R=-1" set "com[S]=Dy=-1" set "com[Y]=Y" set "com[N]=N=1" set "com[P]=pause=1" for /L %%# in () do ( set "key=" for /F "delims=" %%k in ('xcopy /W "%~F0" "%~F0" 2^>NUL') do if not defined key set "key=%%k" for /F %%k in ("!key:~-1!") do ( echo(!com[%%k]! if /I "%%k" equ "N" exit ) ) rem exit :Main ( for /F "delims==" %%v in ('set') do set "%%v=" set /A cols=%cols%, lines=%lines% set "F16x8=%F16x8%" ) rem Initialize the Field for /L %%i in (1,1,%cols%) do set "spc=!spc! " for /L %%i in (1,1,%lines%) do set "F%%i= ³%spc%³" set /A top=lines+1 set "F%top%= Ú" & set "F0= À" for /L %%i in (1,1,%cols%) do set "F%top%=!F%top%!Ä" & set "F0=!F0!Ä" set "F%top%=!F%top%!¿" & set "F0=%F0%Ù" set "F-1= Level: 1" & set "Level=1" set "F-2= Rows: 0" & set "Rows=0" set "F-3= Score: 0" & set "Score=0" for /L %%i in (1,1,%cols%) do set "blk=!blk!Û" set /A top=lines+3, delay=50 %F16x8% set /A linesP2=lines+2 rem Define all ":orientations:" of the O I S Z L J T pieces via "triplets": rem (offset Y . offset X . length X); one "triplet" for each horizontal line for %%t in ( "O:0.-1.2 -1.-1.2" "I:0.-2.4:1.0.1 0.0.1 -1.0.1 -2.0.1" "S:0.0.2 -1.-1.2:1.0.1 0.0.2 -1.1.1" "Z:0.-1.2 -1.0.2:1.1.1 0.0.2 -1.0.1" "L:0.-1.3 -1.-1.1:1.0.1 0.0.1 -1.0.2:1.1.1 0.-1.3:1.-1.2 0.0.1 -1.0.1" "J:0.-1.3 -1.1.1:1.0.2 0.0.1 -1.0.1:1.-1.1 0.-1.3:1.0.1 0.0.1 -1.-1.2" "T:0.-1.3 -1.0.1:1.0.1 0.0.2 -1.0.1:1.0.1 0.-1.3:1.0.1 0.-1.2 -1.0.1" ) do ( set "pc=%%~t" set "i=-1" for /F "delims=" %%p in (^"!pc::^=^ % New line % !^") do ( if !i! lss 0 (set "pc=%%p") else set "!pc!!i!=%%p" set /A i+=1 ) set "!pc!N=!i!" ) set "pcs=OISZLJT" set "init=1" for /L %%# in () do ( if defined init ( setlocal EnableDelayedExpansion set "init=" rem Create the first "previous" piece for /L %%i in (0,1,!time:~-1!) do set /A p=!random!%%7 for %%p in (!p!) do set "p2=!pcs:~%%p,1!" for %%p in (!p2!) do set "p3=!%%p0!" & set "p4=!%%pN!" set "new=1" ) if defined new ( set "new=" rem Take the "previous" piece as current one set "pc=!p2!" & set "p0=!p3!" & set "pN=!p4!" rem Create a new "previous" piece for /L %%i in (1,1,2) do ( set /A p=!random!*7/32768 for %%p in (!p!) do ( set "p=!pcs:~%%p,1!" if !p! neq !pc! set "p2=!p!" ) ) for %%p in (!p2!) do set "p3=!%%p0!" & set "p4=!%%pN!" rem Insert the new "previous" piece in its place, above Field set /A x=3+cols/2, y=top, yp=top-1 set "F!yp!= %spc%" for %%p in (!p3!) do ( for /F "tokens=1-3 delims=." %%i in ("%%p") do ( set /A yp=y+%%i, xp=x+%%j, xL=xp+%%k for /F "tokens=1-3" %%a in ("!yp! !xp! !xL!") do ( set "F%%a=!spc:~0,%%b!!blk:~0,%%k!!spc:~%%c!" ) ) ) rem Try to insert the new current piece in the Field... set /A x=3+cols/2, y=lines, b=1 for %%p in (!p0!) do ( for /F "tokens=1-3 delims=." %%i in ("%%p") do ( set /A yp=y+%%i, xp=x+%%j, xL=xp+%%k for /F "tokens=1-3" %%a in ("!yp! !xp! !xL!") do ( if "!F%%a:~%%b,%%k!" neq "!spc:~0,%%k!" set "b=" set "F%%a=!F%%a:~0,%%b!!blk:~0,%%k!!F%%a:~%%c!" ) ) ) cls for /L %%i in (%top%,-1,-3) do ( echo(!F%%i! %F16x8% if %%i geq %linesP2% echo(!F%%i! %F16x8% if %%i geq 1 if %%i leq %lines% echo(!F%%i! ) rem ... if that was not possible: if not defined b call :endGame & endlocal set "p1=!p0!" set /A "pI=0, del=delay, b=1!time:~-2!" ) rem Control module: move the piece as requested via a key, or down one row each %del% centiseconds set "move=" set /A "Dy=Dx=0" set /P "com=" if defined com ( set /A "!com!, move=1" set "com=" if defined N exit if defined pause call :Pause & set "move=" set "b=1!time:~-2!" ) else ( set /A "e=1!time:~-2!, elap=e-b, elap-=(elap>>31)*100" if !elap! geq !del! set /A b=e, Dy=move=-1 ) if defined move ( rem Delete the piece from its current position, and store current coordinates set i=0 for %%p in (!p0!) do for /F "tokens=1-3 delims=." %%i in ("%%p") do ( set /A yp=y+%%i, xp=x+%%j, xL=xp+%%k for /F "tokens=1-3" %%a in ("!yp! !xp! !xL!") do ( set "F%%a=!F%%a:~0,%%b!!spc:~0,%%k!!F%%a:~%%c!" set /A i+=1 set "c!i!=%%a %%b %%c %%k" ) ) rem If move is Rotate: get rotated piece if defined R ( set /A "p=(pI+R+pN)%%pN" for /F "tokens=1,2" %%i in ("!pc! !p!") do set "p1=!%%i%%j!" ) rem Test if the piece can be placed at the new position, and store new coordinates set j=0 for %%p in (!p1!) do if defined move ( for /F "tokens=1-3 delims=." %%i in ("%%p") do ( set /A yp=y+%%i+Dy, xp=x+%%j+Dx, xL=xp+%%k for /F "tokens=1-3" %%a in ("!yp! !xp! !xL!") do ( if "!F%%a:~%%b,%%k!" equ "!spc:~0,%%k!" ( set /A j+=1 set "n!j!=%%a %%b %%c %%k" ) else ( set "move=" ) ) ) ) if defined move ( rem Place the piece at the new position for /L %%j in (1,1,!j!) do ( for /F "tokens=1-4" %%a in ("!n%%j!") do ( set "F%%a=!F%%a:~0,%%b!!blk:~0,%%d!!F%%a:~%%c!" ) ) rem Update the Field in screen cls for /L %%i in (%top%,-1,-3) do ( echo(!F%%i! %F16x8% if %%i geq %linesP2% echo(!F%%i! %F16x8% if %%i geq 1 if %%i leq %lines% echo(!F%%i! ) rem Update any changes in the piece set /A y+=Dy, x+=Dx if defined R set "p0=!p1!" & set "pI=!p!" & set "R=" ) else ( rem The piece can not be moved rem Recover the piece at its current position for /L %%i in (1,1,!i!) do ( for /F "tokens=1-4" %%a in ("!c%%i!") do ( set "F%%a=!F%%a:~0,%%b!!blk:~0,%%d!!F%%a:~%%c!" ) ) if defined R set "p1=!p0!" & set "R=" if !Dy! neq 0 ( rem The piece "lands" rem Count completed lines set "j=0" for /L %%i in (1,1,!i!) do for /F %%a in ("!c%%i!") do ( if "!F%%a:~3,%cols%!" equ "%blk%" ( set "F%%a= ³%spc: ==%³" set /A j+=1 ) ) if !j! neq 0 ( rem Update scores (See N-Blox at http://www.tetrisfriends.com/help/tips_appendix.php#rankingsystem) set /A "xp=Level*(40+((j-2>>31)+1)*60+((j-3>>31)+1)*200+((j-4>>31)+1)*900), Score+=xp, Rows+=j, xL=Level, Level=(Rows-1)/10+1" set "F-2=!F-2:~0,8!+!j! " set "xp=!xp! " set "F-3=!F-3:~0,8!+!xp:~0,6!" echo BEL Ctrl-G Ascii-7 cls for /L %%i in (%top%,-1,-3) do ( echo(!F%%i! %F16x8% if %%i geq %linesP2% echo(!F%%i! %F16x8% if %%i geq 1 if %%i leq %lines% echo(!F%%i! ) set "F-1=!F-1:~0,8! !Level!" set "F-2=!F-2:~0,8! !Rows!" set "F-3=!F-3:~0,8! !Score!" if !Level! neq !xL! if !delay! gtr 5 set /A delay-=5 rem Remove completed lines set "i=1" for /L %%i in (1,1,%lines%) do ( set "F!i!=!F%%i!" if "!F%%i:~3,1!" neq "=" set /A i+=1 ) for /L %%i in (!i!,1,%lines%) do set "F%%i= ³%spc%³" call :Delay 95 cls for /L %%i in (%top%,-1,-3) do ( echo(!F%%i! %F16x8% if %%i geq %linesP2% echo(!F%%i! %F16x8% if %%i geq 1 if %%i leq %lines% echo(!F%%i! ) ) rem Request to show a new piece set "new=1" ) ) ) ) :endGame set /P "=Play again? " < NUL :choice set /P "com=" if not defined com goto choice if /I "%com%" equ "Y" exit /B if /I "%com:~0,1%" neq "N" set "com=" & goto choice echo N exit :Pause set "pause=!F%lines%!" set "F%lines%= ³%spc: = PAUSED %³" cls & for /L %%i in (%top%,-1,-3) do ( echo(!F%%i! %F16x8% if %%i geq %linesP2% echo(!F%%i! %F16x8% if %%i geq 1 if %%i leq %lines% echo(!F%%i! ) :wait set /P "com=" if not defined com goto wait set "com=" set "F%lines%=%pause%" cls & for /L %%i in (%top%,-1,-3) do ( echo(!F%%i! %F16x8% if %%i geq %linesP2% echo(!F%%i! %F16x8% if %%i geq 1 if %%i leq %lines% echo(!F%%i! ) set "pause=" exit /B :Delay centisecs set "b=1%time:~-2%" :wait2 set /A "e=1%time:~-2%, elap=e-b, elap-=(elap>>31)*100" if %elap% lss %1 goto wait2 set "b=1%time:~-2%" exit /B And every time you wanted something that would go "bloop" on your ZX81, you had to type all that out, and then wait for it to load off of a C60 cassette. Those were the good old days. 2 Link to comment Share on other sites More sharing options...
+ouija ouija Posted April 2, 2018 #6125 Share Posted April 2, 2018 Have you two been at the sauce again? 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now