DCS Laboratory 1
トーナメントの手順


注意事項

  1. プログラムを変更してはいけない.

  2. 以下で,コンパイル時もしくは実行時にエラーが出た場合は,エラーの 原因となったプログラムの負けとする.双方にエラーがある場合,引き分けと し,勝負が決まらない場合はジャンケンで決着する.

トーナメントの各対戦は以下のように進める.以下では,学籍番号b1201050の 学生とb1201032の学生が対戦する場合を例として説明する.
優勝者が決まるまでトーナメント表にそって下記の1から5を繰り返す.

  1. ginga01.fun.ac.jpにsshでログインする.

  2. 各人のホームディレクトリの下に作業用ディレクト(例えば "~/DCS/lab1"など)を作成し,そこに移動する.

  3. 以下の手順で両方の学生のソースファイルを上記の作業ディレクトリにコ ピーし(その時に間違わないように名前を変えること),以下の手順で実行可能ファイルを二つ作りる.実行可能ファイルの名前 は,b1201032の学生の predator.c と b1201050のprey.c を対戦させる場合, "032050"とする.逆の組合わせの場合は "050032"である
    % cp /export/home/Fun/DCS/2023/lab/1/b1201032/predator.c 032predator.c
      
    % cp /export/home/Fun/DCS/2023/lab/1/b1201032/predator.c 032prey.c
    
    % cp /export/home/Fun/DCS/2023/lab/1/b1201050/predator.c 050predator.c
    
    % cp /export/home/Fun/DCS/2023/lab/1/b1201050/prey.c 050prey.c
    
    % gcc -o 032050 pursuit.c 032predator.c 050prey.c -lpthread -std=c99
    
    % gcc -o 050032 pursuit.c 050predator.c 032prey.c -lpthread -std=c99
    
    

    コンパイル時に警告がたくさん出て煩わしい場合は gcc に "-std=c99" というオプションを与えるとうまくいくかも知れない.

  4. トーナメント用バトルフィールド (/export/home/Fun/DCS/2023/lab/1/battlefield.dat)を作業ディレクトリにコピーする.
    % cp /export/home/Fun/DCS/2023/lab/1/battlefield.dat .
    
    

  5. 交互に対戦させる.対戦の結果(どちらが何クロックで勝ったか,もしく は引き分けた場合はpredatorとpreyのマンハッタン距離など)は記録しておくこと.
    % ./032050
    % ./050032
    

  6. 勝敗は以下で決める.
    1. 2勝した者の勝ち
    2. 1勝1負の引き分けの場合,各学生につ いて,preyで逃げた時のクロック数からpredatorで追いかけた時のクロック数 を引き,その値が大きい者の勝ち
    3. 上記の値が同一の場合,各学生について,preyで逃げた時のゲーム終了時の prey-predator間のマンハッタン距離から,predator追いかけた時の ゲーム終了時のprey-predator間のマンハッタン距離を引き,その値が大きい 者の勝ち.

  7. 結果を白板のトーナメント表に記録する.

...Return