Domanda:
Livello 6 - Superare il drone
Roger
2014-04-10 00:07:39 UTC
view on stackexchange narkive permalink

Nel livello 6 di Untrusted, come posso evitare l'attacco del drone? Ho provato a creare un nuovo tipo di oggetto che potrebbe fungere da bloccante, ma il drone riesce a aggirarlo e sono convinto che debba esserci una soluzione più semplice che non vedo.

Tre risposte:
agent86
2014-04-10 00:10:44 UTC
view on stackexchange narkive permalink

Il drone ha una "AI" molto semplice che sceglie le mosse in modo stupido, quindi puoi sfruttarlo per intrappolarlo.

Controlla per vedere in quale direzione è il più vicino e si impegna a farlo prima di determinare se una mossa in quella direzione è valida o meno. Quindi, puoi fare in modo che le mosse che ti avvicinano a te secondo quegli standard siano costantemente non valide e non ti raggiungeranno in tempo.

Il modo in cui l'ho sfruttato era:

Ho creato una piccola "gabbia" con blocchi in cui sapevo che il drone avrebbe preferito spostarsi. In questo modo, potevo superarlo e non mi avrebbe catturato.

La soluzione completa che ho usato è stata:

  map.placeObject (map.getWidth () - 3, 10, 'block'); map.placeObject (map.getWidth () - 4, 10, 'block'); map.placeObject (map.getWidth () -5, 11, 'block'); map.placeObject (map.getWidth () - 4, 12, 'block');  
Inoltre non ha la convalida per un solo giocatore, quindi `map.placeObject (map.getWidth () - 5, 11, 'player');` gli dà un bersaglio diverso da attaccare.
nneonneo
2014-04-10 06:15:48 UTC
view on stackexchange narkive permalink

Puoi effettivamente riassociare la variabile moveToward e la funzione di ricollegamento verrà utilizzata dal drone. Ciò ti consente di riprogrammare banalmente il drone per eseguire il movimento che desideri.

yabree
2014-04-10 12:21:27 UTC
view on stackexchange narkive permalink

oppure puoi costruire droni di autodifesa :)

  map.defineObject ('selfDefenceDrone', {'type': 'dynamic', 'symbol': 'X', 'color' : 'green', 'onCollision': function (player) {player.killedBy ('an attack drone'); console.log ('killled!');}, 'behavior': function (me) {moveToward (me, 'attackDrone'); console.log (me.findNearest ('attackDrone')); console.log ('-------------');}}); map.placeObject (map. getWidth () - 9, 12, 'selfDefenceDrone'); map.placeObject (map.getWidth () - 5, 16, 'selfDefenceDrone'); map.placeObject (map.getWidth () - 5, 8, 'selfDefenceDrone') ; map.placeObject (map.getWidth () - 1, 14, 'selfDefenceDrone');  


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...