AU AU AU

话说,某位老师对 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  学名 劲舞团。。。。。。

原文地址:https://www.cnblogs.com/SueMiller/p/2120536.html