當前位置:編程學習大全網 - 源碼下載 - 求批處理遊戲!

求批處理遊戲!

數獨:

@echo off

Setlocal Enabledelayedexpansion

rem 核心代碼terse 遊戲moniuming

color 3e&title 數字九宮格遊戲

echo.&echo 歡迎使用本綠色免安裝版九宮格數字遊戲, 在進入遊戲前請詳細閱讀此說明,

echo.&echo 進入遊戲會出現以下的畫面,第壹行和第壹列分別為橫坐標和縱坐標,僅作參考,

echo.&echo 遊戲規則為: 用數字替換各個符號, 使每行和每列都出現 1~9 這 9 個數字,

echo.&echo 並且 9 個 3^*3 的區域裏也要包含 1~9 這 9 個數字. (左圖^=^=^>右圖)

echo.&echo 玩法: 比如下圖中要把 4 填在第 3 行第 1 列的位置,輸入 431 然後回車即可.

echo.&echo 請按任意鍵進入遊戲, 祝妳玩得愉快...... ^^_^^

echo.&echo 1 2 3 4 5 6 7 8 9

echo.

echo. 1 6 8 7 _ / 1 - + 2 6 8 7 4 9 1 5 3 2

echo. 2 9 3 - 5 8 _ / + 7 9 3 1 5 8 2 4 6 7

echo. 3 / 5 _ 3 + 7 1 8 - 4 5 2 3 6 7 1 8 9

echo. 4 / 6 4 - 1 + _ 9 8 5 6 4 2 1 3 7 9 8

echo. 5 2 9 8 7 5 + / _ - 2 9 8 7 5 6 3 1 4

echo. 6 7 - _ 9 4 + 2 5 / 7 1 3 9 4 8 2 5 6

echo. 7 _ 4 9 6 + 5 / - 1 3 4 9 6 7 5 8 2 1

echo. 8 - _ 5 8 / + 6 4 3 1 7 5 8 2 9 6 4 3

echo. 9 _ / 6 - 3 4 9 + 5 8 2 6 1 3 4 9 7 5

pause>nul&cls

set "cod= +-_/\#"&set "st= 1 2 3 4 5 6 7 8 9"&set "color_=12345689abcde"

set "kong= "

set "echo_=好 極 了, 完 全 正 確, 恭 喜 妳, 繼 續 努 力 喔 "

for /l %%a in (1 1 80) do (set "tui=!tui!")

:again

color 3e&set "input=4"

for /l %%a in (1 1 9) do (

for /l %%b in (1 1 9) do (set "_%%a%%b="&set "%%a%%b=")

)

echo.&echo 1~6為難度選擇,4為默認的難度

echo.&set /p input=請輸入:

cls

if %input% gtr 6 (echo.&echo 選擇錯誤&goto :again)

if %input% lss 1 (echo.&echo 選擇錯誤&goto :again)

for /l %%i in (1 1 9) do echo.

echo 正在生成遊戲,請稍候...

:st

for /l %%i in (1 1 9) do (set "mor%%i="&set "%%i=")

for /l %%i in (1 1 9) do call:lp %%i

for /l %%a in (1 1 9) do (set "moniuming%%a=!mor%%a!")

:lp3

set /a "num1=%random%%%9+1"

if defined %num1% goto :lp3

set "%num1%=god"

for /f "tokens=%num1%" %%g in ("!mor%line%!") do (

set /a "num2+=1","_%line%%num1%=god"

call set "%line%%num1%=%%cod:~!num2!,1%%"

call call set "mor%line%=%%%%mor%line%:%%g=%%cod:~!num2!,1%%%%%%"

)

if %dfc% lss %input% (set /a "dfc+=1"&goto :lp3)

for /l %%a in (1 1 9) do (set "%%a=")

set /a "num3+=1","num2=0"

if %num3% lss 9 (set /a "line+=1"&set "dfc=1"&goto :lp3)

cls&echo %st%&echo.

for /l %%a in (1 1 9) do (call echo %%a %%mor%%a%%)

:lp4

echo.&echo 請按照"替換數字,行,列"(不包括引號)的順序連續輸入數字

echo 或者ans顯示答案(默認),new開啟新遊戲,out退出本遊戲

:lp5

color 3e&echo.&set "ent=ans"&set /p ent=請輸入:

if /i "%ent%"=="out" (

cls

for /l %%a in (1 1 9) do echo.

echo 謝謝使用本遊戲,再見......

ping -n 4 127.1>nul&exit

)

if /i "%ent%"=="ans" (

for /l %%l in (1 1 9) do (echo !moniuming%%l!)

goto :again

)

if /i "%ent%"=="new" cls&goto :again

set "ma=%ent:~,1%"&set "mb=%ent:~1,1%"&set "mc=%ent:~2,1%"

if not defined _%mb%%mc% (

color fc&echo.&echo 第%mb%行第%mc%列為非替換位置

ping -n 3 127.1>nul&goto :lp5

)

for %%a in (!mor%mb%!) do (

if "%%a"=="%ma%" (

color fc&echo.&echo 第 %mb% 行已經存在 "%ma%"

ping -n 3 127.1>nul&goto :lp5

)

)

for /l %%a in (1 1 9) do (

if "%ma%"=="!%%a%mc%!" (

color fc&echo.&echo 第 %mc% 列已經存在 "%ma%"

ping -n 3 127.1>nul&goto :lp5

)

)

for /f "tokens=%mc%" %%a in ("!mor%mb%!") do (

set "mor%mb%=!mor%mb%:%%a=%ma%!"&set "%mb%%mc%=%ma%"

)

cls

echo %st%&echo.

for /l %%a in (1 1 9) do (echo %%a !mor%%a!)

for /l %%a in (1 1 9) do (if "!mor%%a!"=="!moniuming%%a!" (set /a right+=1))

if "%right%"=="9" (

call :lp6

set "right=0"&goto :again

)

set "right=0"

goto :lp4

:lp

for /l %%i in (1 1 9) do set ".!random!!random!!random!=%%i"

for /f "tokens=1,2 delims==" %%i in ('set .') do (set "str=%%j !str!"&set "%%i=")

for /l %%i in (1 1 9) do set "%1%%i="

set "var=%str%"&set/a lie=1,hx=1,hy=%1-1,lx=1,ly=3,a=%1%%3,dfc=1,line=1,num2=0,num3=0

if %1 geq 4 (

if %1 leq 6 (set/a hx=4) else (set hx=7)

)

:lp0

if %lie% geq 4 (

if %lie% leq 6 (set/a lx=4,ly=6) else (set/a lx=7,ly=9)

)

for %%a in (!var!) do (

for /l %%i in (1 1 %1) do (

if %%a equ !%%i%lie%! (set var=!var:%%a=!&goto lp0)

)

if %a% neq 1 (

for /l %%j in (%hx% 1 %hy%) do (

for /l %%k in (%lx% 1 %ly%) do (

if %%a equ !%%j%%k! set "var=!var:%%a=!"&goto lp0

)

)

)

set "%1!lie!=%%a"

if !lie! lss 9 (set/a lie+=1&set "str=!str:%%a=!"&set "var=!str!"&goto lp0)

)

set "str="&set "lie="

if "!%19!"=="" set/a ttl+=1&if !ttl! gtr 40 (set "ttl="&goto st) else goto lp

for /l %%i in (1 1 9) do (set "mor%1=!mor%1!!%1%%i! ")

set "ttl="&goto :eof

:lp6

echo.

for /l %%a in (1 1 40) do (

set "show=!echo_:~0,%%a!"

set /a "col1=!random!%%13","col2=!random!%%13"

if not "!col1!"=="!col2!" call color %%color_:~!col1!,1%%%%color_:~!col2!,1%%

set /p=!tui!!kong!!show!<nul

ping -n 1 127.1>nul

)

echo.

人鬼過河:

@echo off

title 人鬼過河

color e9

echo r代表人,g代表鬼。

echo 船只可以裝兩個人/鬼,或壹人壹鬼。

echo 任何壹邊鬼都不能比人多,

echo 否則人會被吃掉哦。

echo S重來,E退出。

echo.

:ready

set fx=A→B

set sidea=rrrggg

set sideb=

:start

echo =======now========

echo Side A:%sidea%

echo ------------------

echo.

echo River

echo.

echo Boat:%fx%

echo.

echo ------------------

echo Side B:%sideb%

echo.

:input

set /p boat=請輸入:

if /i "%boat%"=="s" goto ready

if /i "%boat%"=="e" exit

if "%boat%"=="" echo 沒人開船了。&&goto input

if not "%boat:~2,1%"=="" echo 不能裝那麽多。&&goto input

set bt1=%boat:~0,1%

set bt2=%boat:~1,1%

if /i not %bt1%==r if /i not %bt1%==g echo 妳輸錯了。&&goto input

if /i not "%bt2%"=="r" if /i not "%bt2%"=="g" if not "%bt2%"=="" echo 妳輸錯了。&&goto input

goto %fx%

:A→B

echo %sidea%|find /i "%bt1%">nul||echo Side A 沒有%bt1%。&&goto input

if not "%bt2%"=="" echo %sidea%|find /i "%bt2%">nul||echo Side A 沒有%bt2%。&&goto input

if "%bt1%"=="%bt2%" echo %sidea%|find /i "%boat%">nul||echo Side A 沒有兩個%bt1%。&&goto input

if /i %bt1%==r set sidea=%sidea:~1%&& set sideb=r%sideb%

if /i %bt1%==g set sidea=%sidea:~0,-1%&& set sideb=%sideb%g

if /i "%bt2%"=="r" set sidea=%sidea:~1%&& set sideb=r%sideb%

if /i "%bt2%"=="g" set sidea=%sidea:~0,-1%&& set sideb=%sideb%g

call :check

set fx=B→A

cls

goto start

:B→A

echo %sideb%aaa|find /i "%bt1%">nul||echo Side B 沒有%bt1%。&&goto input

if not "%bt2%"=="" echo %sideb%|find /i "%bt2%">nul||echo Side B 沒有%bt2%。&&goto input

if "%bt1%"=="%bt2%" echo %sideb%|find /i "%boat%">nul||echo Side B 沒有兩個%bt1%。&&goto input

if /i %bt1%==r set sideb=%sideb:~1%&& set sidea=r%sidea%

if /i %bt1%==g set sideb=%sideb:~0,-1%&& set sidea=%sidea%g

if /i "%bt2%"=="r" set sideb=%sideb:~1%&& set sidea=r%sidea%

if /i "%bt2%"=="g" set sideb=%sideb:~0,-1%&& set sidea=%sidea%g

call :check

set fx=A→B

cls

goto start

:check

if "%sideb%"=="rrrggg" cls&&echo You win!&&goto end

set ars=0

set ags=0

set brs=0

set bgs=0

if "%sidea:~0,1%"=="r" set /a ars+=1 >nul

if "%sidea:~0,1%"=="g" set /a ags+=1 >nul

if "%sidea:~1,1%"=="r" set /a ars+=1 >nul

if "%sidea:~1,1%"=="g" set /a ags+=1 >nul

if "%sidea:~2,1%"=="r" set /a ars+=1 >nul

if "%sidea:~2,1%"=="g" set /a ags+=1 >nul

if "%sidea:~3,1%"=="r" set /a ars+=1 >nul

if "%sidea:~3,1%"=="g" set /a ags+=1 >nul

if "%sidea:~4,1%"=="r" set /a ars+=1 >nul

if "%sidea:~4,1%"=="g" set /a ags+=1 >nul

if "%sidea:~5,1%"=="r" set /a ars+=1 >nul

if "%sidea:~5,1%"=="g" set /a ags+=1 >nul

if %ags% gtr %ars% if %ars% gtr 0 (

cls

echo Side A 有人被吃掉了。

goto end

)

if "%sideb:~0,1%"=="r" set /a brs+=1 >nul

if "%sideb:~0,1%"=="g" set /a bgs+=1 >nul

if "%sideb:~1,1%"=="r" set /a brs+=1 >nul

if "%sideb:~1,1%"=="g" set /a bgs+=1 >nul

if "%sideb:~2,1%"=="r" set /a brs+=1 >nul

if "%sideb:~2,1%"=="g" set /a bgs+=1 >nul

if "%sideb:~3,1%"=="r" set /a brs+=1 >nul

if "%sideb:~3,1%"=="g" set /a bgs+=1 >nul

if "%sideb:~4,1%"=="r" set /a brs+=1 >nul

if "%sideb:~4,1%"=="g" set /a bgs+=1 >nul

if %bgs% gtr %brs% if %brs% gtr 0 (

cls

echo Side B 有人被吃掉了。

goto end

)

goto :EOF

:end

set /p restart=再來?(Y,N)

if /i "%restart%"=="y" cls&&goto ready

猜數遊戲:

@echo off&color 1f&mode con cols=55 lines=30

setlocal enabledelayedexpansion

title 猜數字遊戲 by zw19750516

echo.&echo.

echo.&echo ***** 遊戲規則 *****

echo.&echo 程序會自動生成壹組四個互不相同的0-9內的整數,

echo.&echo 請妳根據猜測和判斷,每次輸入壹組四個互不相同

echo.&echo 0-9內的整數,中間請用空格格開,如:1 2 3 4,

echo.&echo 程序會將妳每次輸入的數組與其生成的數組進行比

echo.&echo 較,並將比較的結果輸出屏幕上以幫助妳進壹步的

echo.&echo 判斷,直到妳所輸入的數組與其生成的數組的數值

echo.&echo 和次序完全相同,或妳已用完了所有的猜測機會。

echo.&echo 如果妳已經看懂了規則,請按任意鍵開始本次遊戲。

set var=A&pause>nul

:begin

set /a a=%random%%%10

for %%a in (%var%) do if %%a equ %a% goto begin

set var=%var% %a%

if "%var:~8%" equ "" goto begin

set var=%var:~2%&set m=0

:again

set /a n=0,v=0,ws=0,s=0,t=10-m

if %t% equ 0 goto end

cls&echo.&echo 請註意妳總***只有10次機會,現在還剩下%t%次機會

if "%m%" neq "0" for /l %%i in (1,1,%m%) do echo.&echo !_%%i!

set codes=A

echo.&set /p code= 請在此輸入:

echo %code: =%|findstr "[^0-9]"&&goto wrong

for %%a in (%code%) do (

for %%i in (!codes!) do if %%i equ %%a goto wrong

set codes=!codes! %%a

set /a n+=1

)

if %n% neq 4 goto wrong

set codes=%codes:~2%

for %%i in (%codes%) do (

set str=%%i

if "!str:~1!" neq "" goto wrong

)

for %%a in (%var%) do (

set /a v+=1,x=0

for %%i in (%codes%) do (

set /a x+=1

if %%a equ %%i if !x! equ !v! (

set /a ws+=1,s+=1

) else (

set /a s+=1

)

)

)

set /a m+=1

if "%var%" equ "%codes%" goto suc

set _%m%= %codes%中數值正確的有%s%個,其中位置數值都正確的有%ws%個&goto again

:wrong

cls

echo.&echo 所輸入的非合法十進制整數,或數值不合要求,

echo.&echo 或有重復數,或輸入的數值個數不是4個。

ping /n 2 127.1>nul&goto again

:suc

if %m% equ 1 cls&echo.&echo 不會吧,1次就搞定了,妳是不是神仙下凡啊?&goto select

if %m% leq 3 cls&echo.&echo 妳真是聰明絕頂啊,只用%m%次就猜中了。&goto select

if %m% leq 5 cls&echo.&echo 看來妳還是很厲害,用了%m%次就猜中了。&goto select

if %m% leq 9 cls&echo.&echo 呵呵,猜了%m%次,勉強過關了。&goto select

if %m% equ 10 cls&echo.&echo 妳太精明了,硬是把機會給用完成功過關。

:select

ping /n 3 127.1>nul

cls&echo.&set select=&set /p select= 是否再來壹次(是就輸入y/Y,其它任意鍵退出):

if /i "%select%" equ "y" (goto begin) else (goto exit)

:end

cls&echo.&echo 對不起妳已經用完了所有的機會了。正確答案是%var%&goto select

:exit

ping /n 3 127.1>nul

還要請去論壇

或加QQ535470331

或HI我

  • 上一篇:怎樣讓android應用啟動gif動起來
  • 下一篇:Java源代碼BC
  • copyright 2024編程學習大全網