5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?