[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[游戏娱乐] 批处理纯批处理版贪吃蛇

运行时直接打开open.bat
控制说明:wasd分别为方向,一开始是默认暂停(p),按任意键开始游戏
    当按p暂停的时候 也是按任意键开始游戏的。
----------------open.bat--------------
  1. @echo off
  2. start direction.bat
  3. title made by 523066680
  4. :action
  5. color 07
  6. setlocal enabledelayedexpansion
  7. mode con cols=65 lines=35
  8. for /l %%a in (1,1,60) do (set space= !space!)
  9. for /l %%a in (1,1,30) do (set L%%a=%space%)
  10. set /a line=15,col=29,i=0,long=9
  11. :loop
  12. :::::::::::::::控制蛇长,判断是否建立食物部分
  13. if %i% lss %long% (set /a i+=1) else (set i=1)
  14. if defined cut%i% (
  15.      if not defined dot (call :dot)
  16.      !cut%i%:"=!
  17.      set "L%a%=!L%a%:~0,%b%! !L%a%:~%c%!"
  18.      set "%a%_%b%="
  19. )
  20. :pausego
  21.     :::::::显示
  22.     cls
  23.     echo, %space: =_%__
  24.     for /l %%a in (1,1,30) do echo,│!L%%a!│
  25.     echo, %space: =-%--
  26.     echo,- 分数:%fen%00  %echo%
  27.     for /l %%a in (1,1,3) do (ping -n 1 127.0>nul)
  28. ::::::::::::::::读取数据,分析部分
  29. :typex
  30. set /p way=<x
  31. if %way%==q (exit)
  32. if %way%==r (endlocal &set echo=按wasd方向键激活。&goto :action) else (set echo=)
  33. if %way%==p (ping -n 2 127.0>nul &set echo=按wasd方向键激活。&goto :pausego) else (set echo=)
  34. if %way%==w (set /a line-=1)
  35. if %way%==s (set /a line+=1)
  36. if %way%==a (set /a col-=1)
  37. if %way%==d (set /a col+=1)
  38.     if defined %line%_%col% (goto :gameover)
  39.     if %line% equ 31 (goto :gameover)
  40.     if %line% equ 0 (goto :gameover)
  41.     if %col% equ -1 (goto :gameover)
  42.     if %col% equ 60 (goto :gameover)
  43. :::::::::::::::设置部分,描点,记录点坐标。
  44. set /a C2=col+1
  45. set "L%line%=!L%line%:~0,%col%!*!L%line%:~%C2%!"
  46. set cut%i%="set /a a=%line%,b=%col%,c=%C2%"
  47. set "%line%_%col%=exist"
  48. if "%line%_%col%"=="%dotl%_%dotc%" (set /a long+=3,fen+=1 &set dot=)
  49. goto :loop
  50.   ::::::::::::建立食物O的调用部分
  51.   :dot
  52.   set /a dotl=%random%%%28+2,dotc=%random%%%58+1
  53.   if defined %dotl%_%dotc% (goto :dot)
  54.   set dot=%dotl%_%dotc%
  55.   set /a dotc2=dotc+1
  56.   set "L%dotl%=!L%dotl%:~0,%dotc%!O!L%dotl%:~%dotc2%!"
  57.   goto :eof
  58. :gameover
  59. echo,p>x
  60. color 0a
  61. ping -n 2 127.0>nul
  62. cls
  63. echo,game over 在控制台按q结束游戏,r再玩一次,然后按任意方向键激活暂停状态
  64. ping -n 3 127.0>nul
  65. endlocal
  66. goto :action
复制代码
--------------------------direction.bat------------------
  1. @echo off &mode con cols=35 lines=8
  2. setlocal enabledelayedexpansion
  3. echo,p>x
  4. for %%a in (w a s d p q) do (set de%%a=defined)
  5. set _w=s
  6. set _s=w
  7. set _a=d
  8. set _d=a
  9. set notequ=have
  10. :a
  11. cls
  12. set /p input="w a s d q(退出) r(重来) p(暂停):"
  13. if "%input%"=="q" (
  14.   echo,q>x
  15.   exit
  16. )
  17. if "%input%"=="r" (
  18.   echo,r>x
  19. )
  20. if "%input%"=="%notequ%" (goto :a)
  21. if not defined de%input% (goto :a)
  22. set notequ=!_%input%!
  23. echo %input%>x
  24. goto :a
复制代码
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
5

评分人数

这边也有啊...
就是快了点,还有cpu很高很高

TOP

建议将 * 改成类似 □ 占两位的字符。

可以用choice这个外部程序来完成方向控制。

TOP

小兄弟能写到这样的程度已经很不错了,只是批处理做这样的受限制的地方太多了。。。
***共同提高***

TOP

改进合并版(只有一个文件,修正13楼提到的Bug,使用choice命令)
2008 10 05日

本文件使用的外部命令choice.exe和echox.exe下载地址:
http://bbs.bathome.net/thread-3981-1-1.html

[ 本帖最后由 Batcher 于 2009-5-9 20:54 编辑 ]
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
3

评分人数

TOP

回复 1楼 的帖子

不务正业
批处理是用来玩游戏
的确,你真的很有能耐
也对,我们的祖先就是这样
中国人只会用火药做鞭炮,那多好玩啊?

TOP

回复 6楼 的帖子

难道批处理不能用来玩游戏?
不能的话,MS-DOS就只用保留echo start net dir if命令就行了。

TOP

原帖由 yslyxqysl 于 2008-10-2 17:44 发表
改进版(使用choice命令)
2008 10 03日
424
choice.exe
422
echox.exe
423

太强大了...本想给你加分,但是不能.
不足之处就是速度有点快啊

TOP

回六楼

不发明火药就没有了大炮,不是吗?

TOP

回复 9楼 的帖子

Yeah!
IF
set BAT=powder
then
set game=cannon
BAT=powder :: no problem
game=cannon ::too
but game neq cannon
end

请教一个问题wmic ENVIRONMENT where "name='path' and username='<SYSTEM>'" set VariableValue='%path%;C:\'

[ 本帖最后由 raozhao2008 于 2008-10-3 23:21 编辑 ]

TOP

回复 10楼 的帖子

把C:\添加到系统环境变量%path%里面
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

做游戏不就是为枯燥的学习增加点乐趣么!也是锻炼了自己的能力啊!
再说了   游戏都做不出来的你能做些什么?值得怀疑!

TOP

原帖由 yslyxqysl 于 2008-10-2 17:44 发表
改进合并版(只有一个文件,使用choice命令)
2008 10 04日
435
本文件使用的外部命令
choice.exe
422
echox.exe
423


好像找到个bug,就是当蛇向前走时按后就会game over..就是按相反方向会自杀

TOP

回复 6楼 的帖子

我一个高二的学生  难道要我写杀毒软件不成?
你Q多少   我要跟你论战!
 我学批处理完全为了娱乐,你不喜欢 就一边去。
再看一次你说的话 我很火……



关于速度  可以自己找到ping 那句  然后修改。
我是 用for /l %%a in (1,1,3) do ping ……的
改起来很方便的  另外 声明  2次ping 1  并不等于一次ping 2的。甚至时间远小于后者

[ 本帖最后由 523066680 于 2008-10-7 17:05 编辑 ]

TOP

我也来改,二合一代码用了5楼的。

增加关卡。不过只有三关,要更多关就要精确设定延时代码了(用sleep毫秒的那个;或是以前有人写过的检测time的那个;又或是循环某一命令多次,当然是换ping为另一个了)

把 * 换成了 □ (行列看得更清一点),吃子 12 个中 取一个。

更新:
2008-11-22
1、增加暂停功能;
2、添加窗口位置代码,使控制窗口与显示窗口自动分开。

下面就是我玩的(含choice)。(附件更新至最新)

[ 本帖最后由 wxcute 于 2008-12-6 13:29 编辑 ]
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
1

评分人数

    • 523066680: 你太帅了! 我喜欢!(说的是代码)技术 + 1 PB + 10

TOP

返回列表