Closed13

Deno 製 ロボコンスコアリングサーバーを改造

hideharahidehara

違い

岸和田の

コース

スタート地点より:山ゾーン、街ゾーン(国道26号線)、海ゾーン

ルール

  • 激レアボール x 1個
  • レアボール x 3個
  • たまご ... なし

部門

  • 1部門のみ

予選・決勝

  • 競技時間 ... 3分
  • 予選 ... 3コース, コース毎にリーグ戦
  • 決勝 ... 1コース, トーナメント戦
hideharahidehara

とりあえず、リソース中の文字列置換。

static % grep -R かに * | awk -F: '{ print $1 }' | sort | uniq | xargs sed -i "" -e "s/かにロボ/岸和田ロボ/g"
static % grep -R 越前がにロボ * | awk -F: '{ print $1 }' | sort | uniq | xargs sed -i "" -e "s/越前がにロボ/岸和田ロボ/g"

score.html

  • 地球 -> 山
  • 惑星 -> 海
  • などなど
hideharahidehara

TODO : 変更

  • 部門数の変更1:2から1に → data/entry.csv
  • 部門数の変更2:2から1に → match1 などの各種コードへの反映も必要
  • 予選リーグの振り分け : 同じステージ(リーグ)で左右やる → match1.html
  • スコア計算ロジック 各要素の加点スコアの違いの反映など → score.html

TODO : 新規?

  • 参加者ごとに所属リーグの決定 → data/entry.csv
    • 現在 : T は AステージとBステージ。K は Cステージ
hideharahidehara

data/entry.csv

  • id
  • category ... T : エントリー部門(旧: 低学年) , K : 歩行部門(旧:高学年)
  • teamname
  • name1,kana1,school1
  • name2,kana2,school2
  • club
hideharahidehara

設定

  • Settings.js
    • getTitle
    • getGroup
    • getNumberOfMatch : 部門別の決勝進出チーム数がでる (デフォルト : 8)

フロー

  • エントリー受付 , entry.html
    • entry.csv の一覧を読み込み、来場してエントリーしたかをチェック
  • 予選対戦表 → 試合(予選), match1.html
    • エントリー受付したゼッケン番号と部門分けをして、予選リーグを作成する
    • <各予選を行う> → 各チームのポイントが入る
  • 予選結果 → 決勝トーナメント生成 , result1.html
    • エントリー、歩行部門別に規定数が揃うと作成が可能
  • 決勝対戦表 → 試合(決勝), match2.html
    • 決勝を行う
    • <決勝を行う> → 各チームのポイントが入る
  • エキシビジョンマッチ, score.html
    • スコアボード
    • タイマーを押すと、カウントダウンが開始
    • 各種チェックボックスを押して、スコア加算
hideharahidehara

エキシビジョンマッチ, score.html

  • 要素のフォーマット p1c0
    • p1 ... プレイヤー1, p2 ... プレイヤー2
  • 要素の参照 get(p + "c" + j)
  • 要素の数を設定 var lastpnt
  • 要素の配点は関数で実装 var init2 = function()
得点:かに 本戦最大14(行って帰って 6 + 先ゴール 1 + レア 4 + 激レア 1 + 歩行2)
c0. 地球をでた	1
c1. ミルキーウェイ 1
c2. 惑星ゾーン	1
c3. たまご	1
c4. 地球ゾーン帰還	2
c5. ゴール	1	本線のみ、予選ではタイム表示、スコア加算なし?
c6. レアメタル	+1 x 2, +2 x1(奥)
c7. 激レアメタル	1	本線のみ
c8. 歩行タイプボーナス	2	ゴール時
得点:岸和田 本戦最大16(行って帰って 10 + 先ゴール 1 + レア 3 + 激レア 2)
c0. 山ゾーンをでた	1
c1. 26号線をぬけた	3
c2. 海ゾーンにはいった	1
c3. 再び26号線をぬけた	3	
c4. 山ゾーン帰還	2
c5. ゴール	1	本線のみ、予選ではタイム表示、スコア加算なし?
c6 - c8. レアボール	+1 x 3
c9. 激レアボール	2	本線のみ
hideharahidehara

部門数の変更2:2から1に → match1 などの各種コードへの反映も必要

予選リーグの振り分け : 同じステージ(リーグ)で左右やる → match1.html

次は、このあたり?

※最終的に、今回は予選リーグで利用しなかったので、修正いれない。

hideharahidehara

決勝対戦表 → 試合(決勝), match2.html

決勝対戦表を出すためには、各部門最低4チームが必要

歩行部門は仮として存在させてみた。できれば、歩行部門はゼロが設定できるといいのだけれども。

エントリー部門のみを利用することにした。

hideharahidehara

公開する方法

VPS

nginx をリバースプロキシにして公開。今回は手抜きしてIPアドレス上にホストした。

Deno Deploy

https://deno.com/deploy

使ってみた。うーん、各種ライブラリが古い? or 利用制限があるライブラリがあるようで、うまく動作せず。。。

このスクラップは2022/12/04にクローズされました