Board logo

标题: [其他] 批处理电子钟表 [打印本页]

作者: canyuexiaolang    时间: 2012-5-19 18:00     标题: 批处理电子钟表

跟neorobin比起来无论是效率还是代码长度都差了很多。。我擦又让炎凉了。。


  1. ::Code by Canyuexiaolang 2012-5-15
  2. @echo off & setlocal enabledelayedexpansion &mode con:cols=81 lines=5 & title 电子表 By Canyuexiaolang & color F
  3. (
  4.     set "char0=1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1"
  5.     set "char1=2 1 2 2 1 2 2 1 2 2 1 2 2 1 2"
  6.     set "char2=1 3 1 3 1 1 1 3 1 1 1 3 1 3 1"
  7.     set "char3=1 3 1 3 1 1 1 3 1 3 1 1 1 3 1"
  8.     set "char4=1 1 1 1 1 1 1 1 1 1 1 3 1 3 1 1 3 1 1"
  9.     set "char5=1 3 1 1 1 3 1 3 1 3 1 1 1 3 1"
  10.     set "char6=1 3 1 1 1 3 1 3 1 1 1 1 1 1 1 3 1"
  11.     set "char7=1 3 1 3 1 1 3 1 1 3 1 1 3 1 1"
  12.     set "char8=1 3 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 3 1"
  13.     set "char9=1 3 1 1 1 1 1 1 1 3 1 3 1 1 1 3 1"
  14.     set "char10=5 2 1 2 5 2 1 2 5"
  15. )
  16. for /l %%u in (0 0 0) do (
  17.     (
  18.         setlocal
  19.         set "str=!time!"
  20.         if "!str:~0,1!"==" " set "str=0!str:~1,7!"
  21.     )
  22.     (
  23.         for /l %%i in (0 1 7) do (
  24.             set "char=!str:~%%i,1!"
  25.             for /l %%x in (0 1 9) do (
  26.                 if "!char!"=="%%x" (
  27.                 set "num=1"
  28.                     for %%y in (!char%%x!) do (
  29.                         set /a temp+=%%y
  30.                         call set "line!num!=%%line!num!%% %%y"
  31.                         if !temp! equ 5 set /a temp=0,num+=1
  32.                     )
  33.                 )
  34.             )
  35.             if "!char!"==":" (
  36.                 set "num=1"
  37.                 for %%y in (!char10!) do (
  38.                     set /a temp+=%%y
  39.                     call set "line!num!=%%line!num!%% %%y"
  40.                     if !temp! equ 5 set /a temp=0,num+=1
  41.                 )
  42.             )
  43.         )
  44.         for /l %%i in (1 1 5) do (
  45.             for %%j in (!line%%i!) do (
  46.                 set /a temp+=%%j,borw+=1
  47.                 set /a bw=borw%%2
  48.                 if !bw! equ 1 for /l %%z in (1 1 %%j) do set "lines=!lines!■"
  49.                 if !bw! equ 0 for /l %%z in (1 1 %%j) do set "lines=!lines! "
  50.                 if !temp! equ 5 set /a temp=0,borw=0
  51.             )
  52.         )
  53.     )
  54.     (
  55.         for /l %%i in (0 1 1000) do ver>nul
  56.         set /p=!lines!<nul
  57.         endlocal
  58.     )
  59. )
复制代码



这个是我的。。我顺便把neorobin也发过来吧。。。
  1. @echo off & setlocal enabledelayedexpansion & mode con cols=54 lines=6 & color 0a
  2. for %%a in (4 1 2 1 2 1 4 2 1 2 1 2 1 2 1 2 4 2 5 2 6 2 4 2 5 1 2
  3. 1 4 2 1 2 5 2 3 2 8 2 4 1 7 2 1 2 1 2 1 2 5 1 5 1 8 1 4 2 4) do (
  4.   set /a cc=~cc
  5.   for /l %%i in (1,1,%%a) do (if !cc!==0 (set dgts=!dgts! ) else (set dgts=!dgts!■))
  6. )
  7. for /l %%z in (0 0 0) do (
  8.   if "!time:~7,1!" neq "!sec!" (
  9.     set "sec=!time:~7,1!" & set "oc="
  10.     for /l %%h in (0,1,4) do (
  11.       for %%d in (0 sp 1 sp : sp 3 sp 4 sp : sp 6 sp 7) do (
  12.         if "%%d"==":" (set /a tt=%%h*5&if "!tt:~-1!"=="0" (set oc=!oc! ) else set oc=!oc!●) else (
  13.           if "%%d"=="sp" (set oc=!oc! ) else (
  14.             set "timeP=!time: =0!"&set /a s=!timeP:~%%d,1!*15+%%h*3
  15.             for %%o in (!s!) do set "oc=!oc!!dgts:~%%o,3!"
  16. ))))&cls & set /p=!oc!<nul))
复制代码



- -   郁闷了
作者: 0123456789    时间: 2013-1-15 16:10

要是带闹钟的功能就好了。。。
作者: nhygvfr    时间: 2013-1-25 17:34

回复 2# 0123456789


    把它稍稍修改一下,可以变成“两条代码的奇迹”…
作者: 522235677    时间: 2013-4-3 10:57

牛掰,佩服。
作者: Roxx    时间: 2024-4-10 23:07

显示有问题啊




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2