LoginSignup
5
5

More than 3 years have passed since last update.

バッチファイルで湯婆婆を実装してみる

Posted at

はじめに

バッチファイルで書いてみました。

元ネタ:Javaで湯婆婆を実装してみる

コード

バッチファイルは文字コードを Shift_JIS にして保存してください。

湯.bat(湯婆っち)
@echo off

setlocal enabledelayedexpansion
  :BOL
    echo.
    echo 湯婆っち:契約書だよ。そこに名前を書きな。

    set /p A=
    if "%A%" == "" call :die

    call :Q "湯婆っち:フン。「%A%」というのかい?" || goto :BOL

  call :length "%A%"
  set l=%ERRORLEVEL%
  set /a i="%RANDOM% %% %l% - 1"
  set s=!A:~%i%,1!

  echo.
  echo 湯婆っち:贅沢な名だねぇ。今からおまえの名前は「%s%」だ。いいかい、「%s%」だよ。分かったら返事をするんだ、「%s%」!
endlocal
goto :EOF

:die
setlocal
  call %~0
endlocal
goto :EOF

:length
setlocal
  set s=%~1

  if "%s%" == "" (
    exit /b 0
  )

  set i=0
  :BOL_length
    call set c=%%s:~%i%,1%%
    if "%c%" == "" goto EOL_length
    set /a i+=1
    goto BOL_length
  :EOL_length

  exit /b %i%
endlocal
goto :EOF

:Q
setlocal
  :BOL_Q
    echo.
    set /p A=%~1 ^(Y/n^) 
    if /i "%A%" == "Y" exit /b 0
    if /i "%A%" == "N" exit /b 1
  goto :BOL_Q
endlocal
goto :EOF

実行結果

念のため再入力とエラーも実装しています。

2020-11-07.png

おわりに

むかし夢中になった「どう書く.org」というウェブサイトを思いだしました。

いつになっても自分の好きな言語で書くのはたのしいものですね。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5