话说,某位老师对 OIer 们打游戏表示灰常滴反感,某位抑郁的 AU 爱好者 OIer ,一时抑郁,就诞生了如下产物......
山寨版的 pas AU。
program au;
uses dos;
const kk:array[0..7]of string=(' ^ ',' v ',' < ',' > ',' /` ',' ./ ',' `\ ',' \. ');
var hh,mm,ss,sec100:word;
r,s,k:integer;
time,time0:int64;
sss:boolean;
p,pp:integer;
i,j:integer;
ans,ans0:string;
mark:array[1..5]of integer;
Label 1;
begin
1:randomize;
fillchar(mark,sizeof(mark),0);
writeln('rank(bpm):');
readln(r);
writeln('style(0-->crazy;1-->normal):');
readln(s);
writeln('4-->4K;8-->8K');
readln(k);
r:=260-r;
r:=r div 50;
sss:=(s=0);
writeln('read 5 for start');
repeat
read(s);
until s=5;
p:=0;
repeat
inc(p);
ans:='';
ans0:='';
if p>1 then begin
for i:=1 to 6 do
begin
pp:=random(k);
write(kk[pp]);
case pp of
0:ans0:=ans0+'8';
1:ans0:=ans0+'2';
2:ans0:=ans0+'4';
3:ans0:=ans0+'6';
4:ans0:=ans0+'9';
5:ans0:=ans0+'1';
6:ans0:=ans0+'7';
7:ans0:=ans0+'3';
end;
end;
writeln; end;
gettime(hh,mm,ss,sec100);
time0:=mm*60+ss;
ans:='';
readln(ans);
gettime(hh,mm,ss,sec100);
time:=mm*60+ss;
if ans<>'' then
if ans<>ans0 then begin writeln('Miss');inc(mark[5]);end
else
if time-time0<=r then begin writeln('Perfect');inc(mark[1]);end
else if time-time0<=r+1 then begin writeln('Great');inc(mark[2]);end
else if time-time0<=r+2 then begin writeln('Cool');inc(mark[3]);end
else if time-time0<=r+3 then begin writeln('Bad');inc(mark[4]);end
else begin writeln('Miss');inc(mark[5]);end;
time:=0;
time0:=0;
until p>=11;
if sss then
begin
for j:=7 to 11 do
begin
ans:='';
ans0:='';
for i:=1 to j do
begin
pp:=random(k);
write(kk[pp]);
case pp of
0:ans0:=ans0+'8';
1:ans0:=ans0+'2';
2:ans0:=ans0+'4';
3:ans0:=ans0+'6';
4:ans0:=ans0+'9';
5:ans0:=ans0+'1';
6:ans0:=ans0+'7';
7:ans0:=ans0+'3';
end;
end;
writeln;
gettime(hh,mm,ss,sec100);
time0:=mm*60+ss;
ans:='';
readln(ans);
gettime(hh,mm,ss,sec100);
time:=mm*60+ss;
if ans<>'' then
if ans<>ans0 then begin writeln('Miss');inc(mark[5]);end
else
if time-time0<=r then begin writeln('Perfect');inc(mark[1]);end
else if time-time0<=r+1 then begin writeln('Great');inc(mark[2]);end
else if time-time0<=r+2 then begin writeln('Cool');inc(mark[3]);end
else if time-time0<=r+3 then begin writeln('Bad');inc(mark[4]);end
else begin writeln('Miss');inc(mark[5]);end;
time:=0;
time0:=0;
end;
writeln('Crazy time');
for j:=1 to 10 do
begin
ans:='';
ans0:='';
for i:=1 to 11 do
begin
pp:=random(k);
write(kk[pp]);
case pp of
0:ans0:=ans0+'8';
1:ans0:=ans0+'2';
2:ans0:=ans0+'4';
3:ans0:=ans0+'6';
4:ans0:=ans0+'9';
5:ans0:=ans0+'1';
6:ans0:=ans0+'7';
7:ans0:=ans0+'3';
end;
end;
writeln;
gettime(hh,mm,ss,sec100);
time0:=mm*60+ss;
ans:='';
readln(ans);
gettime(hh,mm,ss,sec100);
time:=mm*60+ss;
if ans<>'' then
if ans<>ans0 then begin writeln('Miss');inc(mark[5]);end
else
if time-time0<=r then begin writeln('Perfect');inc(mark[1]);end
else if time-time0<=r+1 then begin writeln('Great');inc(mark[2]);end
else if time-time0<=r+2 then begin writeln('Cool');inc(mark[3]);end
else if time-time0<=r+3 then begin writeln('Bad');inc(mark[4]);end
else begin writeln('Miss');inc(mark[5]);end;
time:=0;
time0:=0;
end;
writeln('End!');
writeln('Perfect:',mark[1]);
writeln('Great:',mark[2]);
writeln('Cool:',mark[3]);
writeln('Bad:',mark[4]);
writeln('Miss:',mark[5]);
end;
if not sss then
begin
for j:=1 to 35 do
begin
ans:='';
ans0:='';
for i:=1 to random(3)+6 do
begin
pp:=random(k);
write(kk[pp]);
case pp of
0:ans0:=ans0+'8';
1:ans0:=ans0+'2';
2:ans0:=ans0+'4';
3:ans0:=ans0+'6';
4:ans0:=ans0+'9';
5:ans0:=ans0+'1';
6:ans0:=ans0+'7';
7:ans0:=ans0+'3';
end;
end;
writeln;
gettime(hh,mm,ss,sec100);
time0:=mm*60+ss;
ans:='';
readln(ans);
gettime(hh,mm,ss,sec100);
time:=mm*60+ss;
if ans<>'' then
if ans<>ans0 then begin writeln('Miss');inc(mark[5]);end
else
if time-time0<=r then begin writeln('Perfect');inc(mark[1]);end
else if time-time0<=r+1 then begin writeln('Great');inc(mark[2]);end
else if time-time0<=r+2 then begin writeln('Cool');inc(mark[3]);end
else if time-time0<=r+3 then begin writeln('Bad');inc(mark[4]);end
else begin writeln('Miss');inc(mark[5]);end;
time:=0;
time0:=0;
end;
writeln('End!');
writeln('Perfect:',mark[1]);
writeln('Great:',mark[2]);
writeln('Cool:',mark[3]);
writeln('Bad:',mark[4]);
writeln('Miss:',mark[5]);
end;
writeln('5 for exit. 0 for replay.');
repeat
read(p);
until (p=5) or (p=0);
if p=0 then goto 1
else halt;
end.
这个东东,支持 4K、8K(4方向、8方向),支持同步舞蹈和 Crazy-11,速度不满意可以自己修改参数,还支持修改 BPM 。(再加个音乐就完美了 T_T)
好吧,就素这样,各位寂寞的 OIer 可以试试看。
PS:AU 学名 劲舞团。。。。。。