2013-05-28 97 views
-1

我幾乎完成了我的遊戲,並採用了「備用數據流」來將一些高分保存在ADS中。現在我試着用顏色選項來做同樣的事情,以便讓遊戲成爲您每次打開遊戲時所設置的相同配色方案,直到您想要更改它爲止。下面是我的工作代碼:批處理備用數據流

echo. 
echo Color Options - background/text 
echo ------------------ 
echo 0) Black 
echo 1) Blue 
echo 2) green 
echo 3) Aqua 
echo 4) Red 
echo 5) Purple 
echo 6) Yellow 
echo 7) White 
echo 8) Grey 
echo ------------------ 
set /p BcolorSetting=Background: 
set /p TcolorSetting=Text: 
echo %BcolorSetting%%TcolorSetting% >>"%~f0:colors" 
color <"%~f0:colors" 
pause 

如果你想看到它的整個事情...

@echo off 
REM Produced by Calder Hutchins 
REM This is a game 
title Memory Game 
:begin 
set point=0 
cls 
echo. 
echo Memeory Game 
echo ------------------ 
echo 1) Play 
echo 2) Instructions 
echo 3) High Scores 
echo 4) Options 
echo ------------------ 
set /p pick=^> 
if %pick%==1 goto one 
if %pick%==2 goto two 
if %pick%==3 goto three 
if %pick%==4 goto four 
if %pick%==99 goto test 
goto begin 
:one 
cls 
REM Determines the number 
if %point% LSS 6 set /a rand=%random% %% (100 - 1 + 1)+ 1 
if %point% LSS 12 if %point% GTR 5 set /a rand=%random% %% (500 - 100 + 1)+ 100 
if %point% LSS 18 if %point% GTR 11 set /a rand=%random% %% (1000 - 500 + 1)+ 500 
if %point% LSS 24 if %point% GTR 17 set /a rand=%random% %% (2000 - 1000 + 1)+ 1000 
if %point% LSS 30 if %point% GTR 23 set /a rand=%random% %% (9000 - 1500 + 1)+ 1500 
if %point% LSS 36 if %point% GTR 29 set /a rand=%random% %% (19000 - 5000 + 1)+ 5000 
if %point% LSS 42 if %point% GTR 35 set /a rand=%random% %% (32000 - 10000 + 1)+ 10000 
if %point% LSS 48 if %point% GTR 41 set /a rand=%random% %% (999 - 100 + 1)+ 100 
if %point% LSS 48 if %point% GTR 41 set /a randtwo=%random% %% (999 - 100 + 1)+ 100 
if %point% GTR 47 set /a rand=%random% %% (9999 - 1000 + 1)+ 1000 
if %point% GTR 47 set /a randtwo=%random% %% (9999 - 1000 + 1)+ 1000 
echo. 
REM Prints the number 
if %point% LSS 42 echo %rand% 
if %point% GTR 41 set rand=%rand%%randtwo% 
if %point% GTR 41 echo %rand% 
echo. 
ping localhost -n 3 >nul 
cls 
echo. 
echo. 
echo. 
set /p yourOption=Guess: 
REM Determines correct or wrong 
if %youroption%==%rand% set /a point=%point% +1 & goto one 
cls 
echo. 
echo You scored: %point% 
echo. 
set /p name=Type name: 
echo %name% - %point% >>"%~f0:scores" 
goto begin 
:two 
cls 
echo. 
echo The objective of the game is to get as many points as possible. To get points you must correctly retype the numbers that appear on the screen. The numbers show for a short period of time. As you get more points the numbers get longer! When you have lost you will be prompted to enter your name. You can view the highscores too! 
echo. 
pause 
goto begin 
:three 
cls 
echo. 
more<"%~f0:scores" | sort 
echo. 
pause 
goto begin 
:four 
cls 
echo. 
echo Settings/Options 
echo ------------------ 
echo 1) color 
echo ------------------ 
set /p pickSetting=^> 
if %pickSetting%==1 goto oneSetting 
goto four 
:oneSetting 
cls 
echo. 
echo Color Options - background/text 
echo ------------------ 
echo 0) Black 
echo 1) Blue 
echo 2) green 
echo 3) Aqua 
echo 4) Red 
echo 5) Purple 
echo 6) Yellow 
echo 7) White 
echo 8) Grey 
echo ------------------ 
set /p BcolorSetting=Background: 
set /p TcolorSetting=Text: 
echo %BcolorSetting%%TcolorSetting% >>"%~f0:colors" 
color <"%~f0:colors" 
pause 
goto begin 

感謝你提前傢伙!

回答

2

幸運的是FOR /F可以閱讀ADS:

for /f "usebackq" %%C in ("%~f0:colors") do COLOR %%C 
1

看來你將不得不CD到某個目錄。然後,寫入目錄中的文本文件。在開始時,請閱讀文本文件。 然後,覆蓋文本文件並在其中插入顏色。

如果您需要以任何應用程序中的設置開始,則始終需要保存文件。 寫作可以是這樣的:

echo %BcolorSetting%%TcolorSetting% >>"colorsetting.txt" 

和檢索的時候,做的最開始。開始之前。 它是這樣讀取的

set /p %~f0:colors= <colorsetting.txt 

假設你使用這些變量。我希望這有幫助。