说明:
代码本还可以做大幅度修改和优化,实在是写得太头痛了,先发了。
请复制代码后将代码中的tab变量换成实际的tab不然会出错。
代码如下:- @echo off&setlocal enabledelayedexpansion
-
- :::::::::初始化变量:::::::::
- rem 三十二强及其世界排名
- set "list=1-巴西 2-西班牙 4-荷兰 5-意大利 6-德国 7-阿根廷 8-英格兰 83-南非 20-澳大利亚 47-韩国 45-日本 105-朝鲜 14-美国 17-墨西哥 38-洪都拉斯 78-新西兰 30-阿尔及利亚 19-喀麦隆 21-尼日利亚 27-科特迪瓦 32-加纳 31-巴拉圭 18-智利 16-乌拉圭 36-丹麦 9-法国 13-希腊 3-葡萄牙 15-塞尔维亚 34-斯洛伐克 34-斯洛文尼亚 24-瑞士"
- for %%a in (%list%) do (
- for /f "tokens=1,2 delims=-" %%b in ("%%a") do set /a "pm_%%c=%%b"
- )
- set "tab= "
- :::::::::初始化变量:::::::::
-
- :::::::::分组:::::::::
- rem 按国际足联分组规则确保东道主南非和另外七支种子队不在同一组,同时确保各地区各队尽量不在同一组。
- echo 本届世界杯三十二强分组情况:&echo.
- for %%a in (A B C D E F G H) do set /a n+=1&set ".!n!=%%a"
- set /a n=0
- for %%a in (%list%) do (
- set /a n+=1,m=0
- set "str=!str! %%a"
- if !n! equ 8 (
- for %%b in (!str!) do (
- if "%%b" equ "83-南非" (
- set "_0_1=%%b"
- ) else (
- set "_!random!_%%b=%%b"
- )
- )
- for /f "tokens=3 delims=_=" %%b in ('set _') do (
- set /a m+=1
- set "var=%%b"&set "var=!var:*-=!"
- for %%c in (!m!) do (
- for %%d in (!.%%c!) do set "tem_%%d=!tem_%%d! !var!"
- )
- )
- set "str="&set /a n=0
- for /f "delims==" %%b in ('set _') do set "%%b="
- )
- )
- for %%a in (A B C D E F G H) do echo %%a组:!tem_%%a!&echo.
- echo 请按键继续&pause>nul
- :::::::::分组:::::::::
-
- :::::::::小组赛:::::::::
- rem 按世界杯规则采用积分制,胜一场得3分,平一场得1分,负一场得0分,积分最高的两队小组出线,如出现积分相同的情况,则比较竞胜球,如积分竞胜球还一样,则比较进球数,如还一样则比较世界排名(实际上是抽签);当两队世界排名相差超过20位弱胜强即为出现黑马,黑马出现概率为1/32。
- for %%a in (A B C D E F G H) do (
- cls&echo %%a组赛况:&echo.
- set "str=!tem_%%a!"
- for %%b in (!tem_%%a!) do (
- set "tem_%%a=!tem_%%a:%%b=!"
- for %%c in (!tem_%%a!) do (
- set /a a=!random!%%10,b=5
- if !a! equ 0 set /a b=9
- set /a a=!random!%%!b!,%%b_jq=a,b=!random!%%!b!,%%c_jq=b,%%b_jf+=1,%%c_jf+=1,sl=pm_%%c-pm_%%b
- if !sl! gtr 20 (
- if !a! gtr !b! set /a %%b_jq=a,%%c_jq=b
- if !a! lss !b! set /a %%b_jq=b,%%c_jq=a
- set /a hm=!random!%%32
- if !hm! equ 0 (
- if !a! gtr !b! set /a %%b_jq=b,%%c_jq=a&set "hmd=出现黑马%%c"
- if !a! lss !b! set /a %%b_jq=a,%%c_jq=b&set "hmd=出现黑马%%c"
- )
- )
- if !sl! lss -20 (
- if !a! gtr !b! set /a %%b_jq=b,%%c_jq=a
- if !a! lss !b! set /a %%b_jq=a,%%c_jq=b
- set /a hm=!random!%%32
- if !hm! equ 0 (
- if !a! gtr !b! set /a %%b_jq=a,%%c_jq=b&set "hmd=出现黑马%%b"
- if !a! lss !b! set /a %%b_jq=b,%%c_jq=a&set "hmd=出现黑马%%b"
- )
- )
- set /a %%b_js+=%%b_jq-%%c_jq,%%c_js+=%%c_jq-%%b_jq,%%b_jqs+=%%b_jq,%%c_jqs+=%%c_jq
- if !%%b_jq! lss !%%c_jq! set /a %%b_jf-=1,%%c_jf+=2
- if !%%b_jq! gtr !%%c_jq! set /a %%b_jf+=2,%%c_jf-=1
- set "k=%%b VS %%c "
- echo !k:~,15!比分!%%b_jq!:!%%c_jq!%tab%!hmd!&echo.&set "hmd="
- )
- )
- for %%b in (!str!) do (
- set "_!%%b_jf!_!%%b_js!_!%%b_jqs!_!pm_%%b!=%%b"
- echo %%b积!%%b_jf!分,竞胜球!%%b_js!个&echo.
- )
- for /f "tokens=5 delims=_=" %%b in ('set _') do (
- set /a n+=1,m=5-n
- set "%%a_jg=%%b小组第!m! !%%a_jg!"
- if "!m!" leq "2" set "%%a_cx=%%b !%%a_cx!"
- )
- echo %%a组结果:!%%a_jg!&set /a n=0
- for /f "delims==" %%b in ('set _') do set "%%b="
- echo 请按键继续&pause>nul
- )
- cls&echo 本届世界杯十六强如下:&echo.
- for %%a in (A B C D E F G H) do echo %%a组:!%%a_cx!&echo.
- echo 请按键继续&pause>nul
- :::::::::小组赛:::::::::
-
- :::::::::八分一决赛:::::::::
- rem 按世界杯规则分别由相临两组的四支队伍进行淘汰赛,由前小组第一对阵后小组第二,后小组第一对阵前小组第二,如比赛比分一样则用点球决胜负(5个一组),胜者进入四分一决赛;当两队世界排名相差超过10位弱胜强即为出现黑马,黑马出现概率为1/16。
- cls&echo 八分之一决赛赛况:&echo.
- for %%a in (A-B C-D E-F G-H) do (
- set "str=%%a"&set "str=!str:-= !"&set /a n=0
- for %%b in (!str!) do (
- set /a n+=1,m=0
- for %%c in (!%%b_cx!) do (
- set /a m+=1
- if !n! equ 1 (
- if !m! equ 1 (
- set "pk1=%%c !pk1!"
- ) else (
- set "pk2=!pk2! %%c"
- )
- ) else (
- if !m! equ 1 (
- set "pk2=!pk2!-%%c"
- ) else (
- set "pk1=%%c-!pk1!"
- )
- )
- )
- )
- for %%a in (!pk1! !pk2!) do (
- for /f "tokens=1,2 delims=-" %%b in ("%%a") do (
- set /a a=!random!%%20,b=5
- if !a! equ 0 set /a b=9
- set /a a=!random!%%!b!,%%b_jq=a,b=!random!%%!b!,%%c_jq=b,sl=pm_%%c-pm_%%b,hm=100
- if !sl! gtr 10 (
- if !a! gtr !b! set /a %%b_jq=a,%%c_jq=b
- if !a! lss !b! set /a %%b_jq=b,%%c_jq=a
- set /a hm=!random!%%16
- if !hm! equ 0 (
- if !a! gtr !b! set /a %%b_jq=b,%%c_jq=a
- if !a! lss !b! set /a %%b_jq=a,%%c_jq=b
- )
- )
- if !sl! lss -10 (
- if !a! gtr !b! set /a %%b_jq=b,%%c_jq=a
- if !a! lss !b! set /a %%b_jq=a,%%c_jq=b
- set /a hm=!random!%%16
- if !hm! equ 0 (
- if !a! gtr !b! set /a %%b_jq=a,%%c_jq=b
- if !a! lss !b! set /a %%b_jq=b,%%c_jq=a
- )
- )
- set "k=%%b VS %%c "
- if !%%b_jq! equ !%%c_jq! (
- set "dq=(点球)"
- set /a %%b_jq=0,%%c_jq=0
- for /l %%d in (1,1,10) do (
- if !%%b_jq! equ !%%c_jq! for /l %%e in (1,1,5) do set /a %%b_jq+=!random!%%2,%%c_jq+=!random!%%2
- )
- )
- set "tem8=!tem8! %%b"&set "sc=%%b"
- if !%%b_jq! lss !%%c_jq! set "tem8=!tem8:%%b=! %%c"&set "sc=%%c"
- if !hm! equ 0 set "hmd=(黑马)"
- echo !k:~,15!比分!%%b_jq!:!%%c_jq!!dq!%tab%!sc!!hmd!胜出&echo.&set "dq="&set "sc="&set "hmd="
- )
- )
- set "pk1="&set "pk2="
- )
- echo 请按键继续&pause>nul
- cls&echo 本届世界杯八强如下:&echo.
- for %%a in (%tem8%) do echo %%a&echo.
- echo 请按键继续&pause>nul
- :::::::::八分一决赛:::::::::
-
- :::::::::四分之一决赛:::::::::
- rem 按世界杯规则,八队中以抽签分成四组两两对决,如比赛比分一样则用点球决胜负(5个一组),胜者进入半决赛;当两队世界排名相差超过10位弱胜强即为出现黑马,黑马出现概率为1/8。
- cls&echo 四分之一赛况:&echo.
- for %%a in (%tem8%) do set "_!random!_%%a=%%a"
- set /a n=0
- for /f "tokens=2 delims==" %%a in ('set _') do (
- set /a n+=1&set "pk=!pk!-%%a"
- if !n! equ 2 (
- for /f "tokens=1,2 delims=-" %%b in ("!pk!") do (
- set /a a=!random!%%20,b=5
- if !a! equ 0 set /a b=9
- set /a a=!random!%%!b!,%%b_jq=a,b=!random!%%!b!,%%c_jq=b,sl=pm_%%c-pm_%%b,hm=100
- if !sl! gtr 10 (
- if !a! gtr !b! set /a %%b_jq=a,%%c_jq=b
- if !a! lss !b! set /a %%b_jq=b,%%c_jq=a
- set /a hm=!random!%%8
- if !hm! equ 0 (
- if !a! gtr !b! set /a %%b_jq=b,%%c_jq=a
- if !a! lss !b! set /a %%b_jq=a,%%c_jq=b
- )
- )
- if !sl! lss -10 (
- if !a! gtr !b! set /a %%b_jq=b,%%c_jq=a
- if !a! lss !b! set /a %%b_jq=a,%%c_jq=b
- set /a hm=!random!%%8
- if !hm! equ 0 (
- if !a! gtr !b! set /a %%b_jq=a,%%c_jq=b
- if !a! lss !b! set /a %%b_jq=b,%%c_jq=a
- )
- )
- set "k=%%b VS %%c "
- if !%%b_jq! equ !%%c_jq! (
- set "dq=(点球)"
- set /a %%b_jq=0,%%c_jq=0
- for /l %%d in (1,1,10) do (
- if !%%b_jq! equ !%%c_jq! for /l %%e in (1,1,5) do set /a %%b_jq+=!random!%%2,%%c_jq+=!random!%%2
- )
- )
- set "tem4=!tem4! %%b"&set "sc=%%b"
- if !%%b_jq! lss !%%c_jq! set "tem4=!tem4:%%b=! %%c"&set "sc=%%c"
- if !hm! equ 0 set "hmd=(黑马)"
- echo !k:~,15!比分!%%b_jq!:!%%c_jq!!dq!%tab%!sc!!hmd!胜出&echo.&set "dq="&set "sc="&set "hmd="
- )
- set /a n=0&set "pk="
- )
-
- )
- echo 请按键继续&pause>nul
- for /f "delims==" %%a in ('set _') do set "%%a="
- cls&echo 本届世界杯四强如下:&echo.
- for %%a in (%tem4%) do echo %%a&echo.
- echo 请按键继续&pause>nul
- :::::::::四分之一决赛:::::::::
-
- :::::::::半决赛:::::::::
- rem 按世界杯规则,四队中以抽签分成两组两两对决,如比赛比分一样则用点球决胜负(5个一组),胜者进入决赛;当两队世界排名相差超过5位弱胜强即为出现黑马,黑马出现概率为1/4。
- cls&echo 半决赛赛况:&echo.
- for %%a in (%tem4%) do set "_!random!_%%a=%%a"
- set /a n=0
- for /f "tokens=2 delims==" %%a in ('set _') do (
- set /a n+=1&set "pk=!pk!-%%a"
- if !n! equ 2 (
- for /f "tokens=1,2 delims=-" %%b in ("!pk!") do (
- set /a a=!random!%%20,b=5
- if !a! equ 0 set /a b=9
- set /a a=!random!%%!b!,%%b_jq=a,b=!random!%%!b!,%%c_jq=b,sl=pm_%%c-pm_%%b,hm=100
- if !sl! gtr 5 (
- if !a! gtr !b! set /a %%b_jq=a,%%c_jq=b
- if !a! lss !b! set /a %%b_jq=b,%%c_jq=a
- set /a hm=!random!%%4
- if !hm! equ 0 (
- if !a! gtr !b! set /a %%b_jq=b,%%c_jq=a
- if !a! lss !b! set /a %%b_jq=a,%%c_jq=b
- )
- )
- if !sl! lss -5 (
- if !a! gtr !b! set /a %%b_jq=b,%%c_jq=a
- if !a! lss !b! set /a %%b_jq=a,%%c_jq=b
- set /a hm=!random!%%4
- if !hm! equ 0 (
- if !a! gtr !b! set /a %%b_jq=a,%%c_jq=b
- if !a! lss !b! set /a %%b_jq=b,%%c_jq=a
- )
- )
- set "k=%%b VS %%c "
- if !%%b_jq! equ !%%c_jq! (
- set "dq=(点球)"
- set /a %%b_jq=0,%%c_jq=0
- for /l %%d in (1,1,10) do (
- if !%%b_jq! equ !%%c_jq! for /l %%e in (1,1,5) do set /a %%b_jq+=!random!%%2,%%c_jq+=!random!%%2
- )
- )
- set "tem2=!tem2! %%b"&set "sc=%%b"
- if !%%b_jq! lss !%%c_jq! set "tem2=!tem2:%%b=! %%c"&set "sc=%%c"
- if !hm! equ 0 set "hmd=(黑马)"
- echo !k:~,15!比分!%%b_jq!:!%%c_jq!!dq!%tab%!sc!!hmd!胜出&echo.&set "dq="&set "sc="&set "hmd="
- )
- set /a n=0&set "pk="
- )
-
- )
- echo 请按键继续&pause>nul
- for /f "delims==" %%a in ('set _') do set "%%a="
- cls&echo 本届世界杯决赛队伍如下:&echo.
- for %%a in (%tem2%) do echo %%a&echo.
- :::::::::半决赛:::::::::
-
- :::::::::决赛:::::::::
- rem 颠峰对决,如比赛比分一样则用点球决胜负(5个一组),胜者夺得本届世界杯冠军;当两队世界排名相差超过5位弱胜强即为出现黑马,黑马出现概率为1/4。
- cls&echo 决赛赛况:&echo.
- for %%a in (%tem2%) do set "pk=!pk!-%%a"
- for /f "tokens=1,2 delims=-" %%b in ("%pk%") do (
- set /a a=!random!%%20,b=5
- if !a! equ 0 set /a b=9
- set /a a=!random!%%!b!,%%b_jq=a,b=!random!%%!b!,%%c_jq=b,sl=pm_%%c-pm_%%b,hm=100
- if !sl! gtr 5 (
- if !a! gtr !b! set /a %%b_jq=a,%%c_jq=b
- if !a! lss !b! set /a %%b_jq=b,%%c_jq=a
- set /a hm=!random!%%4
- if !hm! equ 0 (
- if !a! gtr !b! set /a %%b_jq=b,%%c_jq=a
- if !a! lss !b! set /a %%b_jq=a,%%c_jq=b
- )
- )
- if !sl! lss -5 (
- if !a! gtr !b! set /a %%b_jq=b,%%c_jq=a
- if !a! lss !b! set /a %%b_jq=a,%%c_jq=b
- set /a hm=!random!%%4
- if !hm! equ 0 (
- if !a! gtr !b! set /a %%b_jq=a,%%c_jq=b
- if !a! lss !b! set /a %%b_jq=b,%%c_jq=a
- )
- )
- set "k=%%b VS %%c "
- if !%%b_jq! equ !%%c_jq! (
- set "dq=(点球)"
- set /a %%b_jq=0,%%c_jq=0
- for /l %%d in (1,1,10) do (
- if !%%b_jq! equ !%%c_jq! for /l %%e in (1,1,5) do set /a %%b_jq+=!random!%%2,%%c_jq+=!random!%%2
- )
- )
- set "sc=%%b"
- if !%%b_jq! lss !%%c_jq! set "sc=%%c"
- if !hm! equ 0 set "hmd=(黑马)"
- echo !k:~,15!比分!%%b_jq!:!%%c_jq!!dq!%tab%!sc!!hmd!胜出&echo.&set "dq="
- )
- )
- echo 请按键继续&pause>nul
- cls&echo 本届世界杯冠军为:%sc% &echo.
- :::::::::决赛:::::::::
-
- echo 请按键继续&pause>nul
复制代码
|