|
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 |
|
|
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...
|
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 来自 西安
状态 离线
|
|
2008-10-2 17:06 |
|
|
523066680
银牌会员
SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
|
2008-10-3 12:35 |
|
|
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 |
|
|
chenall
银牌会员
积分 1276
发帖 469
注册 2002-12-23 来自 福建泉州
状态 离线
|
|
2008-10-3 15:23 |
|
|
523066680
银牌会员
SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
|
2008-10-7 17:24 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
|
2008-10-7 17:54 |
|
|
toms
新手上路
积分 10
发帖 5
注册 2008-10-9
状态 离线
|
|
2008-10-9 23:53 |
|
|
succubus
新手上路
积分 2
发帖 1
注册 2008-10-7
状态 离线
|
|
2008-10-10 18:26 |
|
|
JamesYou
初级用户
积分 52
发帖 36
注册 2008-10-10
状态 离线
|
『第
15 楼』:
为什么我一运行就是提示“r(从来)”?
|
|
2008-10-10 18:53 |
|