Tool 对拍器

对拍:将两份代码通过输入随机数据的方式进行比较。

首先需要一份AC代码的exe(或者暴力模拟的),一份待测试代码的exe(一般就是推算法推的),一份随机数据生成器(exe,一般是rand(),不过我想学用Python写QwQ)

然后新建一个bat文件,其内容大概是:

可指定对拍次数版本:

@echo off 
::By Chorolop
::这样下面的这个bat内的内容将不显示
for /l %%i in (1,2,100) do ( ::循环语句 相当于for(int i = 1;i <= 100;i+=2) /l表示递增
    data > input.in ::都是套路
    accode < input.in > accode_output.out
    wacode < input.in > wacode_output.out
    fc accode_output.out wacode_output.out
    if errorlevel 1 pause
    if not errorlevel 1 cls
)
echo Check Completed! ::这两句可以不设
echo No difference!
pause

通用简易版本:

:again  
data > input.txt  
accode < input.txt > accode_output.txt  
test < input.txt > test_output.txt  
fc accode_output.txt test_output.txt  
if not errorlevel 1 goto again  
pause

兴致大发学会的可指定次数的循环比较版本:

@echo off
title orzLLQ
SETLOCAL ENABLEDELAYEDEXPANSION
echo Type in?
set /p i=
set ii = 1
pause
:start
    data > input.in
    accode < input.in > accode_output.out
    wacode < input.in > wacode_output.out
    fc accode_output.out wacode_output.out
    if errorlevel 1 pause
    if not errorlevel 1 cls
    set /a a=%a%+1
    if %a%==%i% (
        echo FC completed!
        pause
        exit
    )
goto :start

好的,自行取用

你可能感兴趣的:(Tool 对拍器)