中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] [3] »
作者:
标题: [原创]纯批处理版贪吃蛇 上一主题 | 下一主题
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『楼 主』:  [原创]纯批处理版贪吃蛇

在bathome发的帖子:
http://bbs.bathome.cn/viewthread ... e%3D1&frombbs=1有待完善,直接打开open.bat
运行时直接打开open.bat
控制说明:wasd分别为方向,一开始是默认暂停(p),按任意键开始游戏
    当按p暂停的时候 也是按任意键开始游戏的。



对思路进行了分析 见23楼
----------------open.bat--------------
@echo off
start direction.bat
title made by 523066680
:action
setlocal enabledelayedexpansion
mode con cols=65 lines=35
for /l %%a in (1,1,60) do (set space= !space!)
for /l %%a in (1,1,30) do (set L%%a=%space%)
set /a line=15,col=29,i=0,long=9
:loop
:::::::::::::::控制蛇长,判断是否建立食物部分
if %i% lss %long% (set /a i+=1) else (set i=1)
if defined cut%i% (
     if not defined dot (call :dot)
     !cut%i%:"=!
     set "L%a%=!L%a%:~0,%b%! !L%a%:~%c%!"
     set "%a%_%b%="
)
    :::::::显示
    cls
    echo, %space: =_%__
    for /l %%a in (1,1,30) do echo,│!L%%a!│
    echo, %space: =-%--
    echo,- 分数:%fen%00
    for /l %%a in (1,1,3) do (ping -n 1 127.0>nul)
::::::::::::::::读取数据,分析部分
:typex
set /p way=<x
if %way%==r (endlocal &goto :action)
if %way%==q (exit)
if %way%==p (ping -n 2 127.0>nul&goto :loop)
if %way%==w (set /a line-=1)
if %way%==s (set /a line+=1)
if %way%==a (set /a col-=1)
if %way%==d (set /a col+=1)
    if defined %line%_%col% (goto :gameover)
    if %line% equ 31 (goto :gameover)
    if %line% equ 0 (goto :gameover)
    if %col% equ -1 (goto :gameover)
    if %col% equ 60 (goto :gameover)
:::::::::::::::设置部分,描点,记录点坐标。
set /a C2=col+1
set "L%line%=!L%line%:~0,%col%!*!L%line%:~%C2%!"
set cut%i%="set /a a=%line%,b=%col%,c=%C2%"
set "%line%_%col%=exist"
if "%line%_%col%"=="%dotl%_%dotc%" (set /a long+=1,fen+=1 &set dot=)
goto :loop
  ::::::::::::建立食物O的调用部分
  :dot
  set /a dotl=%random%%%28+2,dotc=%random%%%58+1
  if defined %dotl%_%dotc% (goto :dot)
  set dot=%dotl%_%dotc%
  set /a dotc2=dotc+1
  set "L%dotl%=!L%dotl%:~0,%dotc%!O!L%dotl%:~%dotc2%!"
  goto :eof
:gameover
color 0a
ping -n 2 127.0>nul
cls
echo,game over 在控制台按q结束游戏,r再玩一次
ping -n 3 127.0>nul
echo,p>x
endlocal
goto :action
--------------------------direction.bat------------------
@echo off &mode con cols=35 lines=8
setlocal enabledelayedexpansion
echo,p>x
for %%a in (w a s d p q) do (set de%%a=defined)
set _w=s
set _s=w
set _a=d
set _d=a
set notequ=have
:a
cls
set /p input="w a s d q(退出) r(重来) p(暂停):"
if "%input%"=="q" (
  echo,q>x
  exit
)
if "%input%"=="r" (
  echo,r>x
)
if "%input%"=="%notequ%" (goto :a)
if not defined de%input% (goto :a)
set notequ=!_%input%!
echo %input%>x
goto :a
[ Last edited by 523066680 on 2009-1-10 at 11:22 ]

   此帖被 +108 点积分         点击查看详情   
评分人:【 BC 分数: +4  时间:2008-10-2 09:46
评分人:【 everest79 分数: +15  时间:2008-10-2 10:06
评分人:【 slore 分数: +16  时间:2008-10-2 11:26
评分人:【 bat-zw 分数: +20  时间:2008-10-2 11:39
评分人:【 moniuming 分数: +8  时间:2008-10-2 15:15
评分人:【 pusofalse 分数: +15  时间:2008-10-2 15:31
评分人:【 s11ss 分数: +11  时间:2008-10-2 19:59
评分人:【 huahua0919 分数: +15  时间:2008-10-7 17:57
评分人:【 wxcute 分数: +4  时间:2008-10-11 09:41


附件 1: GreedSnake.rar (2008-12-6 11:33, 1.46 K,下载次数: 161)


综合型编程论坛

我的作品索引
  
2008-10-2 09:40
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
BC
中级用户




积分 338
发帖 175
注册 2007-10-21
状态 离线
『第 2 楼』:  

SF....
真强大,有点回到红白机的感觉了...一个控制台,一个演示,要是能将wasd做到通过键盘的上下左右来实时控制就好了.

[ Last edited by BC on 2008-10-2 at 09:46 ]



C:\
C:\Del BC
2008-10-2 09:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
BC
中级用户




积分 338
发帖 175
注册 2007-10-21
状态 离线
『第 3 楼』:  

好像有点问题,如果初始化的时候食物在蛇的正明就会直接game over...

   此帖被 +5 点积分       点击查看详情   
评分人:【 523066680 分数: +5  时间:2008-10-3 13:21




C:\
C:\Del BC
2008-10-2 09:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 4 楼』:  创意不错~

choice能识别字符麽?

不能的话的那段DEBUG了



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2008-10-2 11:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
luowei14
初级用户




积分 193
发帖 98
注册 2007-1-17
状态 离线
『第 5 楼』:  

嘿嘿..有意思..学习了



这家伙很聪明 什么都没留下
2008-10-2 16:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
40szb
初级用户





积分 46
发帖 21
注册 2006-12-25
来自 西安
状态 离线
『第 6 楼』:  

强贴

2008-10-2 17:06
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 7 楼』:  

哈  我再多十分就餐1000分了



综合型编程论坛

我的作品索引
  
2008-10-3 12:35
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 8 楼』:  

高兴的……1000还早呢



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2008-10-3 12:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 9 楼』:  

嘿嘿 灌水不就可以拉 哦对了 1楼的代码有更新。

关于提出的问题暂时解决。 控制速度部分
查找这句 for /l %%a in (1,1,3) do (ping -n 1 127.0>nul)可自己调试速度

[ Last edited by 523066680 on 2008-10-3 at 13:26 ]



综合型编程论坛

我的作品索引
  
2008-10-3 13:01
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 10 楼』:  

用SET /P反应速度慢了些不好玩.
用choice玩起来更爽
@echo off &mode con cols=35 lines=8
setlocal enabledelayedexpansion
echo,p>x
for %%a in (w a s d p q) do (set de%%a=defined)
set _w=s
set _s=w
set _a=d
set _d=a
set notequ=have
:a
cls
choice /c wasdqr /n /m "w a s d q(退出) r(重来):"
if errorlevel 1 set input=w
if errorlevel 2 set input=a
if errorlevel 3 set input=s
if errorlevel 4 set input=d
if errorlevel 5 set input=q
if errorlevel 6 set input=r
if "%input%"=="q" (
  echo,q>x
  exit
)
if "%input%"=="r" (
  echo,q>x
  ping -n 2 127.0>nul
  echo,p>x
  call open.bat
)
if "%input%"=="%notequ%" (goto :a)
if not defined de%input% (goto :a)
set notequ=!_%input%!
echo %input%>x
goto :a


   此帖被 +8 点积分        点击查看详情   
评分人:【 523066680 分数: +8  时间:2008-10-7 17:24




QQ:366840202
http://chenall.net
2008-10-3 15:23
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 11 楼』:  

大哥顺便把choice发上来哈 感谢您的支持



综合型编程论坛

我的作品索引
  
2008-10-7 17:24
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 12 楼』:  Re 11楼

本版搜索choice.exe
http://upload.cn-dos.net/img/454.zip



2008-10-7 17:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
toms
新手上路





积分 10
发帖 5
注册 2008-10-9
状态 离线
『第 13 楼』:  

..有意思..学习了

2008-10-9 23:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
succubus
新手上路





积分 2
发帖 1
注册 2008-10-7
状态 离线
『第 14 楼』:  

真有意思,学习了

2008-10-10 18:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
JamesYou
初级用户





积分 52
发帖 36
注册 2008-10-10
状态 离线
『第 15 楼』:  

为什么我一运行就是提示“r(从来)”?

2008-10-10 18:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: