Guest User

Untitled

a guest
Oct 11th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 7.42 KB | None | 0 0
  1. @Echo off
  2. @title Space Invaders v 1
  3. @mode con cols=29 lines=25
  4.  
  5. :: Batch Game - Space Invaders v 1
  6. :: Coded by SmartGenius
  7. :: SmartGenius, Corp. 2010
  8.  
  9. Choice /N /T:Y,1 >Nul 2>&1
  10. If "%Errorlevel%"=="9009" (Echo. CHOICE command not found&Pause&Exit)
  11.  
  12. Set "Game=%0"
  13.  
  14. Call :Logo
  15.  
  16. :Menu
  17. Cls
  18. Echo.
  19. Echo.
  20. Echo. Space Invaders v 1
  21. Echo. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
  22. Echo. ÚÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿
  23. Echo. ³1.³ ³Play Game   ³
  24. Echo. ÀÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ
  25. Echo. ÚÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿
  26. Echo. ³2.³ ³How to Play ³
  27. Echo. ÀÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ
  28. Echo. ÚÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿
  29. Echo. ³3.³ ³Exit Game   ³
  30. Echo. ÀÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ
  31. Echo.
  32. CHOICE /C:123 /N >nul
  33. REM CHOICE /C 123 /N >nul
  34. If "%errorlevel%"=="1" (Goto :Load)
  35. If "%errorlevel%"=="2" (Goto :Help)
  36. If "%errorlevel%"=="3" (Goto :End
  37. Goto :Menu
  38.  
  39. :Load
  40. Setlocal enabledelayedexpansion
  41. Set /a "LimX=19","LimY=16","TBound=0","LBound=0","Turn=1","Points=0"
  42. Set /a "Bound=%LimX%"=="BBoun=%LimY%"
  43.  
  44. :Init
  45. For /l %%a in (0,1,%LimX%) do (
  46. For /l %%b in (0,1,%LimY%) do (
  47. Set "X%%aY%%b=
  48. Set "Bound=Û"
  49. Set "Bound2=²"
  50. Set "Invader="
  51. Set "Shot=o"
  52.  
  53. :Main
  54. Call :Map
  55. Call :Player
  56. Call :Graphic
  57. Goto :Main
  58.  
  59. :Graphic
  60. Call :Clear
  61. Cls
  62. Echo.
  63. Echo.  Space Invaders by Smart
  64. Echo.
  65. Echo.   Points:%Points%
  66. Echo.   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
  67. For /l %%f in (0,1,%LimY%) do (Echo.   º!Lin_%%f!º)
  68. Echo.   ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
  69. Call :MovFire
  70. If "%N_Invaders%"=="0" Goto :Win
  71. Call :Move
  72. Call :MovPC
  73. Goto :Graphic
  74.  
  75. :Move
  76. :: Normal CHOICE (provided into ZIP package)
  77. REM CHOICE /C WADXC /N >nul
  78. :: Windows 7 or x64 system CHOICE (uncomment)
  79. CHOICE /C:WADXC /N
  80. If "%errorlevel%"=="1" (Call :Fire)
  81. If "%errorlevel%"=="2" (Call :MovS "Player" "Bound" "-" "L")
  82. If "%errorlevel%"=="3" (Call :MovS "Player" "Bound" "+" "R")
  83. If "%errorlevel%"=="4" (Goto :Menu)
  84. If "%errorlevel%"=="5" (Call :MovCR)
  85. Goto :Eof
  86.  
  87. ::::::::::::::::::::::::::::::::::::::::
  88. :Fire
  89. For /f "tokens=4 delims=," %%f in ("%Player%") do (
  90. For /f "tokens=1,2 delims=X,Y" %%g in ("%%f") do (
  91. Set /a "NewF=%%h-1"
  92. Set "X%%gY!NewF!=%Shot%"
  93. Set "Shots=%Shots%,X%%gY!NewF!"
  94. ))
  95. Goto :Eof
  96.  
  97. :MovFire
  98. Set "TmpShots="
  99. For %%s in (%Shots%) do (
  100. Call :CkFire "%%s" "TmpCoord" "TmpVal"
  101. If "!TmpVal!"==" " (
  102. Set "%%s= "
  103. Set "!TmpCoord!=%Shot%"
  104. Set "TmpShots=!TmpShots!,!TmpCoord!"
  105. )
  106. If "!TmpVal!"=="" (
  107. Set "%%s= "
  108. )
  109. If "!TmpVal!"=="%Bound2%" (
  110. Set "%%s= "
  111. Set "!TmpCoord!= "
  112. )
  113. If "!TmpVal!"=="%Invader%" (
  114. Set "%%s= "
  115. Set "!TmpCoord!= "
  116. Set /a "Points+=10"
  117. Set /a "N_Invaders-=1"
  118. Call Set "Invaders=%%Invaders:,!TmpCoord!=%%"
  119. ))
  120. Set "Shots=%TmpShots:~1%"
  121. Goto :Eof
  122.  
  123. :CkFire
  124. For /f "tokens=1,2 delims=X,Y" %%g in ("%~1") do (
  125. Set /a "MovY=%%h-1"
  126. Set "%~2=X%%gY!MovY!"
  127. Call Set "%~3=%%X%%gY!MovY!%%"
  128. )
  129. Goto :Eof
  130.  
  131. :MovPC
  132. Set /a "Turn+=1"
  133. Set /a "Dir=(%Turn% %% 6)+1"
  134. If "%Dir%"=="1" Call :MovS "Invaders" "Invader" "-" "L"
  135. If "%Dir%"=="2" Call :MovS "Invaders" "Invader" "-" "L"
  136. If "%Dir%"=="3" Call :MovS "Invaders" "Invader" "-" "L"
  137. If "%Dir%"=="4" Call :MovS "Invaders" "Invader" "+" "R"
  138. If "%Dir%"=="5" Call :MovS "Invaders" "Invader" "+" "R"
  139. If "%Dir%"=="6" Call :MovS "Invaders" "Invader" "+" "R"
  140. Goto :Eof
  141. ::::::::::::::::::::::::::
  142.  
  143. :MovCR
  144. Cls
  145. Echo.
  146. Echo.
  147. Call :L2 "Goto :Eof"
  148. Echo.
  149. For /f "tokns=2 skip=3" %%c in ('find "::_0" %Game%') do (
  150. Set "Tmp_Var=%%c"
  151. Call :Key.A Tmp_Var
  152. Echo. !Tmp_Var!
  153. )
  154. Pause >nul
  155. Goto :Eof
  156.  
  157. ::::::::::::::::::::::::::::
  158.  
  159. :MovS
  160. Set "TmpTB="
  161. Set "TmpTable=!%~1!"
  162. For %%a in (%TmpTable%) do (
  163. Echo.!TmpTable!|Find "X!%~4Bound!">nul
  164. If !Errorlevel! EQU 0 (Goto :Eof)
  165. Call :MovXR "%~31" "%%a" "Val"
  166. Call Set "TmpTB=!TmpTB!,!Val!"
  167. )
  168. For %%c in (%TmpTB:~1%) do (
  169. If "!%%c!"=="%Bound2%" (
  170. For %%b in (!%~1!) do (Set "%%b=!%~2!")
  171. Goto :Eof
  172. ))
  173. Set "%~1=%TmpTB:~1%"
  174. For %%d in (!%~1!) do (Set "%%d=!%~2!")
  175. Goto :Eof
  176.  
  177. :MovXR
  178. For /f "tokens=1,2 delims=X,Y" %%p in ("%~2") do (
  179. Set /a MovX=%%p%~1
  180. Set "%~3=X!MovX!Y%%q"
  181. Set "%~2= ")
  182. Goto :Eof
  183.  
  184. :::::::::::::::::::::::::
  185.  
  186. :Key.A
  187. If not defined %1 Goto:Eof
  188. Set "c="
  189. Set "d=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz =/\()[]{}_-.:,;* @#"
  190. :Key.B
  191. Set "chr=!%1:~,1!"
  192. For /l %%l in (0 1 80) do if "!chr!" equ "!d:~%%l,1!" (
  193.   set /a "x=%%l^5"
  194.   call set "c=!c!%%d:~!x!,1%%"
  195. )
  196. Set "%1=!%1:~1!"
  197. If defined %1 goto:Key.B
  198. Set "%1=!c!"
  199. Goto :Eof
  200.  
  201. :::::::::::::::::::::::
  202.  
  203. :Clear
  204. For /l %%m in (0,1,%LimY%) do (Set Lin_%%m=)
  205. For /l %%d in (0,1,%LimY%) do (
  206. For /l %%e in (0,1,%LimX%) do (
  207. Set Lin_%%d=!Lin_%%d!!X%%eY%%d!))
  208. Goto :Eof
  209.  
  210. :Lost
  211. Cls
  212. Echo.
  213. Echo.  Space Invaders by Smart
  214. Echo.
  215. Echo.      Has Perdido !
  216. Echo.
  217. Echo.     Points:%Points%
  218. Echo.
  219. Goto :End
  220.  
  221. :Win
  222. Cls
  223. Echo.
  224. Echo.    Space Invaders v 1
  225. Echo.   Coded by SmartGenius
  226. Echo.
  227. Echo.    Points:%Points%
  228. Echo.     Has Ganado !
  229. Goto :End
  230.  
  231. :End
  232. Echo.
  233. Echo.     Gracias por Jugar
  234. Echo.  Space Invaders by Smart
  235. Endlocal
  236. Ping -n 3 localhost >nul
  237. Exit
  238.  
  239. :::::::::::::::::::::::::::::::::
  240.  
  241. :Player
  242. Set Player_Init=X6Y16,X7Y16,X8Y16,X7Y15
  243. Set Player=%Player_Init%
  244. For %%b in (%Player%) do (Set "%%b=%Bound%")
  245. Goto :Eof
  246.  
  247. :Map
  248. For %%a in (
  249. X2Y13,X3Y12,X3Y13,X4Y12,X4Y13,X5Y13,
  250. X8Y13,X9Y12,X9Y13,X10Y12,X10Y13,X11Y13,
  251. X14Y13,X15Y12,X15Y13,X16Y12,X16Y13,X17Y13
  252. ) do (Set "%%a=%Bound2%")
  253. For %%b in (
  254. X2Y2,X2Y4,X4Y3,X6Y2,X6Y4,X8Y3,X10Y2,X10Y4,
  255. X12Y3,X14Y2,X14Y4,X16Y3,X18Y2,X18Y4
  256. ) do (
  257. Set "Invaders=!Invaders!,%%b"
  258. Set "%%b=%Invader%")
  259. Set "Invaders=%Invaders:~1%"
  260. Set /a "N_Invaders=14"
  261. Goto :Eof
  262.  
  263. ::_0 xxxxxxxxxxxxxxxxxxxxxxxxx
  264. ::_0 xx9tYjYxWvxPrXmoLjqfzpxxx
  265. ::_0 xxxxxXhXxLBINRPFGBaxxxxxx
  266. ::_0 xxxxxxxxxxxxxxxxxxxxxxxxx
  267. ::_0 xxxxxxxxxxxxxxxxxxxxxxxxx
  268. ::_0 xPrXmoLjqfzpx9tms-x7545xx
  269.  
  270. :Help
  271. Cls
  272. Call :L2 "Goto :Eof"
  273. Echo.
  274. Echo.  How to Play Invaders ?
  275. Echo.
  276. Echo.  Use keys k,j,r,h
  277. Echo.
  278. Echo.  k = Move Ship Left
  279. Echo.  j = Move Ship Down
  280. Echo.  r = Throw Fire
  281. Echo.  h = Back to Menu Game
  282. Echo.
  283. Echo.
  284. Pause >nul
  285. Goto :Menu
  286.  
  287. :Logo
  288. Cls
  289. Color 0a
  290. :L2
  291. Echo.
  292. Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°°
  293. Echo. °°°°°ÛÛ°ÛÛ°°°Û°°°Û°°ÛÛÛ°°°°
  294. Echo. °°°°Û°°°Û°Û°Û°Û°Û°Û°Û°°°°°°
  295. Echo. °°°°°Û°°ÛÛ°°ÛÛÛ°Û°°°ÛÛÛ°°°°
  296. Echo. °°°°°°Û°Û°°°Û°Û°Û°Û°Û°°°°°°
  297. Echo. °°°°ÛÛ°°Û°°°Û°Û°°Û°°ÛÛÛ°°°°
  298. Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°°
  299. Echo. °°±°I°°N°°V°°A°°D°°E°°R°±°°
  300. %~1
  301. Echo. °°±°°°°°°°°°°°°°°°°°°°°°±°°
  302. Echo. °°±°°°°°°°°°°°°°°°°±°°
  303. Echo. °°±°°°°°°°°°°°°°°°°±°°
  304. Echo. °°±°°°°°°°°°°°°°°°°°°°°°±°°
  305. Echo. °°±°°°°°°°o°°°°°°°°°°°°°±°°
  306. Echo. °°±°°°°°°°°°°°°°°°°°°°°°±°°
  307. Echo. °°±°°°²²°°o°²²°°°°²²°°°°±°°
  308. Echo. °°±°°²²²²°°²²²²°°²²²²°°°±°°
  309. Echo. °°±°°°°°°°Û°°°°°°°°°°°°°±°°
  310. Echo. °°±°°°°°°ÛÛÛ°°°°°°°°°°°°±°°
  311. Echo. °°±±±±±±±±±±±±±±±±±±±±±±±°°
  312. Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°°
  313. Echo. °°°°°°: SmartGenius :°°°°°°
  314. Echo. °°°°°°  Corp.  2010  °°°°°°
  315. Echo. °°°°°°°°°°°°°°°°°°°°°°°°°°°
  316. Pause >nul
  317. Goto :Eof
Add Comment
Please, Sign In to add comment