sBotics Wiki

Tutorial do Simulador usado pela OBR

Ferramentas do usuário

Ferramentas do site


editor_de_arenas

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
editor_de_arenas [2025/04/02 17:56] – [Configurações Avançadas de Arena] admineditor_de_arenas [2025/04/15 16:34] (atual) – edição externa 127.0.0.1
Linha 25: Linha 25:
 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 abaixoutilizam 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 ====
Linha 51: Linha 51:
 "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>
  
Linha 58: Linha 59:
 "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>
  
Linha 68: Linha 83:
 <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 (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 á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>+
editor_de_arenas.1743616600.txt.gz · Última modificação: 2025/04/15 16:34 (edição externa)