> Tutorial LeekScript
Codifichi la tua IA come un beato. Le righe scorrono e i nomi di... No aspetta, l'abbiamo già visto. Questa volta niente più messaggi rossi nell'editor, il compilatore non ha più segreti per te. È tempo di duello! Osservi i tuoi porri nel loro ambiente naturale, come Steve Irwin nell'orto. Vanno in giro, si divertono, si mitragliano a vicenda, sembrano felici!
Non sospettano che nell'ombra si nascondano formidabili nemici...
Ahhh un classico!! Non si tratta necessariamente di un errore AI, ma di un superamento del numero massimo di operazioni (OPERATIONS_LIMIT fissato a 20 milioni di operazioni). Dai un'occhiata ai tutorial Operazioni per un articolo dettagliato.
In questo caso, possiamo scommettere su un loop senza una condizione di arresto, che viene chiamato loop infinito (vedi Cicli).
Un piccolo esempio? Ecco un piccolo codice per usare l'arma sull'avversario fintanto che abbiamo PT: 
Stupido eh? Beh no ! Viene visualizzato un errore durante l'esecuzione: Basic, riga 13 ▶ Interruzione AI: errore di esecuzione: troppe operazioni eseguite per questo round
Quale potrebbe essere il problema... Beh, molto semplicemente, finché la condizione getTP() > 0, il ciclo verrà eseguito. Ma cosa accadrà quando non potremo usare l'arma? Beh, non perderemo nessun PT! E la condizione sarà sempre vera! Quindi abbiamo un ciclo che verrà eseguito all'infinitoiiiiiiiiiiiiiiiiii.
Per correggere questo caso, possiamo testare il ritorno della funzione useWeapon e analizzare il risultato.
Possibile soluzione:
Non sono le dimensioni che contano!
Senza leggere la tua intelligenza artificiale, avrei difficoltà a correggerti... Possiamo ancora citare alcune possibilità:
lineOfSight una volta ti costa 15 operazioni, usarla in 3 cicli nidificati ti costerà!getCellToUseWeapon non dovrebbero essere abusate! È utile memorizzare il risultato di funzioni che consumano molto o ricodificarle.Quindi questa volta sono stato attento, ho inserito il giusto numero di parametri nella mia funzione. Quindi sì, ma non puoi inserire qualsiasi parametro nelle funzioni native. Queste funzioni richiedono determinati tipi di input. Se provi a usarli con i parametri sbagliati, otterrai un risultato simile:
AI Basic, riga 14 ▶ Funzione sconosciuta: useWeapon(function) AI Basic, riga 14 ▶ Funzione sconosciuta: useWeapon(null)
Qui, la funzione useWeapon prende un argomento numerico (una costante WEAPON_...) e proviamo a dargli una funzione, o un null. Ovviamente il generatore geme su di noi.
AI Basic, riga 11 ▶ Funzione sconosciuta: sort(number, null) sort prevede un array come primo parametro e proviamo a dargli un numero.
Basic AI, riga 8 ▶ Funzione sconosciuta: getNearestEnemyTo(array) getNearestEnemyTo accetta un id entità come parametro, non un array.
Questo errore può verificarsi anche a causa della mancanza di parentesi:
Qui memorizziamo la funzione getNearestEnemy nella variabile enemy, piuttosto che il suo risultato (vedi Funzioni. Correzione: var nemico = getNearestEnemy();
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.