标题: [游戏娱乐] 批处理有趣的心形图案 [打印本页]
作者: lhjoanna 时间: 2008-11-11 02:18 标题: 批处理有趣的心形图案
这是一个签名,我给大概改了一下。大家试试看啊,记得输入时一定要汉语哦。
经过Batcher提醒,把更新信息列出。
更新历史:2008.11.11 可以支持字母,数字,汉字以及之间的相互组合(这里要谢谢youxi01的建议)!
2008.11.12 解决了输入为空输出缺少空格的问题(该问题见八楼)。
为方便比较,代码添加在下面。欢迎大家提供意见!- @echo off
- rem 同甘共苦 誠心誠意 珍貴友誼 分享喜悅
- setlocal enabledelayedexpansion
- set a=◢█◣◢█◣
- set b=█ █
- set c=◥████◤
- set d= ◥██◤
- set e= ◥◤
- set /p cy="请输入你最喜欢的四个成语用(用空格隔开):"
- :a
- set /a num=0
- for %%b in (%cy%) do (
- set /a num+=1
- set a!num!=%%b
- )
- set "str1= "
- set /a _color=!random!%%15
- set str=123456789abcedf
- color 0!str:~%_color%,1!
- for /l %%i in (1 1 3) do (
- set /a s=!random!%%4+1
- set b=█!a%s%!█
- for %%j in (a b c d e) do (
- set str=
- if "%%j" equ "b" set "str= "
- if "%%j" equ "d" set "str= "
- if "%%j" equ "e" set "str= "
- if %%i equ 2 (echo !%%j! !str!!%%j!) else echo !%%j!
- )
- )
- ping -n 1 127.1>nul
- ping -n 1 127.1>nul
- cls
- goto a
复制代码
2008.11.12更新后:- @echo off
- setlocal enabledelayedexpansion
- set a=◢█◣◢█◣
- set b=█ █
- set c=◥████◤
- set d= ◥██◤
- set e= ◥◤
- set /p cy="请输入你最喜欢的四个成语用(用空格隔开):"
- :a
- set /a num=0
- for %%b in (%cy%) do (
- set /a num+=1
- set a!num!=%%b
- )
- set /a _color=!random!%%15
- set str=123456789abcedf
- color 0!str:~%_color%,1!
- for /l %%i in (1 1 3) do (
- set /a s=!random!%%4+1
- if "!a%s%!"=="" (set kong=0) else call :length !a%s%! %kong%
- set /a s1=8-!kong!
- set /a s1=s1/2
- set /a s2=8-!s1!-!kong!
- call :ko !s1! &set str1=!k!
- call :ko !s2! &set str2=!k!
- set b=█!str1!!a%s%!!str2!█
- for %%j in (a b c d e) do (
- set str=
- if "%%j" equ "d" set "str= "
- if "%%j" equ "e" set "str= "
- if %%i equ 2 (echo !%%j! !str!!%%j!) else echo !%%j!
- )
- )
- ping -n 1 127.1>nul
- ping -n 1 127.1>nul
- cls
- goto a
-
- :length
- set sss=a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9
- set var=%1
- set n=0
- for /l %%i in (0 1 10) do (
- set flag=1
- if "!var:~%%i,1!"=="" set kong=!n! && goto :eof
- for %%b in (%sss%) do (
- if /i "!var:~%%i,1!" equ "%%b" (set flag=0 )
- )
- if !flag! equ 1 ( set /a n+=2 ) else set /a n+=1
- )
-
- :ko
- set k=
- if "%1"=="" goto :eof
- for /l %%i in (1 1 %1) do set "k=!k! "
复制代码
作者: pusofalse 时间: 2008-11-11 02:47
有创意、、、 是否更应该发展实用的批处理。。。
作者: lhjoanna 时间: 2008-11-11 02:59
恩,谢谢版主提醒啊。最近几天一直在研究学习各种各样的图案。恩,我会不断的向实用性发展,不断的学习前辈高手们的代码的。
作者: jellyhk 时间: 2008-11-11 11:59
恩厉害啊!
是不是无聊的时候想的?
作者: youxi01 时间: 2008-11-11 13:43
提个建议:
输入内容不应该仅仅局限于成语
可以输入任意4字以内文字,如:人名等,呵呵
代码最好再修改下,至于输入任意<四字符的字符串的对齐可以填充空格,再截取来实现!
作者: rat 时间: 2008-11-11 14:14
很好。
可以上边三个心,中间两个,下边一个
作者: hlzj88 时间: 2008-11-11 22:23
狠好看的,有创意,慢慢学习
作者: lhjoanna 时间: 2008-11-11 23:36
谢谢大家的鼓励啊,我会不断努力的。
经过youxi01的提醒,现在修改了一下代码。可以支持字母,数字以及汉字,可以小于8个字符(汉语4个),比如可以输入 123 abcd 同甘共苦 1朋友2 等类似字符。现附上代码:- @echo off
- rem 同甘共苦 誠心誠意 珍貴友誼 分享喜悅
- setlocal enabledelayedexpansion
- set a=◢█◣◢█◣
- set b=█ █
- set c=◥████◤
- set d= ◥██◤
- set e= ◥◤
- set /p cy="请输入你最喜欢的四个成语用(用空格隔开):"
- :a
- set /a num=0
- for %%b in (%cy%) do (
- set /a num+=1
- set a!num!=%%b
- )
-
- set /a _color=!random!%%15
- set str=123456789abcedf
- color 0!str:~%_color%,1!
- for /l %%i in (1 1 3) do (
- set "kong_= "
- set /a s=!random!%%4+1
- call :length !a%s%! %kong%
-
- set /a s1=8-!kong!
-
- set /a s1=s1/2
-
- set /a s2=8-!s1!-!kong!
-
- call :ko !s1! &set str1=!k!
- call :ko !s2! &set str2=!k!
- set b=█!str1!!a%s%!!str2!█
- for %%j in (a b c d e) do (
- set str=
- if "%%j" equ "d" set "str= "
- if "%%j" equ "e" set "str= "
- if %%i equ 2 (echo !%%j! !str!!%%j!) else echo !%%j!
- )
- )
- ping -n 1 127.1>nul
- ping -n 1 127.1>nul
- cls
- goto a
-
-
- :length
- set sss=a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9
- set var=%1
- set n=0
- for /l %%i in (0 1 10) do (
- set flag=1
- if "!var:~%%i,1!"=="" set kong=!n! && goto :eof
- for %%b in (%sss%) do (
- if "!var:~%%i,1!" equ "%%b" (set flag=0 )
- )
- if !flag! equ 1 ( set /a n+=2 ) else set /a n+=1
- )
- :ko
- set k=
- if "%1"=="" goto :eof
- for /l %%i in (1 1 %1) do set "k=!k! "
复制代码
有一个问题还请高手解答下:按理说什么都不输直接按回车的话,应该出现!b!中间为8个空格的情况,可实际情况却是少了一个。在下面一步一步静态运行没发现什么异常啊,是不是漏了什么?
此问题已解决,更新信息在顶楼说明!!
[ 本帖最后由 lhjoanna 于 2008-11-12 18:44 编辑 ]
作者: Batcher 时间: 2008-11-11 23:40 标题: 回复 8楼 的帖子
建议把更新情况在顶楼说明一下
作者: lhjoanna 时间: 2008-11-11 23:48
原帖由 Batcher 于 2008-11-11 23:40 发表
建议把更新情况在顶楼说明一下
更新信息已经列出,谢谢提醒!!
作者: Peking007 时间: 2009-2-27 17:26
不断的学习前辈高手们的代码的。
作者: vte8689 时间: 2010-12-14 22:03
不错。改下内容可送女友咯。。。
作者: txwhjsw 时间: 2010-12-24 16:18
有创意、、、 是否更应该发展实用的批处理。。。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |