-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMagic-Number-Card-2R0.bat
More file actions
82 lines (70 loc) · 1.84 KB
/
Magic-Number-Card-2R0.bat
File metadata and controls
82 lines (70 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
@echo off
title Magic Number Card 2.0
setlocal EnableDelayedExpansion
set "guessMaxNum=95"
rem Setup
if !guessMaxNum! GTR 3276 set "guessMaxNum=3276"
set /a maxNumbers=!guessMaxNum!/2
:instructions
cls
echo Think of a number from 1 to !guessMaxNum!
echo Let me guess your number...
echo=
pause
set "guessNumber=0"
set "guessCode="
set "cardNumber=1"
set "cardPower=1"
:nextCard
cls
title Magic Number Card 2.0 #!cardNumber!
set "cardDisplay="
for /l %%n in (0,1,!maxNumbers!) do (
set /a nextNumber= %%n / !cardPower! * !cardPower! + !cardPower! + %%n
if !nextNumber! GTR !guessMaxNum! goto displayCard
set "nextNumber= !nextNumber!"
set "cardDisplay=!cardDisplay!!nextNumber:~-5,5!"
)
:displayCard
set "userInput=?"
cls
echo !cardDisplay!
echo=
echo Is there your number?
set /p "userInput=Y/N? "
if /i "!userInput!" == "Y" (
set "guessCode=1!guessCode!"
) else if /i "!userInput!" == "N" (
set "guessCode=0!guessCode!"
) else goto displayCard
set /a guessNumber+=!cardPower! * !guessCode:~0,1!
set /a cardNumber+=1
set /a cardPower*=2
if not !cardPower! GTR !guessMaxNum! goto nextCard
title Magic Number Card 2.0
for /l %%n in (0,1,11) do if "!guessCode:~0,1!" == "0" set "guessCode=!guessCode:~1!"
if not defined guessCode set "guessCode=0"
if "!guessNumber!" == "0" goto guessError
if !guessNumber! GTR !guessMaxNum! goto guessError
cls
echo Your number is:
echo !guessNumber!
echo=
echo Binary :
echo !guessCode!
echo=
pause
goto instructions
:guessError
cls
echo Your number is out of range or you entered something wrong
echo=
echo Make sure your number is from 1 to !guessMaxNum!
echo Or you should find the number more carefully next time
echo=
echo Probably your number is !guessNumber!
echo=
echo In binary : !guessCode!
echo=
pause
goto instructions