Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior |
editor_de_arenas [2025/04/02 17:56] – [Configurações Avançadas de Arena] admin | editor_de_arenas [2025/04/15 16:34] (atual) – edição externa 127.0.0.1 |
---|
O objeto JSON de pontuação é utilizado para configurar a pontuação dos ladrilhos e penalidades na arena. Ele segue o seguinte padrão: | O objeto JSON de pontuação é utilizado para configurar a pontuação dos ladrilhos e penalidades na arena. Ele segue o seguinte padrão: |
| |
<code json> | <code javascript> |
{ | { |
"points": 0, | "points": 0, |
"multiplier": 1, | "multiplier": 1, |
"attempt_points": [], | "attempt_points": [], |
"attempt_multipliers": [] | "attempt_multipliers": [] |
} | } |
</code> | </code> |
| |
"points": Define a pontuação base do ladrilho ou penalidade. | * ''"points":'' Define a pontuação base do ladrilho ou penalidade. |
"multiplier": Define o multiplicador de pontuação. | * ''"multiplier"'': Define o multiplicador de pontuação. |
"attempt_points": Permite definir pontuações diferentes para cada tentativa. Por exemplo, [5, 4, 3] atribui 5 pontos na primeira tentativa, 4 na segunda e 3 na terceira. Tentativas subsequentes ignoram essa configuração. | * ''"attempt_points"'': Permite definir pontuações diferentes para cada tentativa. Por exemplo, **''[5, 4, 3]''** atribui 5 pontos na primeira tentativa, 4 na segunda e 3 na terceira. Tentativas subsequentes ignoram essa configuração. |
"attempt_multipliers": Semelhante a "attempt_points", mas para multiplicadores. | * ''"attempt_multipliers"'': Semelhante a "attempt_points", mas para multiplicadores. |
As propriedades "penalty", embora utilizem esse objeto de pontuação, aplicam valores negativos, representando penalidades. | * As propriedades "penalty" ilustradas abaixo, utilizam este mesmo objeto de pontuação, logo sendo necessário aplicar valores negativos de pontos (ou decimais de multiplicadores) para de fato representarem penalidades. |
| |
==== Configurações Avançadas de Arena ==== | ==== Configurações Avançadas de Arena ==== |
"time_of_day": "15:00", // Horário do dia (6:00 - 18:00), controla a posição do sol | "time_of_day": "15:00", // Horário do dia (6:00 - 18:00), controla a posição do sol |
"time_limit_minutes": 5, // Limite de tempo em minutos | "time_limit_minutes": 5, // Limite de tempo em minutos |
| "hard_evacuation_point": false, // Área de resgate difícil (falso: N1, difícil: N2) |
</code> | </code> |
| |
"path_arena": true, // Indica se a arena possui um trajeto definido | "path_arena": true, // Indica se a arena possui um trajeto definido |
"ignore_dead_victim_if_any_living_left": true, // Ignora pontuação das vítimas mortas se houverem vivas | "ignore_dead_victim_if_any_living_left": true, // Ignora pontuação das vítimas mortas se houverem vivas |
| "advance_button": false, // Deixa o botão "Avançar" sempre habilitado, caso contrário vai usar o threshold |
</code> | "skip_path_threshold": 3, // Número de tentativas para habilitar o "pulo de trilha" (avançar) |
| "end_on_endgoal": true, // Rotina termina ao atingir o ladrilho final |
**Depreciado:** | "advance_penalty": 0, // Número de segundos que é preciso esperar depois de uma nova tentativa para clicar em "nova tentativa" |
<code javascript> | "max_time_if_incomplete": true, // Rotinas incompletas levam o tempo máximo (5 minutos, 7, etc) |
| "lack_of_progress": true, // Habilita penalidades por falta de progresso |
| "scoring": true, // Habilita pontuação |
| "force_advance": false, // Força o avanço para o próximo trajeto após o threshold |
| "randomize_victim_position": true, // Randomiza a posição das vítimas |
| "end_on_rescue_victims": false, // Rotina termina ao resgatar todas as vítimas |
| "short_lack_of_progress_time": 10, // Tempo para o contador "leve" da falha de progresso |
| "long_lack_of_progress_time": 50, // Tempo para o contador "grave" da falha de progresso |
| "ramp_entrance_score": { ... }, // Pontuação ao entrar em qualquer rampa na arena |
| "ramp_exit_score": { ... }, // Pontuação ao sair de qualquer rampa na arena |
| "use_rescue_checkpoint_lack_of_progress_penalty": true, // Habilita penalidade por cada falha de progresso na rotina para deduzir do ladrilho final |
| "end_goal_lack_of_progress_penalty": { ... }, // Valor da penalidade por cada falha de progresso para deduzir do ladrilho final |
| "rescue_checkpoint_lack_of_progress_penalty": 0.025, // Valor da penalidade de multiplicadores por falha de progresso em trechos que contém sala de resgate |
| "path_size_checkpoint_entrance_score": { ... }, // Pontuação que será atribuida ao entrar em um checkpoint pelo tamanho do trajeto que foi concluído. Valor padrão é 5,3,1 pois na primeira tentativa sera 5*numero de ladrilhos de um determinado trajeto |
| "path_size_checkpoint_exit_score": { ... }, // Pontuação que será atribuida ao sair de um checkpoint pelo tamanho do trajeto anterior que foi concluído. |
</code> | </code> |
| |
<code javascript> | <code javascript> |
"change_position_in_routine": false, // Permite alterar a posição e depurar o robô durante a rotina | "change_position_in_routine": false, // Permite alterar a posição e depurar o robô durante a rotina |
| "robot_constraints": { // Restrições do robô, permite que a arena limite os robôs para criar verdadeiros desafios |
| "use_constraints": false, // Habilita restrições |
| "constraints_violation_penalty": { ... }, // Penalidade por violar de restrições, pode ser 999 pontos ou qualquer valor escolhido |
| "max_price": 50, // Preço máximo do robô, use -1 para ignorar restrição |
| "max_weight": 100, // Peso máximo do robô, use -1 para ignorar restrição |
| "max_ultrasonic": 10, // Número máximo de sensores ultrassônicos, use -1 para ignorar restrição |
| "max_servomotor": 10, // Número máximo de servomotores, use -1 para ignorar restrição |
| "max_light": 10, // Número máximo de sensores de luz, use -1 para ignorar restrição |
| "max_buzzer": 10, // Número máximo de buzzers, use -1 para ignorar restrição |
| "max_color": 10, // Número máximo de sensores de cor, use -1 para ignorar restrição |
| "max_touch": 10, // Número máximo de sensores de toque, use -1 para ignorar restrição |
| "max_camera": 10, // Número máximo de câmeras, use -1 para ignorar restrição |
| "max_pen": 10 // Número máximo de canetas, use -1 para ignorar restrição |
| } |
</code> | </code> |
| |
**Pedagógico:** | **Incompletos:** |
<code javascript> | <code javascript> |
| "use_medals": false, // Utiliza o sistema de medalhas para pontuar |
</code> | </code> |
| |
**Incompletos:** | **Depreciado:** |
<code javascript> | <code javascript> |
| "start_with_rescue_kit": false, // Robô inicia com kit de resgate no início da rodada |
| "starter_rescue_kit_score": { ... }, // Pontuação por entregar kit de resgate inicial |
| "return_rescue_kits_with_robot": true, // Kits de resgate retornam com o robô em novas tentativas |
| "randomize_safe_area": false, // Randomiza uma área de resgate (incompatível com múltiplas áreas de resgate) |
| "multiplier_powered_by_victims_rescued": false, // Antigo cálculo para atribuição de multiplicadores |
| "placeable_checkpoints": 0, // Número de checkpoints posicionáveis manualmente |
| "placeable_checkpoint_entrance_score": { ... }, // Pontuação ao entrar em checkpoint posicionado manualmente |
| "placeable_checkpoint_exit_score": { ... }, // Pontuação ao sair de checkpoint posicionado manualmente |
| "placeable_checkpoint_margin": 0, // Margem de ladrilhos para posicionar outro checkpoint manualmente |
</code> | </code> |
| |
<code javascript> | > //Funções depreciadas não necessariamente não funcionam (a verdade é que todas elas funcionam se configuradas corretamente), apenas deixaram de serem utilizadas pela OBR e não oferecemos mais suporte. |
"advance_button": false, // Habilita o botão "Avançar" | |
"start_with_rescue_kit": false, // Robô inicia com kit de resgate | |
"return_rescue_kits_with_robot": true, // Kits de resgate retornam com o robô | |
"use_medals": false, // Utiliza medalhas na pontuação | |
"max_time_if_incomplete": true, // Define tempo máximo para rotinas incompletas | |
"hard_evacuation_point": false, // Ponto de evacuação difícil | |
"lack_of_progress": true, // Habilita penalidades por falta de progresso | |
"scoring": true, // Habilita pontuação | |
"force_advance": false, // Força o avanço para o próximo trajeto | |
"placeable_checkpoints": 0, // Número de checkpoints posicionáveis | |
"placeable_checkpoint_margin": 0, // Margem para posicionamento de checkpoints | |
"end_on_endgoal": true, // Rotina termina ao atingir o objetivo final | |
"randomize_safe_area": false, // Randomiza a área segura | |
"randomize_victim_position": true, // Randomiza a posição das vítimas | |
"end_on_rescue_victims": false, // Rotina termina ao resgatar todas as vítimas | |
"advance_penalty": 0, // Penalidade por avançar para o próximo trajeto | |
"skip_path_threshold": 3, // Limite para pular ladrilhos no trajeto | |
"short_lack_of_progress_time": 10, // Tempo para falta de progresso leve | |
"long_lack_of_progress_time": 50, // Tempo para falta de progresso grave | |
"end_goal_lack_of_progress_penalty": { ... }, // Penalidade por falta de progresso no objetivo final | |
"ramp_entrance_score": { ... }, // Pontuação ao entrar na rampa | |
"ramp_exit_score": { ... }, // Pontuação ao sair da rampa | |
"use_rescue_checkpoint_lack_of_progress_penalty": true, // Habilita penalidade por falta de progresso em checkpoints de resgate | |
"rescue_checkpoint_lack_of_progress_penalty": 0.025, // Valor da penalidade por falta de progresso em checkpoints de resgate | |
"placeable_checkpoint_entrance_score": { ... }, // Pontuação ao entrar em checkpoint posicionável | |
"placeable_checkpoint_exit_score": { ... }, // Pontuação ao sair de checkpoint posicionável | |
"path_size_checkpoint_entrance_score": { ... }, // Pontuação ao entrar em checkpoint de tamanho de trajeto | |
"path_size_checkpoint_exit_score": { ... }, // Pontuação ao sair de checkpoint de tamanho de trajeto | |
"starter_rescue_kit_score": { ... }, // Pontuação por kit de resgate inicial | |
"multiplier_powered_by_victims_rescued": false, // Multiplicador baseado no número de vítimas resgatadas | |
"@1": "Robot Constraints", // Indica o início das restrições do robô | |
"#1": "Use -1 to ignore a specific constraint.", // Instrução para ignorar restrições | |
"robot_constraints": { // Restrições do robô | |
"use_constraints": false, // Habilita restrições | |
"constraints_violation_penalty": { ... }, // Penalidade por violação de restrições | |
"max_price": 50, // Preço máximo do robô | |
"max_weight": 100, // Peso máximo do robô | |
"max_ultrasonic": 10, // Número máximo de sensores ultrassônicos | |
"max_servomotor": 10, // Número máximo de servomotores | |
"max_light": 10, // Número máximo de sensores de luz | |
"max_buzzer": 10, // Número máximo de buzzers | |
"max_color": 10, // Número máximo de sensores de cor | |
"max_touch": 10, // Número máximo de sensores de toque | |
"max_camera": 10, // Número máximo de câmeras | |
"max_pen": 10 // Número máximo de canetas | |
} | |
</code> | |