Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # ********************************************************************************
- # OBJETIVO: Mova a lontra e encontre o seu par
- # TEST CASES:
- # 1. Encontre seu par
- # - Você deve comandar os movimentos da lontra para encontrar a próxima lontra;
- # - Esse test case é determinístico, ou seja, a solução será sempre a mesma;
- # - Neste test case, NÃO HÁ cristais a serem coletados.
- # 2. Colete 5 Cristais e encontre seu par
- # - Você deve comandar os movimentos da lontra para encontrar a próxima lontra;
- # - Esse test case é determinístico, ou seja, a solução será sempre a mesma;
- # - Neste test case, você DEVERÁ capturar 5 cristais e encontrar a próxima lontra.
- # 3. Modo obstáculos aleatórios: Colete 5 Cristais e encontre seu par
- # - Você deve comandar os movimentos da lontra para encontrar a próxima lontra;
- # - Esse test case NÃO É determinístico, ou seja, a posição dos obstáculos e cristais são aleatórios;
- # - Sempre haverá um obstáculo + um cristal na mesma posição vertical.
- # - Neste test case, você DEVERÁ capturar 5 cristais e encontrar a próxima lontra.
- # COMO JOGAR:
- # 1. Considerar que o jogo possui 3 pistas, TOP, CENTER E BUTTOM;
- # 2. Considerar que o jogo possui os comandos de movimentos:
- # - "up": mover a lontra para pista acima
- # - "down": mover a lontra para pista inferior
- # - "keep": manter-se a mesma pista
- # - "upt": mover a lontra para 2 (duas) pistas a acima
- # - "downt": mover a lontra para 2 (duas) pistas abaixo
- # 3. Você receberá como INPUT a variável ITEMS do tipo ARRAY, com:
- # - "A": significa que a pista TOP (mais próxima ao céu) contém um OBSTÁCULO;
- # - "B": significa que a pista CENTER (ao centro) contém um OBSTÁCULO;
- # - "C": significa que a pista BUTTOM (mais distante do céu) contém um OBSTÁCULO;
- # - "W": significa que a pista TOP (mais próxima ao céu) contém um CRISTAL;
- # - "Y": significa que a pista CENTER (ao centro) contém um CRISTAL;
- # - "Z": significa que a pista BUTTOM (mais distante do céu) contém um CRISTAL;
- # 4. Para você comandar a lontra, adicione seus movimentos (passo 3) ao array MOVIMENTS.
- # 5. Lembre-se que, a qualquer momento no seu código, você pode contar com o recurso
- # de DEBUGAR os valores das suas variáveis na BOX CONSOLEM da IDE.
- # ********************************************************************************
- # ***************************************************************************
- # Este comando captura da plataforma Wisecode o INPUT do jogo
- # NÃO REMOVER ESTA LINHA
- # ***************************************************************************
- import sys
- import math
- import json
- items = input()
- arritems = json.loads(items)
- # ***************************************************************************
- # Variável de MOVIMENTS empty para adicionar os movimentos da lontra
- # ***************************************************************************
- moviments = []
- # ***************************************************************************
- # EXEMPLO do comando para apresentar no CONSOLE da IDE o valor da variável
- # items posição 0
- # ***************************************************************************
- #debug:print(arritems[0], file=sys.stderr, flush=True)
- # ***************************************************************************
- # Adicionei aqui a lógica de programação para ganhar o jogo
- # ***************************************************************************
- pos = 'B'
- for i in range(0,len(arritems),2):
- togo = 'ABC'
- togo = togo.replace(arritems[i], '').replace(arritems[i+1], '')
- if arritems[i+1] == 'W':
- togo = togo.replace('B', '')
- togo = togo.replace('C', '')
- if arritems[i+1] == 'Y':
- togo = togo.replace('A', '')
- togo = togo.replace('C', '')
- if arritems[i+1] == 'Z':
- togo = togo.replace('A', '')
- togo = togo.replace('B', '')
- if togo == 'A':
- moviments.append('upt')
- pos = 'A'
- if togo == 'C':
- moviments.append('downt')
- pos = 'C'
- if togo == 'B':
- if pos == 'A':
- moviments.append('down')
- if pos == 'C':
- moviments.append('up')
- if pos == 'B':
- moviments.append('keep')
- debug:print('togo:', togo, file=sys.stderr, flush=True)
- # ***************************************************************************
- # EXEMPLO do comando para adicionar o movimento "down" ao array de MOVIMENTS
- # ***************************************************************************
- # ***************************************************************************
- # Este comando informa a plataforma Wisecode o array MOVIMENTS
- # NÃO REMOVER ESTA LINHA
- # ***************************************************************************
- print(json.dumps(moviments))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement