Batch Game Movement (Tutorial)

I enjoy anything to do with computers. I have made some interesting scripts, and I am constantly ...

Intro: Batch Game Movement (Tutorial)

Now, there are many ways to get a character in batch to move, however, in this tutorial is probably the shortest codes anyone has made.

Enjoy!

Note: Copy and paste the following code into notepad or another text-editing program and save it as movement.bat


Step 1: Code 1 (simple Movement)

@setlocal enableextensions enabledelayedexpansion
@echo off
title movement
color 0a

set length=         
set height= a

:controls
cls
echo Use WASD to move your character ([]).
echo.
for %%a in ( %height% ) do echo.
echo %length%[]
choice /c wasd /n
if %errorlevel% equ 1 call:up
if %errorlevel% equ 2 call:left
if %errorlevel% equ 3 call:down
if %errorlevel% equ 4 call:right

:left
set length=!length:~0,-1!
goto controls

:right
set length=%length%
goto controls

:up
set height=!height:~0,-2!
goto controls

:down
set height=%height% a
goto control

As you can see, the code is very small (29 lines to be exact). This, I believe, is one of the smallest anyone has made.

Feel free to use it as the basis for any games to come, also, extra points if you make pong with it.

Step 2: Code 2 (Grid Confined Movement)

In this code, your character will be confined to a "cage".

@setlocal enableextensions enabledelayedexpansion
@echo off
color 0a
title Movement 2 ~ Grid
cls
goto data

:data
set lespa=         
set rispa=         
set space=5
set err=0
set right=10
set left=10

:hud
cls
echo Move your character (X) with the WASD keys. Press R to reset
echo #######################
if %space% equ 0 if %err% neq 1 (
echo #%lespa%X%rispa%#
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     # )
if %space% equ 1 if %err% neq 1 (
echo #                     #
echo #%lespa%X%rispa%#
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     # )
if %space% equ 2 if %err% neq 1 (
echo #                     #
echo #                     #
echo #%lespa%X%rispa%#
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     # )
if %space% equ 3 if %err% neq 1 (
echo #                     #
echo #                     #
echo #                     #
echo #%lespa%X%rispa%#
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     # )
if %space% equ 4 if %err% neq 1 (
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #%lespa%X%rispa%#
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     # )
if %space% equ 5 if %err% neq 1 (
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #%lespa%X%rispa%#
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     # )
if %space% equ 6 if %err% neq 1 (
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #%lespa%X%rispa%#
echo #                     #
echo #                     #
echo #                     #
echo #                     # )
if %space% equ 7 if %err% neq 1 (
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #%lespa%X%rispa%#
echo #                     #
echo #                     #
echo #                     # )
if %space% equ 8 if %err% neq 1 (
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #%lespa%X%rispa%#
echo #                     #
echo #                     # )
if %space% equ 9 if %err% neq 1 (
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #%lespa%X%rispa%#
echo #                     # )
if %space% equ 10 if %err% neq 1 (
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #                     #
echo #%lespa%X%rispa%# )
echo #######################
echo.
echo.
choice /c wasdr /n
if %errorlevel% equ 1 goto w
if %errorlevel% equ 2 goto a
if %errorlevel% equ 3 goto s
if %errorlevel% equ 4 goto d
if %errorlevel% equ 5 goto data

:w
set /a space=%space%-1
if %space% lss 0 set space=0
goto hud

:a
set lespa=!lespa:~0,-1!
set /a left=%left%-1
if %left% lss 1 set left=1 && set lespa=%lespa%
set rispa=%rispa%
set /a right=%right%+1
if %right% gtr 19 set right=19 && set rispa=!rispa:~0,-1!
goto hud

:s
set /a space=%space%+1
if %space% gtr 10 set space=10
goto hud

:d
set rispa=!rispa:~0,-1!
set /a right=%right%-1
if %right% lss 1 set right=1 && set rispa=%rispa%
set lespa=%lespa%
set /a left=%left%+1
if %left% gtr 19 set left=19 && set lespa=!lespa:~0,-1!
goto hud

Share

    Recommendations

    • Audio Contest 2018

      Audio Contest 2018
    • Electronics Tips & Tricks Challenge

      Electronics Tips & Tricks Challenge
    • Plastics Contest

      Plastics Contest

    74 Discussions

    0
    None
    Mandheer

    4 years ago on Introduction

    I am having a problem with my game everytime i type 1 (which is the option for fight)

    it shows an error.What can i do to fix it

    here is the code.

    echo off

    cls

    :Menu

    cls

    Title The random boring encounter game

    color 0a

    echo The Random Boring Encounter Game

    echo

    echo 1) Start

    echo 2) Instructions

    echo 3) Exit

    Choice /c 123 /n

    if %errorlevel% == 1 goto starter

    if %errorlevel% == 2 goto ist

    if %errorlevel% == 3 goto exit

    :exit

    cls

    echo Thanks for playing.

    pause

    exit

    :ist

    cls

    echo There is a completely random chance of winning or losing.But there is a chance

    echo written next to the type of the troop.Like-

    echo Farmer[s] 1 out of 10 chance of losing.

    echo There are 9 levels of monsters.

    echo 1)Continue

    set /p Gobackinfo=

    if %Gobackinfo% equ 1 goto Menu

    :starter

    echo Picking fights.

    cls

    set /a points=0

    set /a num=%random%

    if %num% gtr 9 goto starter

    if %num% lss 1 goto starter

    if %num%==1 goto aa

    if %num%==2 goto bb

    if %num%==3 goto cc

    if %num%==4 goto dd

    if %num%==5 goto ee

    if %num%==6 goto ff

    if %num%==7 goto gg

    if %num%==8 goto hh

    if %num%==9 goto ii

    :aa

    echo Farmer[s] 1 out of 10 chance of losing.

    echo 1] Fight them

    echo 2] Run away (100% safe)

    set /p aa1=

    if %aa1%==1 goto fightaa

    if %aa1%==2 goto run

    :fightaa

    cls

    set /p aa2 = %random%

    if %aa1% gtr 10 goto fightaa

    if %aa1% lss 0 goto fightaa

    if %aa1%==1 goto win5

    if %aa1%==2 goto lose5

    if %aa1%==3 goto win5

    if %aa1%==4 goto win5

    if %aa1%==5 goto win5

    if %aa1%==6 goto win5

    if %aa1%==7 goto win5

    if %aa1%==8 goto win5

    if %aa1%==9 goto win5

    if %aa1%==10 goto win5

    :win5

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :lose5

    echo Loading Results.....

    timeout /t 7 >nul

    echo You lost the fight

    echo Score=%points%

    :bb

    echo Hunter[s] 2 out of 10 chance of losing.

    echo 1] Fight them

    echo 2] Run away (100% safe)

    set /p bb1=

    if %bb1%==1 goto fightbb

    if %bb1%==2 goto run

    :fightbb

    cls

    set /p bb2 = %random%

    if %bb2% gtr 10 goto fightbb

    if %bb2% lss 0 goto fightbb

    if %bb2%==1 goto win9

    if %bb2%==2 goto lose9

    if %bb2%==3 goto win9

    if %bb2%==4 goto win9

    if %bb2%==5 goto win9

    if %bb2%==6 goto win9

    if %bb2%==7 goto win9

    if %bb2%==8 goto win9

    if %bb2%==9 goto lose9

    if %bb2%==10 goto win9

    :win9

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    echo

    echo

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :lose9

    echo You lost the fight

    echo

    echo

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :cc

    echo Soldier[s] 3 out of 10 chance of losing.

    echo 1] Fight them

    echo 2] Run away (100% safe)

    set /p cc1=

    if %cc1%==1 goto fightcc

    if %cc1%==2 goto run

    :fightcc

    cls

    set /p cc2 = %random%

    if %cc2% gtr 10 goto fightcc

    if %cc2% lss 0 goto fightcc

    if %cc2%==1 goto win8

    if %cc2%==2 goto lose8

    if %cc2%==3 goto win8

    if %cc2%==4 goto win8

    if %cc2%==5 goto win8

    if %cc2%==6 goto win8

    if %cc2%==7 goto win8

    if %cc2%==8 goto win8

    if %cc2%==9 goto lose8

    if %cc2%==10 goto lose8

    :win8

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :lose8

    echo You lost the fight

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :dd

    echo horseman[s] 4 out of 10 chance of losing.

    echo 1] Fight them

    echo 2] Run away (100% safe)

    set /p dd1=

    if %dd1%==1 goto fightdd

    if %dd1%==2 goto run

    :fightdd

    cls

    set /p dd2 = %random%

    if %dd2% gtr 10 goto fightdd

    if %dd2% lss 0 goto fightdd

    if %dd2%==1 goto win7

    if %dd2%==2 goto lose7

    if %dd2%==3 goto win7

    if %dd2%==4 goto win7

    if %dd2%==5 goto win7

    if %dd2%==6 goto win7

    if %dd2%==7 goto win7

    if %dd2%==8 goto lose7

    if %dd2%==9 goto lose7

    if %dd2%==10 goto lose7

    :win7

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :lose7

    echo You lost the fight

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :ee

    echo King 5 out of 10 chance of losing.

    echo 1] Fight him

    echo 2] Run away (100% safe)

    set /p ee1=

    if %ee1%==1 goto fightee

    if %ee1%==2 goto run

    :fightee

    cls

    set /p ee2 = %random%

    if %ee2% gtr 10 goto fightee

    if %ee2% lss 0 goto fightee

    if %ee2%==1 goto win6

    if %ee2%==2 goto lose6

    if %ee2%==3 goto win6

    if %ee2%==4 goto win6

    if %ee2%==5 goto win6

    if %ee2%==6 goto win6

    if %ee2%==7 goto lose6

    if %ee2%==8 goto lose6

    if %ee2%==9 goto lose6

    if %ee2%==10 goto lose6

    :win6

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :lose6

    echo You lost the fight

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :run

    echo You are safe.

    timeout /t 7 >nul

    goto starter

    :ff

    echo Minotaur[s] 6 out of 10 chance of losing.

    echo 1] Fight them

    echo 2] Run away (100% safe)

    set /p cc1=

    if %ff1%==1 goto fightff

    if %ff1%==2 goto run

    :fightff

    set /p ff2 = %random%

    if %ff2% gtr 10 goto fightff

    if %ff2% lss 0 goto fightff

    if %ff2%==1 goto win4

    if %ff2%==2 goto lose4

    if %ff2%==3 goto win4

    if %ff2%==4 goto win4

    if %ff2%==5 goto win4

    if %ff2%==6 goto lose4

    if %ff2%==7 goto lose4

    if %ff2%==8 goto lose4

    if %ff2%==9 goto lose4

    if %ff2%==10 goto lose4

    :win4

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :run

    echo You are safe.

    timeout /t 7 >nul

    goto starter

    :lose4

    echo You lost the fight

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :gg

    echo Giant[s] 7 out of 10 chance of losing.

    echo 1] Fight them

    echo 2] Run away (100% safe)

    set /p gg1=

    if %gg1%==1 goto fightgg

    if %gg1%==2 goto run

    :fightgg

    set /p gg2 = %random%

    if %gg2% gtr 10 goto fightgg

    if %gg2% lss 0 goto fightgg

    if %gg2%==1 goto win1

    if %gg2%==2 goto lose1

    if %gg2%==3 goto win1

    if %gg2%==4 goto win1

    if %gg2%==5 goto lose1

    if %gg2%==6 goto lose1

    if %gg2%==7 goto lose1

    if %gg2%==8 goto lose1

    if %gg2%==9 goto lose1

    if %gg2%==10 goto lose1

    :run

    echo You are safe.

    timeout /t 7 >nul

    goto starter

    :win1

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :lose1

    echo You lost the fight

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :hh

    echo Titan[s] 8 out of 10 chance of losing.

    echo 1] Fight them

    echo 2] Run away (100% safe)

    set /p hh1=

    if %hh1%==1 goto fighthh

    if %hh1%==2 goto run

    :fighthh

    set /p hh2 = %random%

    if %hh2% gtr 10 goto fighthh

    if %hh2% lss 0 goto fighthh

    if %hh2%==1 goto lose2

    if %hh2%==2 goto lose2

    if %hh2%==3 goto lose2

    if %hh2%==4 goto lose2

    if %hh2%==5 goto lose2

    if %hh2%==6 goto win2

    if %hh2%==7 goto win2

    if %hh2%==8 goto lose2

    if %hh2%==9 goto lose2

    if %hh2%==10 goto lose2

    :run

    echo You are safe.

    timeout /t 7 >nul

    goto starter

    :win2

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    echo

    echo

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :lose2

    echo You lost the fight

    echo

    echo

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :ii

    echo God[s] 9 out of 10 chance of losing.

    echo 1] Fight them

    echo 2] Run away (100% safe)

    set /p ii1=

    if %ii1%==1 goto fightii

    if %ii1%==2 goto run

    :fightii

    set /p ii2 = %random%

    if %ii2% gtr 10 goto fightii

    if %ii2% lss 0 goto fightii

    if %ii2%==1 goto lose3

    if %ii2%==2 goto lose3

    if %ii2%==3 goto lose3

    if %ii2%==4 goto lose3

    if %ii2%==5 goto lose3

    if %ii2%==6 goto win3

    if %ii2%==7 goto lose3

    if %ii2%==8 goto lose3

    if %ii2%==9 goto lose3

    if %ii2%==10 goto lose3

    :win3

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    echo

    echo

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :lose3

    echo You lost the fight

    echo

    echo

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :run

    echo You are safe.

    timeout /t 7 >nul

    goto starter

    2 replies
    0
    None
    KeratoMandheer

    Reply 5 weeks ago

    I fixed it now copy and paste it sharp.

    @echo off

    cls

    :Menu

    cls

    Title The random boring encounter game

    color 0a

    echo The Random Boring Encounter Game

    echo

    echo 1) Start

    echo 2) Instructions

    echo 3) Exit

    set /p choice=

    if '%choice%' =='1' goto start
    if '%choice%' =='2' goto instructions
    if '%choice%' =='3' goto exit

    :exit

    cls

    echo Thanks for playing.

    pause

    exit

    :instructions

    cls

    echo There is a completely random chance of winning or losing.But there is a chance

    echo written next to the type of the troop.Like-

    echo Farmer[s] 1 out of 10 chance of losing.

    echo There are 9 levels of monsters.

    echo 1)Continue

    set /p Gobackinfo=

    if %Gobackinfo% equ 1 goto Menu

    :start

    echo Picking fights.

    cls

    set /a points=0

    set /a num=%random%

    if %num% gtr 9 goto starter

    if %num% lss 1 goto starter

    if %num%==1 goto aa

    if %num%==2 goto bb

    if %num%==3 goto cc

    if %num%==4 goto dd

    if %num%==5 goto ee

    if %num%==6 goto ff

    if %num%==7 goto gg

    if %num%==8 goto hh

    if %num%==9 goto ii

    :aa

    echo Farmer[s] 1 out of 10 chance of losing.

    echo 1] Fight them

    echo 2] Run away (100% safe)

    set /p aa1=

    if %aa1%==1 goto fightaa

    if %aa1%==2 goto run

    :fightaa

    cls

    set /p aa2 = %random%

    if %aa1% gtr 10 goto fightaa

    if %aa1% lss 0 goto fightaa

    if %aa1%==1 goto win5

    if %aa1%==2 goto lose5

    if %aa1%==3 goto win5

    if %aa1%==4 goto win5

    if %aa1%==5 goto win5

    if %aa1%==6 goto win5

    if %aa1%==7 goto win5

    if %aa1%==8 goto win5

    if %aa1%==9 goto win5

    if %aa1%==10 goto win5

    :win5

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :lose5

    echo Loading Results.....

    timeout /t 7 >nul

    echo You lost the fight

    echo Score=%points%

    :bb

    echo Hunter[s] 2 out of 10 chance of losing.

    echo 1] Fight them

    echo 2] Run away (100% safe)

    set /p bb1=

    if %bb1%==1 goto fightbb

    if %bb1%==2 goto run

    :fightbb

    cls

    set /p bb2 = %random%

    if %bb2% gtr 10 goto fightbb

    if %bb2% lss 0 goto fightbb

    if %bb2%==1 goto win9

    if %bb2%==2 goto lose9

    if %bb2%==3 goto win9

    if %bb2%==4 goto win9

    if %bb2%==5 goto win9

    if %bb2%==6 goto win9

    if %bb2%==7 goto win9

    if %bb2%==8 goto win9

    if %bb2%==9 goto lose9

    if %bb2%==10 goto win9

    :win9

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    echo

    echo

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :lose9

    echo You lost the fight

    echo

    echo

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :cc

    echo Soldier[s] 3 out of 10 chance of losing.

    echo 1] Fight them

    echo 2] Run away (100% safe)

    set /p cc1=

    if %cc1%==1 goto fightcc

    if %cc1%==2 goto run

    :fightcc

    cls

    set /p cc2 = %random%

    if %cc2% gtr 10 goto fightcc

    if %cc2% lss 0 goto fightcc

    if %cc2%==1 goto win8

    if %cc2%==2 goto lose8

    if %cc2%==3 goto win8

    if %cc2%==4 goto win8

    if %cc2%==5 goto win8

    if %cc2%==6 goto win8

    if %cc2%==7 goto win8

    if %cc2%==8 goto win8

    if %cc2%==9 goto lose8

    if %cc2%==10 goto lose8

    :win8

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :lose8

    echo You lost the fight

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :dd

    echo horseman[s] 4 out of 10 chance of losing.

    echo 1] Fight them

    echo 2] Run away (100% safe)

    set /p dd1=

    if %dd1%==1 goto fightdd

    if %dd1%==2 goto run

    :fightdd

    cls

    set /p dd2 = %random%

    if %dd2% gtr 10 goto fightdd

    if %dd2% lss 0 goto fightdd

    if %dd2%==1 goto win7

    if %dd2%==2 goto lose7

    if %dd2%==3 goto win7

    if %dd2%==4 goto win7

    if %dd2%==5 goto win7

    if %dd2%==6 goto win7

    if %dd2%==7 goto win7

    if %dd2%==8 goto lose7

    if %dd2%==9 goto lose7

    if %dd2%==10 goto lose7

    :win7

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :lose7

    echo You lost the fight

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :ee

    echo King 5 out of 10 chance of losing.

    echo 1] Fight him

    echo 2] Run away (100% safe)

    set /p ee1=

    if %ee1%==1 goto fightee

    if %ee1%==2 goto run

    :fightee

    cls

    set /p ee2 = %random%

    if %ee2% gtr 10 goto fightee

    if %ee2% lss 0 goto fightee

    if %ee2%==1 goto win6

    if %ee2%==2 goto lose6

    if %ee2%==3 goto win6

    if %ee2%==4 goto win6

    if %ee2%==5 goto win6

    if %ee2%==6 goto win6

    if %ee2%==7 goto lose6

    if %ee2%==8 goto lose6

    if %ee2%==9 goto lose6

    if %ee2%==10 goto lose6

    :win6

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :lose6

    echo You lost the fight

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :run

    echo You are safe.

    timeout /t 7 >nul

    goto starter

    :ff

    echo Minotaur[s] 6 out of 10 chance of losing.

    echo 1] Fight them

    echo 2] Run away (100% safe)

    set /p cc1=

    if %ff1%==1 goto fightff

    if %ff1%==2 goto run

    :fightff

    set /p ff2 = %random%

    if %ff2% gtr 10 goto fightff

    if %ff2% lss 0 goto fightff

    if %ff2%==1 goto win4

    if %ff2%==2 goto lose4

    if %ff2%==3 goto win4

    if %ff2%==4 goto win4

    if %ff2%==5 goto win4

    if %ff2%==6 goto lose4

    if %ff2%==7 goto lose4

    if %ff2%==8 goto lose4

    if %ff2%==9 goto lose4

    if %ff2%==10 goto lose4

    :win4

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :run

    echo You are safe.

    timeout /t 7 >nul

    goto starter

    :lose4

    echo You lost the fight

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :gg

    echo Giant[s] 7 out of 10 chance of losing.

    echo 1] Fight them

    echo 2] Run away (100% safe)

    set /p gg1=

    if %gg1%==1 goto fightgg

    if %gg1%==2 goto run

    :fightgg

    set /p gg2 = %random%

    if %gg2% gtr 10 goto fightgg

    if %gg2% lss 0 goto fightgg

    if %gg2%==1 goto win1

    if %gg2%==2 goto lose1

    if %gg2%==3 goto win1

    if %gg2%==4 goto win1

    if %gg2%==5 goto lose1

    if %gg2%==6 goto lose1

    if %gg2%==7 goto lose1

    if %gg2%==8 goto lose1

    if %gg2%==9 goto lose1

    if %gg2%==10 goto lose1

    :run

    echo You are safe.

    timeout /t 7 >nul

    goto starter

    :win1

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :lose1

    echo You lost the fight

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :hh

    echo Titan[s] 8 out of 10 chance of losing.

    echo 1] Fight them

    echo 2] Run away (100% safe)

    set /p hh1=

    if %hh1%==1 goto fighthh

    if %hh1%==2 goto run

    :fighthh

    set /p hh2 = %random%

    if %hh2% gtr 10 goto fighthh

    if %hh2% lss 0 goto fighthh

    if %hh2%==1 goto lose2

    if %hh2%==2 goto lose2

    if %hh2%==3 goto lose2

    if %hh2%==4 goto lose2

    if %hh2%==5 goto lose2

    if %hh2%==6 goto win2

    if %hh2%==7 goto win2

    if %hh2%==8 goto lose2

    if %hh2%==9 goto lose2

    if %hh2%==10 goto lose2

    :run

    echo You are safe.

    timeout /t 7 >nul

    goto starter

    :win2

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    echo

    echo

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :lose2

    echo You lost the fight

    echo

    echo

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :ii

    echo God[s] 9 out of 10 chance of losing.

    echo 1] Fight them

    echo 2] Run away (100% safe)

    set /p ii1=

    if %ii1%==1 goto fightii

    if %ii1%==2 goto run

    :fightii

    set /p ii2 = %random%

    if %ii2% gtr 10 goto fightii

    if %ii2% lss 0 goto fightii

    if %ii2%==1 goto lose3

    if %ii2%==2 goto lose3

    if %ii2%==3 goto lose3

    if %ii2%==4 goto lose3

    if %ii2%==5 goto lose3

    if %ii2%==6 goto win3

    if %ii2%==7 goto lose3

    if %ii2%==8 goto lose3

    if %ii2%==9 goto lose3

    if %ii2%==10 goto lose3

    :win3

    echo Loading Results.....

    timeout /t 7 >nul

    cls

    echo You Won!!!!!!

    echo

    echo

    set /a points=1+%points%

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :lose3

    echo You lost the fight

    echo

    echo

    echo Score=%points%

    timeout /t 7 >nul

    goto starter

    :run

    echo You are safe.

    timeout /t 7 >nul

    goto starter

    0
    None
    Prof. PickleMandheer

    Reply 4 years ago on Introduction

    Your problem is your "set" syntax. You are including a space before the equals sign. Ex: set var = value

    This would set the variable "var " as " value", including the spaces. While referencing them, you, however, do not include a space. There is two ways to fix this:

    1. Add proper spacing to the variable's names.

    2. Remove the space before the equals sign when setting the variables values.

    0
    None
    budgieboy1234

    Question 2 months ago

    When you press "S" to go down, instead, it goes diagonally (down, then left). Is there any way to prevent this?

    0
    None
    decodedbunny

    3 months ago

    This code is broken ...

    i've been working on my project for weeks i know that the problem is in this part of my code

    please help!!!

    @echo off

    Title Project T.B.R.

    :setup

    set pos=00

    set corn1=É

    set hborder=Í

    set corn2=»

    set vborder=º

    set corn3=¼

    set corn4=È

    :clear

    set t=%t%+1

    set 1=#

    set 2=#

    set 3=#

    set 10=#

    set 20=#

    set 30=#

    set 9=#

    set 8=#

    set 7=#

    set 19=#

    set 18=#

    set 17=#

    set 29=#

    set 28=#

    set 27=#

    set 11=#

    set 12=#

    set 13=#

    set 21=#

    set 22=#

    set 23=#

    set 31=#

    set 32=#

    set 33=#

    set 00=#

    set -1=#

    set -2=#

    set -3=#

    set -10=#

    set -20=#

    set -30=#

    set -9=#

    set -8=#

    set -7=#

    set -19=#

    set -18=#

    set -17=#

    set -29=#

    set -28=#

    set -27=#

    set -11=#

    set -12=#

    set -13=#

    set -21=#

    set -22=#

    set -23=#

    set -31=#

    set -32=#

    set -33=#

    if %t% equ 1 goto map

    goto setpos

    :map

    echo %corn1% %hborder% %hborder% %hborder% %hborder% %hborder% %corn2%

    echo º %-27% %-17% %-7% %1% %13% %23% %33% º

    echo º %-28% %-18% %-8% %2% %12% %22% %32% º

    echo º %-29% %-19% %-9% %3% %11% %21% %31% º

    echo º %-30% %-20% %-10% %00% %10% %20% %30% º

    echo º %-31% %-21% %-11% %-1% %9% %19% %29% º

    echo º %-32% %-22% %-12% %-2% %8% %18% %28% º

    echo º %-33% %-23% %-13% %-3% %7% %17% %27% º

    echo %corn4% %hborder% %hborder% %hborder% %hborder% %hborder% %corn3%

    set /p chosepos=

    If %chosepos% equ w set pos=%pos%+1

    If %chosepos% equ a set pos=%pos%-10

    If %chosepos% equ s set pos=%pos%-1

    If %chosepos% equ d set pos=%pos%+10

    goto clear

    :setpos

    if %pos% equ 1 set 1=#

    if %pos% equ 2 set 2=#

    if %pos% equ 3 set 3=#

    if %pos% equ 10 set 10=#

    if %pos% equ set 20=#

    if %pos% equ set 30=#

    if %pos% equ set 9=#

    if %pos% equ set 8=#

    if %pos% equ set 7=#

    if %pos% equ set 19=#

    if %pos% equ set 18=#

    if %pos% equ set 17=#

    if %pos% equ set 29=#

    if %pos% equ set 28=#

    if %pos% equ set 27=#

    if %pos% equ set 11=#

    if %pos% equ set 12=#

    if %pos% equ set 13=#

    if %pos% equ set 21=#

    if %pos% equ set 22=#

    if %pos% equ set 23=#

    if %pos% equ set 31=#

    if %pos% equ set 32=#

    if %pos% equ set 33=#

    if %pos% equ set 00=#

    if %pos% equ set -1=#

    if %pos% equ set -2=#

    if %pos% equ set -3=#

    if %pos% equ set -10=#

    if %pos% equ set -20=#

    if %pos% equ set -30=#

    if %pos% equ set -9=#

    if %pos% equ set -8=#

    if %pos% equ set -7=#

    if %pos% equ set -19=#

    if %pos% equ set -18=#

    if %pos% equ set -17=#

    if %pos% equ set -29=#

    if %pos% equ set -28=#

    if %pos% equ set -27=#

    if %pos% equ set -11=#

    if %pos% equ set -12=#

    if %pos% equ set -13=#

    if %pos% equ set -21=#

    if %pos% equ set -22=#

    if %pos% equ set -23=#

    if %pos% equ set -31=#

    if %pos% equ set -32=#

    if %pos% equ set -33=#

    goto map

    still not done...

    0
    None
    kunikyou613

    4 months ago on Step 1

    Hi Prof Pickle,

    there's a little bit of problem in your code, so i fixed it here's the improved one

    @setlocal enableextensions enabledelayedexpansion

    @echo off

    title movement

    color 0a

    set length=

    set height=a

    :controls

    cls

    echo Use WASD to move your character (X).

    echo.

    for %%a in ( %height% ) do echo.

    echo %length%X

    choice /c wasd /n

    if %errorlevel% equ 1 call:up

    if %errorlevel% equ 2 call:left

    if %errorlevel% equ 3 call:down

    if %errorlevel% equ 4 call:right

    :left

    set length=!length:~0,-1!

    goto controls

    :right

    set length=%length%

    goto controls

    :up

    set height=!height:~0,-2!

    goto controls

    :down

    set height=%height% a

    set length=%length%

    goto control

    0
    None
    AlexL2

    3 years ago on Introduction

    Hi Prof Pickle,

    I'm trying to make a simple scissors, paper, rock game. But the if %you%=1 %cpu%=1 part doesn't work. Can you help?

    @ECHO off
    :home
    color 09
    title Scissors, Paper, Rock!
    echo Welcome to Scissors Paper Rock made by Alex.
    echo.
    echo Enter your username:
    set /p user=
    if %user%==LeoL3o05 goto win
    :gamehome
    cls
    echo Welcome %user%!
    :level1
    echo Enter Your Choice:
    echo.
    echo 1: Scissors
    echo 2: Paper
    echo 3: Rock
    set /p you=
    if %you%==1 set you=scissors
    if %you%==2 set you=papers
    if %you%==3 set you+rocks
    set /a cpu=%random% %% 3+1
    if %cpu% EQU 1 set cpu=scissor
    if %cpu% EQU 2 set cpu=paper
    if %cpu% EQU 3 set cpu=rock
    pause
    :level1input
    if %you%=1 %cpu%=1 goto draw
    if %you%=1 %cpu%=2 goto win
    if %you%=1 %cpu%=3 goto lose
    if %you%=2 %cpu%=1 goto lose
    if %you%=2 %cpu%=2 goto draw
    if %you%=2 %cpu%=3 goto win
    if %you%=3 %cpu%=1 goto win
    if %you%=3 %cpu%=2 goto lose
    if %you%=3 %cpu%=3 goto draw
    pause
    :draw
    color 0e
    cls
    echo Aww... so close!
    echo Press any key to go back home.
    pause
    goto gamehome
    :lose
    color 04
    cls
    echo Sorry... the computer was overpowered.
    echo Press any key to go back home.
    pause
    goto gamehome
    :win
    color 0a
    cls
    echo Congrats! You have overpowered the computer!
    echo Press any key to go back home.
    pause
    goto gamehome

    4 replies
    0
    None
    AndeyVAlexL2

    Reply 1 year ago

    I made it better there should be no bugs and I added a score system and

    Don't change the title or it will break

    ::start copying here

    @echo off

    color 0a

    :: sets

    set chchch=0

    set score=

    set you=

    set check=

    goto cht

    :chts

    ::BEGINING

    :home

    if chchch=0 exit

    color 0a

    set title= Welcome to Rock , Papper , Scissors made by Andrey

    title %title%

    cls

    echo.

    echo Enter your username.

    set /p user=

    if %user%==LeoL3o05 goto win2

    :gamehome

    set check= 1

    cls

    echo Welcome %user%

    :gamemodes

    echo.

    echo choose your gamemode

    echo.

    echo Q ) quit

    echo 1 ) to easy

    echo 2 ) normal

    echo 3 ) hard

    echo 4 ) impossible

    echo 5 ) Build code

    choice /c 1234q5 /n

    if %errorlevel% == 1 goto to easy

    if %errorlevel% == 2 goto normal

    if %errorlevel% == 3 goto hard

    if %errorlevel% == 4 goto impossible

    if %errorlevel% == 5 goto exit

    if %errorlevel% == 6 goto code

    ::EXIT FEATURE

    :exit

    title are your sure you want to exit? (Y/N)

    cls

    echo.

    echo.

    echo.

    echo are you sure you want to exit? (Y/N)

    choice /c yn /n

    if %errorlevel% == 1 exit

    if %errorlevel% == 2 goto check

    :check

    if %check%==1 goto gamemodes

    :cht

    set chchch=1

    if %title%==Welcome to Rock , Papper , Scissors made by Andrey. goto chts

    set chchch=0

    exit

    ::mode

    :to easy

    color 0a

    set checkmode=1

    title to easy mode

    cls

    echo Enter your choice

    echo.

    echo 1: Scissors

    echo 2: Papper

    echo 3: Rock

    choice /c 123 /n

    if %errorlevel%== 1 set you=1

    if %errorlevel%== 2 set you=2

    if %errorlevel%== 3 set you=3

    set /a com=%random% %% 4+1

    if %com%==1 set com=1

    if %com%==2 set com=2

    if %com%==3 set com=3

    if %com%==4 set com=4

    echo.

    echo you: %you% computer: %com%

    timeout 1 > null

    goto easyinput

    :easyinput

    if %you%==1 if %com%==1 goto draw

    if %you%==1 if %com%==2 goto win

    if %you%==1 if %com%==3 goto lose

    if %you%==1 if %com%==4 goto win

    if %you%==2 if %com%==1 goto lose

    if %you%==2 if %com%==2 goto draw

    if %you%==2 if %com%==3 goto win

    if %you%==2 if %com%==4 goto win

    if %you%==3 if %com%==1 goto win

    if %you%==3 if %com%==2 goto lose

    if %you%==3 if %com%==3 goto draw

    if %you%==3 if %com%==4 goto win

    :normal

    color 0a

    set checkmode=2

    title normal mode

    cls

    echo Enter your choice

    echo.

    echo 1: Scissors

    echo 2: Papper

    echo 3: Rock

    choice /c 123 /n

    if %errorlevel%== 1 set you=1

    if %errorlevel%== 2 set you=2

    if %errorlevel%== 3 set you=3

    set /a com=%random% %% 3+1

    if %com%==1 set com=1

    if %com%==2 set com=2

    if %com%==3 set com=3

    echo.

    echo you: %you% computer: %com%

    timeout 1 > null

    goto easyinput

    :easyinput

    if %you%==1 if %com%==1 goto draw

    if %you%==1 if %com%==2 goto win

    if %you%==1 if %com%==3 goto lose

    if %you%==2 if %com%==1 goto lose

    if %you%==2 if %com%==2 goto draw

    if %you%==2 if %com%==3 goto win

    if %you%==3 if %com%==1 goto win

    if %you%==3 if %com%==2 goto lose

    if %you%==3 if %com%==3 goto draw

    :hard

    color 0a

    set checkmode=3

    title hard mode

    cls

    echo Enter your choice

    echo.

    echo 1: Scissors

    echo 2: Papper

    echo 3: Rock

    choice /c 123 /n

    if %errorlevel%== 1 set you=1

    if %errorlevel%== 2 set you=2

    if %errorlevel%== 3 set you=3

    set /a com=%random% %% 4+1

    if %com%==1 set com=1

    if %com%==2 set com=2

    if %com%==3 set com=3

    if %com%==4 set com=4

    echo.

    echo you: %you% computer: %com%

    timeout 1 > null

    goto easyinput

    :easyinput

    if %you%==1 if %com%==1 goto draw

    if %you%==1 if %com%==2 goto win

    if %you%==1 if %com%==3 goto lose

    if %you%==1 if %com%==4 goto lose

    if %you%==2 if %com%==1 goto lose

    if %you%==2 if %com%==2 goto draw

    if %you%==2 if %com%==3 goto win

    if %you%==2 if %com%==4 goto lose

    if %you%==3 if %com%==1 goto win

    if %you%==3 if %com%==2 goto lose

    if %you%==3 if %com%==3 goto draw

    if %you%==3 if %com%==4 goto lose

    :impossible

    color 0a

    set checkmode=4

    title impossible mode

    cls

    echo Enter your choice

    echo.

    echo 1: Scissors

    echo 2: Papper

    echo 3: Rock

    choice /c 123 /n

    if %errorlevel%== 1 set you=1

    if %errorlevel%== 2 set you=2

    if %errorlevel%== 3 set you=3

    set /a com=%random% %% 2+1

    if %com%==1 set com=1

    if %com%==2 set com=2

    if %com%==3 set com=3

    if %com%==4 set com=4

    echo.

    echo you: %you% computer: %com%

    timeout 1 > null

    goto easyinput

    :easyinput

    if %you%==1 if %com%==1 goto draw

    if %you%==1 if %com%==2 goto lose

    if %you%==2 if %com%==1 goto lose

    if %you%==2 if %com%==2 goto draw

    if %you%==3 if %com%==1 goto win

    if %you%==3 if %com%==2 goto lose

    :draw

    color 0e

    title draw

    cls

    echo.

    echo draw no body wins

    echo.

    echo your score: %score%

    timeout 2 > null

    if %checkmode%==1 goto to easy

    if %checkmode%==2 goto normal

    if %checkmode%==3 goto hard

    if %checkmode%==4 goto impossible

    :win

    color 0a

    set score=%score% +1

    title win

    cls

    echo.

    echo you beat the computer !!

    echo.

    echo your score: %score%

    timeout 2 > null

    if %checkmode%==1 goto to easy

    if %checkmode%==2 goto normal

    if %checkmode%==3 goto hard

    if %checkmode%==4 goto impossible

    :lose

    color 04

    set score=%score% -1

    title lose

    cls

    echo.

    echo the computer beat you. you loose

    echo.

    echo your score: %score%

    timeout 2 > null

    if %checkmode%==1 goto to easy

    if %checkmode%==2 goto normal

    if %checkmode%==3 goto hard

    if %checkmode%==4 goto impossible

    :win2

    title legendary

    cls

    echo.

    echo you have won

    echo you are %user%

    set score=99999

    echo.

    echo your score=%score%

    timeout 6 > null

    goto home

    :code

    title build code

    cls

    echo code options

    echo.

    echo 1) username code

    echo 2) computer choose code

    echo 3) who win code

    echo 4) home

    choice /c 12345 /n

    if %errorlevel% == 1 echo set /p user=

    if %errorlevel% == 2 echo set /a com=%random% %% 3+1

    if %errorlevel% == 3 goto wwc

    if %errorlevel% == 5 goto home

    :wwc

    title who win code

    echo.

    echo.

    echo if %you%==1 if %com%==1 goto draw

    echo if %you%==1 if %com%==2 goto win

    echo if %you%==1 if %com%==3 goto lose

    echo if %you%==2 if %com%==1 goto lose

    echo if %you%==2 if %com%==2 goto draw

    echo if %you%==2 if %com%==3 goto win

    echo if %you%==3 if %com%==1 goto win

    echo if %you%==3 if %com%==2 goto lose

    echo if %you%==3 if %com%==3 goto draw

    echo.

    echo.

    goto code

    0
    None
    GameM4AlexL2

    Reply 1 year ago

    I Fixed It:

    @ECHO off
    :home
    color 09
    title Scissors, Paper, Rock!
    echo Welcome to Scissors Paper Rock made by Alex.
    echo.
    echo Enter your username:
    set /p user=
    if %user%==LeoL3o05 goto win
    :gamehome
    cls
    echo Welcome %user%!
    :level1
    echo Enter Your Choice:
    echo.
    echo 1: Scissors
    echo 2: Paper
    echo 3: Rock
    set /p you=
    if %you%==1 set you=1
    if %you%==2 set you=2
    if %you%==3 set you=3
    set /a cpu=%random% %% 3+1
    if %cpu% EQU 1 set cpu=1
    if %cpu% EQU 2 set cpu=2
    if %cpu% EQU 3 set cpu=3
    goto level1input
    :level1input
    if %you%==1 if %cpu%==1 goto draw
    if %you%==1 if %cpu%==2 goto win
    if %you%==1 if %cpu%==3 goto lose
    if %you%==2 if %cpu%==1 goto lose
    if %you%==2 if %cpu%==2 goto draw
    if %you%==2 if %cpu%==3 goto win
    if %you%==3 if %cpu%==1 goto win
    if %you%==3 if %cpu%==2 goto lose
    if %you%==3 if %cpu%==3 goto draw
    pause>nul
    :draw
    color 0e
    cls
    echo Aww... so close!
    echo Press any key to go back home.
    pause>nul
    goto gamehome
    :lose
    color 04
    cls
    echo Sorry... the computer was overpowered.
    echo Press any key to go back home.
    pause>nul
    goto gamehome
    :win
    color 0a
    cls
    echo Congrats! You have overpowered the computer!
    echo Press any key to go back home.
    pause>nul
    goto gamehome

    0
    None
    MaddestManGameM4

    Reply 1 year ago

    if %you%==1 set you=1

    if %you%==2 set you=2

    if %you%==3 set you=3

    and

    if %cpu% EQU 1 set cpu=1
    if %cpu% EQU 2 set cpu=2
    if %cpu% EQU 3 set cpu=3

    Don't need to be in the code because they change nothing.

    If the cpu variable is equal to 1, it doesn't need to be changed to 1.

    0
    None
    MatthewW193

    1 year ago

    what does the ! do in " set length=!length:~0,-1! " ? and is it any different from " %*% " ?

    1 reply
    0
    None
    Poseidon3MatthewW193

    Reply 1 year ago

    I don't know why he used "!" there but I can explain what the difference is.

    For example:

    @echo off
    setlocal EnableDelayedExpansion

    set variable=1
    for /l %%a in (1,1,10) do (
    echo !variable!
    set /a variable=!variable! +1
    )

    In this code, the variable "variable" will count up to 10.
    If you change the "!" to "%", the output will be 10 "1" 's
    Test it yourself.
    Also, if you use this, don't forget to:
    setlocal enabledelayedexpansion.

    And you should take a look at this guy's channel:
    https://www.youtube.com/channel/UC8OGXKiBvNIZNKuSO...
    I learned alot from that guy.

    He also shows off helpful plugins to make things easier.
    I hope I helped

    0
    None
    JigyasuB

    2 years ago

    I have made a snake game with many different speeds. here are the codes :

    @echo off
    if "%~1" == "startGame" goto :game
    if "%~1" == "startController" goto :controller


    ::------------------------------------------------------------
    :: verify existence of CHOICE command
    :: set up a macro appropriately depending on available version

    set "choice="
    2>nul >nul choice /c:yn /t 0 /d y
    if errorlevel 1 if not errorlevel 2 set "choice=choice /cs"
    if not defined choice (
    2>nul >nul choice /c:yn /t:y,1
    if errorlevel 1 if not errorlevel 2 set "choice=choice /s"
    )
    if not defined choice (
    echo ERROR: This game requires the CHOICE command, but it is missing.
    echo Game aborted. :(
    echo(
    echo A 16 bit port of CHOICE.EXE from FREEDOS is available at
    echo http://winsupport.org/utilities/freedos-choice.ht...
    echo(
    echo A 32 bit version from ??? suitable for 64 bit machines is available at
    echo http://hp.vector.co.jp/authors/VA007219/dkclonesu...
    echo(
    exit /b
    )


    ::---------------------------------------------------------------------
    :: setup some global variables used by both the game and the controller

    set "keys=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
    set "keyFile=key.txt"
    set "cmdFile=cmd.txt"


    ::------------------------------------------
    :: launch the game and the controller

    copy nul "%keyFile%" >nul
    start "" /b "%~f0" startController 9^>^>%keyFile% 2^>nul ^>nul
    cmd /c "%~f0" startGame 9^<%keyFile% ^<nul
    echo(

    ::--------------------------------------------------------------------------------
    :: Upon exit, wait for the controller to close before deleting the temp input file

    :close
    2>nul (>>"%keyFile%" call )||goto :close
    del "%keyFile%"
    exit /b


    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    :game
    setlocal disableDelayedExpansion
    title %~nx0
    cls

    ::----------------------------
    :: user configurable options

    set "up=W"
    set "down=S"
    set "left=A"
    set "right=D"

    set "width=40" max=99
    set "height=25" max=99
    :: max playing field: (width-2)*(height-2) <= 1365

    ::----------------------------
    :: resize the console window

    set /a cols=width+1, lines=height+10, area=(width-2)*(height-2)
    if %area% gtr 1365 (
    echo ERROR: Playfield area too large
    >"%cmdFile%" (echo quit)
    exit
    )
    if %lines% lss 14 set lines=14
    if %cols% lss 46 set cols=46
    mode con: cols=%cols% lines=%lines%

    ::----------------------------
    :: define variables

    set "spinner1=-"
    set "spinner2=\"
    set "spinner3=|"
    set "spinner4=/"
    set "spinner= spinner1 spinner2 spinner3 spinner4 "

    set "space= "
    set "bound=#"
    set "food=+"
    set "head=@"
    set "body=O"
    set "death=X"
    set "playerSpace=%space%%food%"

    set "xDiff%up%=+0"
    set "xDiff%down%=+0"
    set "xDiff%left%=-1"
    set "xDiff%right%=+1"

    set "yDiff%up%=-1"
    set "yDiff%down%=+1"
    set "yDiff%left%=+0"
    set "yDiff%right%=+0"

    set "%up%Axis=Y"
    set "%down%Axis=Y"
    set "%left%Axis=X"
    set "%right%Axis=X"

    set "delay1=20"
    set "delay2=15"
    set "delay3=10"
    set "delay4=7"
    set "delay5=5"
    set "delay6=3"
    set "delay0=0"

    set "desc1=Sluggard"
    set "desc2=Crawl"
    set "desc3=Slow"
    set "desc4=Normal"
    set "desc5=Fast"
    set "desc6=Insane"
    set "desc0=Unplayable"

    set "spinnerDelay=3"

    set /a "width-=1, height-=1"


    ::---------------------------
    :: define macros

    ::define a Line Feed (newline) string (normally only used as !LF!)
    set LF=^


    ::Above 2 blank lines are required - do not remove

    ::define a newline with line continuation
    set ^"\n=^^^%LF%%LF%^%LF%%LF%^^"

    :: setErr
    ::: Sets the ERRORLEVEL to 1
    set "setErr=(call)"

    :: clrErr
    ::: Sets the ERRORLEVEL to 0
    set "clrErr=(call )"


    :: getKey ValidKeys
    ::: Check for keypress. Only accept keys listed in ValidKeys
    ::: Return result in Key variable. Key is undefined if no valid keypress.
    set getKey=%\n%
    for %%# in (1 2) do if %%#==2 (for /f "eol= delims= " %%1 in ("!args!") do (%\n%
    set "validKeys=%%1"%\n%
    set "key="%\n%
    ^<^&9 set /p "key="%\n%
    if defined key if "!key!" neq ":" (%\n%
    set /a key-=1%\n%
    for %%K in (!key!) do set "key=!keys:~%%K,1!"%\n%
    )%\n%
    for %%K in (!key!) do if "!validKeys:%%K=!" equ "!validKeys!" set "key="%\n%
    )) else set args=


    :: draw
    ::: draws the board
    set draw=%\n%
    cls%\n%
    for /l %%Y in (0,1,%height%) do echo(!line%%Y!%\n%
    echo Speed=!Difficulty!%\n%
    echo Score=!score!


    :: test X Y ValueListVar
    ::: tests if value at coordinates X,Y is within contents of ValueListVar
    set test=%\n%
    for %%# in (1 2) do if %%#==2 (for /f "tokens=1-3" %%1 in ("!args!") do (%\n%
    for %%A in ("!line%%2:~%%1,1!") do if "!%%3:%%~A=!" neq "!%%3!" %clrErr% else %setErr%%\n%
    )) else set args=


    :: plot X Y ValueVar
    ::: places contents of ValueVar at coordinates X,Y
    set plot=%\n%
    for %%# in (1 2) do if %%#==2 (for /f "tokens=1-3" %%1 in ("!args!") do (%\n%
    set "part2=!line%%2:~%%1!"%\n%
    set "line%%2=!line%%2:~0,%%1!!%%3!!part2:~1!"%\n%
    )) else set args=


    ::--------------------------------------
    :: start the game
    setlocal enableDelayedExpansion
    call :initialize


    ::--------------------------------------
    :: main loop (infinite loop)
    for /l %%. in (1 0 1) do (

    %=== compute time since last move ===%
    for /f "tokens=1-4 delims=:.," %%a in ("!time: =0!") do set /a "t2=(((1%%a*60)+1%%b)*60+1%%c)*100+1%%d-36610100, tDiff=t2-t1"
    if !tDiff! lss 0 set /a tDiff+=24*60*60*100

    if !tDiff! geq !delay! (
    %=== delay has expired, so time for movement ===%

    %=== establish direction ===%
    %getKey% ASDW
    for %%K in (!key!) do if "!%%KAxis!" neq "!axis!" (
    set /a "xDiff=xDiff%%K, yDiff=yDiff%%K"
    set "axis=!%%KAxis!"
    )

    %=== erase the tail ===%
    set "TX=!snakeX:~-2!"
    set "TY=!snakeY:~-2!"
    set "snakeX=!snakeX:~0,-2!"
    set "snakeY=!snakeY:~0,-2!"
    %plot% !TX! !TY! space

    %=== compute new head location and attempt to move ===%
    set /a "X=PX+xDiff, Y=PY+yDiff"
    set "X= !X!"
    set "Y= !Y!"
    set "X=!X:~-2!"
    set "Y=!Y:~-2!"
    (%test% !X! !Y! playerSpace) && (

    %=== move successful ===%

    %=== remove the new head location from the empty list ===%
    for %%X in ("!X!") do for %%Y in ("!Y!") do set "empty=!empty:#%%~X %%~Y=!"

    (%test% !X! !Y! food) && (
    %=== moving to food - eat it ===%

    %=== restore the tail ===%
    %plot% !TX! !TY! body
    set "snakeX=!snakeX!!TX!"
    set "snakeY=!snakeY!!TY!"

    %=== increment score and locate and draw new food ===%
    set /a "score+=1, F=(!random!%%(emptyCnt-=1))*6+1"
    for %%F in (!F!) do (%plot% !empty:~%%F,5! food)

    ) || (
    %=== moving to empty space ===%

    %=== add the former tail position to the empty list ===%
    set "empty=!empty!#!TX! !TY!"
    )

    %=== draw the new head ===%
    if defined snakeX (%plot% !PX! !PY! body)
    %plot% !X! !Y! head

    %=== Add the new head position to the snake strings ===%
    set "snakeX=!X!!snakeX!"
    set "snakeY=!Y!!snakeY!"
    set "PX=!X!"
    set "PY=!Y!"

    %draw%

    ) || (

    %=== failed move - game over ===%
    %plot% !TX! !TY! body
    call :spinner !PX! !PY! death
    %draw%
    echo(
    call :ask "Would you like to play again? (Y/N)" YN
    if /i "!key!" equ "N" (
    >"%cmdFile%" (echo quit)
    exit
    ) else (
    call :initialize
    )
    )

    set /a t1=t2
    )
    )

    :ask Prompt ValidKeys
    :: Prompt for a keypress. ValidKeys is a list of acceptable keys
    :: Wait until a valid key is pressed and return result in Key variable
    >"%cmdFile%" (echo prompt)
    <nul set /p "=%~1 "
    :purge
    (%getKey% :)
    if not defined key goto :purge
    :getResponse
    (%getKey% %2)
    if not defined key (
    >"%cmdFile%" (echo one)
    goto :getResponse
    )
    exit /b


    :spinner X Y ValueVar
    set /a d1=-1000000
    for /l %%N in (1 1 5) do for %%C in (%spinner%) do (
    call :spinnerDelay
    %plot% %1 %2 %%C
    %draw%
    )
    call :spinnerDelay
    (%plot% %1 %2 %3)
    exit /b

    :spinnerDelay
    for /f "tokens=1-4 delims=:.," %%a in ("!time: =0!") do set /a "d2=(((1%%a*60)+1%%b)*60+1%%c)*100+1%%d-36610100, dDiff=d2-d1"
    if %dDiff% lss 0 set /a dDiff+=24*60*60*100
    if %dDiff% lss %spinnerDelay% goto :spinnerDelay
    set /a d1=d2
    exit /b


    ::-------------------------------------
    :initialize
    cls

    echo Speed Options:
    echo delay
    echo # Description (seconds)
    echo --- ----------- ---------
    echo 1 Sluggard 0.20
    echo 2 Crawl 0.15
    echo 3 Slow 0.10
    echo 4 Normal 0.07
    echo 5 Fast 0.05
    echo 6 Insane 0.03
    echo 0 Unplayable none
    echo(
    call :ask "Pick a speed (1-6, 0):" 1234560
    set "difficulty=!desc%key%!"
    set "delay=!delay%key%!"
    echo %key% - %difficulty%
    echo(
    <nul set /p "=Initializing."
    set "axis=X"
    set "xDiff=+1"
    set "yDiff=+0"
    set "empty="
    set /a "PX=1, PY=height/2, FX=width/2+1, FY=PY, score=0, emptyCnt=0, t1=-1000000"
    set "snakeX= %PX%"
    set "snakeY= %PY%"
    set "snakeX=%snakeX:~-2%"
    set "snakeY=%snakeY:~-2%"
    for /l %%Y in (0 1 %height%) do (
    <nul set /p "=."
    set "line%%Y="
    for /l %%X in (0,1,%width%) do (
    set "cell="
    if %%Y equ 0 set "cell=%bound%"
    if %%Y equ %height% set "cell=%bound%"
    if %%X equ 0 set "cell=%bound%"
    if %%X equ %width% set "cell=%bound%"
    if %%X equ %PX% if %%Y equ %PY% set "cell=%head%"
    if not defined cell (
    set "cell=%space%"
    set "eX= %%X"
    set "eY= %%Y"
    set "empty=!empty!#!eX:~-2! !eY:~-2!"
    set /a emptyCnt+=1
    )
    if %%X equ %FX% if %%Y equ %FY% set "cell=%food%"
    set "line%%Y=!line%%Y!!cell!"
    )
    )
    (%draw%)
    echo(
    echo Movement keys: %up%=up %down%=down %left%=left %right%=right
    echo Avoid running into yourself (%body%%body%%head%) or wall (%bound%)
    echo Eat food (%food%) to grow.
    echo(
    call :ask "Press any alpha-numeric key to start..." %keys%
    >"%cmdFile%" (echo go)
    exit /b


    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    :controller

    setlocal enableDelayedExpansion
    set "cmd=hold"
    set "key="
    for /l %%. in (1 0 1) do (
    if "!cmd!" neq "hold" (
    %choice% /n /c:!keys!
    set "key=!errorlevel!"
    )
    if exist "%cmdFile%" (
    <"%cmdFile%" set /p "cmd="
    del "%cmdFile%"
    )
    if "!cmd!" equ "quit" exit
    if defined key (
    if "!cmd!" equ "prompt" >&9 (echo :)
    >&9 (echo !key!)
    if "!cmd!" neq "go" set "cmd=hold"
    set "key="
    )

    copy these codes and save in notepad as a .bat file.

    enjoy the game
    )

    1 reply
    0
    None
    LiseyGaming.

    2 years ago

    I am working on a game called roseymon but it says there is an error there. I need help on this. Can someone tell me whats wrong? Here is the coding:

    @echo off

    :menu

    cls

    echo Welcome to Roseymon!

    pause

    echo Ready to play?

    echo 1) Story mode

    echo 2) Battle

    echo 3) Exit/Cancel

    set /p letter=

    if %letter% == 1 goto storymode

    if %letter% == 2 goto battle

    if %letter% == 3 goto exit

    goto menu

    :storymode

    cls

    echo Rose: Welcome fellow person! Do you want to start your adventure?

    pause

    echo Rose: That is great! What is your name?

    set /p name=

    echo Rose: Welcome %name%!

    echo Rose: Wanna choose your starter Roseymon?

    pause

    echo Rose: Okay! Choose one of theese Roseymons!

    echo 4) 4. Rosica (Plant)

    echo 5) 5. Rosidolf (Water)

    echo 6) 6. Rosifire (Fire)

    echo 7) Help: Say the number at the start of the Roseymon to choose it!

    set /p letter=

    if %letter% == 4 goto plantstarter

    :plantstarter

    echo Rose: Ah! Rosica! A well choice!

    pause

    echo Rose: Do you want to battle?

    pause

    echo Y to battle N to not battle

    if %letter% == n goto continue

    if %letter% == y goto battle

    battle:

    pause

    echo Rose: Okay! Here we go!

    Pause

    echo Rose sent out Rosman

    echo Roseman used water splash!

    Pause

    echo -1 HP

    echo You have 12 hp left!

    Pause

    echo What move do you want to use?

    echo 1) 1. Rose petals

    echo 2) 2. Leaf block

    echo 3) Help: Say the number at the start of the attack to choose it!

    if %letter% == 1 goto atk1

    if %letter% == 2 goto atk2

    atk1:

    pause

    echo Rose petals dealt 13 dmg!

    Pause

    echo It is super effective!

    Pause

    echo The Roseman got knocked out!

    Pause

    echo Your Rosica leveld up!

    echo It is now level 2!

    pause

    atk2:

    pause

    echo Leaf block blocked the opponents attack!

    Pause

    echo Roseman used swoop!

    echo It failed

    echo 1) 1. Rose petals

    echo 2) 2. Leaf block

    echo 3) Help: Say the number at the start of the attack to choose it!

    if %letter% == 1 goto atk1

    if %letter% == 2 goto atk2

    4 replies
    0
    None
    codesupremeLiseyGaming.

    Reply 1 year ago

    Dear Lindsay

    ur doing it wrong.

    so instead of

    set /p letter=

    if %letter% == 1 goto storymode

    if %letter% == 2 goto battle

    if %letter% == 3 goto exit

    do

    set /p letter=

    if %letter% equ 1 goto storymode

    if %letter% equ 2 goto battle

    if %letter% equ 3 gotogoto exit

    0
    None
    GawainDrake12LiseyGaming.

    Reply 1 year ago

    One other thing: you're putting the colon on the wrong sides of the menu name if that's what you're trying to get at, if not, and you're trying to make it a choice, try: set /p (name of command):

    0
    None
    GawainDrake12LiseyGaming.

    Reply 1 year ago

    You also only have one choice, that being Rosica, but I don't believe that that's under your control with the knowledge you possess now, I'm trying to figure that out myself

    keep us posted!