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:47] admineditor_de_arenas [2025/04/15 16:34] (atual) – edição externa 127.0.0.1
Linha 7: Linha 7:
  
 {{ seletor-ladrilhos.png?600 }} {{ seletor-ladrilhos.png?600 }}
 +
 +> **Note:** No vídeo acima é possível ver a câmera sendo rotacionada para melhorar a visibilidade de alguns pontos (já que a movimentação do cursor de edição de ladrilho não é tão livre quanto a câmera do simulador). Para girar a câmera no editor, basta utilizar as teclas **''C''** e **''V''**.
 +
 +------
 +
 +**A segunda aba do editor se trata do [[Editor de Ladrilhos]], uma outra interface com outra usabilidade e conceitos, e por esta razão não foi agrupada nesta página.**
 +
 +------
  
  
Linha 17: 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 ====
  
-As seguintes configurações avançadas permitem personalizar diversos aspectos da arena:+As seguintes configurações avançadas permitem personalizar diversos aspectos da arena. **Objetos de pontuação** (explicados acima) estão representados aqui como ''{ ... }''
 + 
 +**Dados Básicos:**
  
 <code javascript> <code javascript>
-+"name": "Robocup Arena 12", // Nome da arena 
-    "name": "Robocup Arena 12", // Nome da arena +"description": "Arena", // Descrição da arena 
-    "description": "Arena", // Descrição da 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 
-    "advance_button": false, // Habilita o botão "Avançar+"hard_evacuation_point": false, // Área de resgate difícil (falso: N1, difícil: N2) 
-    "path_arena": true, // Indica se a arena possui um trajeto definido +</code> 
-    "start_with_rescue_kit": false, // Robô inicia com kit de resgate + 
-    "return_rescue_kits_with_robot": true, // Kits de resgate retornam com robô +**Importante:** 
-    "use_medals": false, // Utiliza medalhas na pontuação +<code javascript> 
-    "stop_game_on_time_limit": true, // Jogo termina ao atingir o limite de tempo +"stop_game_on_time_limit": true, // Jogo termina ao atingir o limite de tempo 
-    "change_position_in_routine": false, // Permite alterar a posição do robô durante a rotina +"path_arena": true, // Indica se a arena possui um trajeto definido 
-    "max_time_if_incomplete": true, // Define tempo máximo para rotinas incompletas +"ignore_dead_victim_if_any_living_left": true, // Ignora pontuação das vítimas mortas se houverem vivas 
-    "hard_evacuation_point": false// Ponto de evacuação difícil +"advance_button": false, // Deixa botão "Avançar" sempre habilitado, caso contrário vai usar o threshold 
-    "lack_of_progress": true, // Habilita penalidades por falta de progresso +"skip_path_threshold": 3, // Número de tentativas para habilitar o "pulo de trilha" (avançar) 
-    "scoring": true, // Habilita pontuação +"end_on_endgoal": true, // Rotina termina ao atingir o ladrilho final 
-    "force_advance": false, // Força o avanço para o próximo trajeto +"advance_penalty": 0, // Número de segundos que é preciso esperar depois de uma nova tentativa para clicar em "nova tentativa" 
-    "placeable_checkpoints": 0, // Número de checkpoints posicionáveis +"max_time_if_incomplete": true, // Rotinas incompletas levam o tempo máximo (5 minutos7, etc) 
-    "placeable_checkpoint_margin": 0, // Margem para posicionamento de checkpoints +"lack_of_progress": true, // Habilita penalidades por falta de progresso 
-    "end_on_endgoal": true, // Rotina termina ao atingir objetivo final +"scoring": true, // Habilita pontuação 
-    "randomize_safe_area": false, // Randomiza a área segura +"force_advance": false, // Força o avanço para o próximo trajeto após threshold 
-    "randomize_victim_position": true, // Randomiza a posição das vítimas +"randomize_victim_position": true, // Randomiza a posição das vítimas 
-    "end_on_rescue_victims": false, // Rotina termina ao resgatar todas as vítimas +"end_on_rescue_victims": false, // Rotina termina ao resgatar todas as vítimas 
-    "ignore_dead_victim_if_any_living_left": true, // Ignora vítimas mortas se houver vivas +"short_lack_of_progress_time": 10, // Tempo para o contador "leveda falha de progresso 
-    "advance_penalty": 0, // Penalidade por avançar para o próximo trajeto +"long_lack_of_progress_time": 50, // Tempo para o contador "grave" da falha de progresso 
-    "skip_path_threshold": 3, // Limite para pular ladrilhos no trajeto +"ramp_entrance_score": { ... }, // Pontuação ao entrar em qualquer rampa na arena 
-    "time_limit_minutes": 5, // Limite de tempo em minutos +"ramp_exit_score": { ... }, // Pontuação ao sair de qualquer rampa na arena 
-    "short_lack_of_progress_time": 10, // Tempo para falta de progresso leve +"use_rescue_checkpoint_lack_of_progress_penalty": true, // Habilita penalidade por cada falha de progresso na rotina para deduzir do ladrilho final 
-    "long_lack_of_progress_time": 50, // Tempo para falta de progresso grave +"end_goal_lack_of_progress_penalty": ... }, // Valor da penalidade por cada falha de progresso para deduzir do ladrilho final 
-    "end_goal_lack_of_progress_penalty": { ... }, // Penalidade por falta de progresso no objetivo 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 
-    "ramp_entrance_score": { ... }, // Pontuação ao entrar na rampa +"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 
-    "ramp_exit_score": { ... }, // Pontuação ao sair da rampa +"path_size_checkpoint_exit_score": { ... }, // Pontuação que será atribuida ao sair de um checkpoint pelo tamanho do trajeto anterior que foi concluído. 
-    "use_rescue_checkpoint_lack_of_progress_penalty": true, // Habilita penalidade por falta de progresso em checkpoints de resgate +</code> 
-    "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 +**Pedagógico:** 
-    "placeable_checkpoint_exit_score": { ... }, // Pontuação ao sair de checkpoint posicionável +<code javascript> 
-    "path_size_checkpoint_entrance_score": { ... }, // Pontuação ao entrar em checkpoint de tamanho de trajeto +"change_position_in_routine": false, // Permite alterar a posição e depurar o robô durante rotina 
-    "path_size_checkpoint_exit_score": { ... }, // Pontuação ao sair de checkpoint de tamanho de trajeto +"robot_constraints": { // Restrições do robô, permite que a arena limite os robôs para criar verdadeiros desafios 
-    "starter_rescue_kit_score": { ... }, // Pontuação por kit de resgate inicial +    "use_constraints": false, // Habilita restrições 
-    "multiplier_powered_by_victims_rescued"false, // Multiplicador baseado no número de vítimas resgatadas +    "constraints_violation_penalty": { ... }, // Penalidade por violar de restrições, pode ser 999 pontos ou qualquer valor escolhido 
-    "@1": "Robot Constraints", // Indica início das restrições do robô +    "max_price": 50, // Preço máximo do robô, use -1 para ignorar restrição 
-    "#1": "Use -1 to ignore specific constraint.", // Instrução para ignorar restrições +    "max_weight": 100, // Peso máximo do robô, use -1 para ignorar restrição 
-    "robot_constraints": { // Restrições do robô +    "max_ultrasonic": 10, // Número máximo de sensores ultrassônicos, use -1 para ignorar restrição 
-        "use_constraints": false, // Habilita restrições +    "max_servomotor": 10, // Número máximo de servomotores, use -1 para ignorar restrição 
-        "constraints_violation_penalty": { ... }, // Penalidade por violação de restrições +    "max_light": 10, // Número máximo de sensores de luz, use -1 para ignorar restrição 
-        "max_price": 50, // Preço máximo do robô +    "max_buzzer": 10, // Número máximo de buzzers, use -1 para ignorar restrição 
-        "max_weight": 100, // Peso máximo do robô +    "max_color": 10, // Número máximo de sensores de cor, use -1 para ignorar restrição 
-        "max_ultrasonic": 10, // Número máximo de sensores ultrassônicos +    "max_touch": 10, // Número máximo de sensores de toque, use -1 para ignorar restrição 
-        "max_servomotor": 10, // Número máximo de servomotores +    "max_camera": 10, // Número máximo de câmeras, use -1 para ignorar restrição 
-        "max_light": 10, // Número máximo de sensores de luz +    "max_pen": 10 // Número máximo de canetas, use -1 para ignorar restrição
-        "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> </code>
 +
 +**Incompletos:**
 +<code javascript>
 +"use_medals": false, // Utiliza o sistema de medalhas para pontuar
 +</code>
 +
 +**Depreciado:**
 +<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>
 +
 +> //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.
editor_de_arenas.1743616036.txt.gz · Última modificação: 2025/04/15 16:34 (edição externa)