Comments (3)
You managed to get to level 9, so I'm sure your brain works pretty well! My recommendation: take a look at the source code, look at how the wizard's (and archer's) turn is played. The look
ability returns an array containing the first three spaces in the given direction, so you can call any Space
method on them, as you have done till now with feel
.
When you start using abilities that return arrays, you should be familiar with the methods that can be called on an Array. You will find many of them useful (remember you can use the ES6 methods too). Here is an example:
class Player {
// ...
isEnemyInSight(warrior) {
return warrior.look().findIndex((space) => space.isEnemy()) !== -1;
}
}
Good luck!
from warriorjs.
You use ES2015 (ES6) in warriorjs. So why not use ES5 methods?
A better way in this example is to use Array.some() instead of Array.findIndex().
from warriorjs.
I wanted to illustrate the possibility of using ES6 methods, like Array.prototype.findIndex(). But yes, I agree with you on that Array.prototype.some() would be better for that case.
This would be even better, because it will check that the unit is the first in sight, besides being an enemy:
isEnemyInSight(warrior) {
const unit = warrior.look().find((space) => !space.isEmpty());
return unit && unit.isEnemy();
}
from warriorjs.
Related Issues (20)
- Any plans on i18n? HOT 1
- Documentation links are broken in many places HOT 1
- access to newer abilities in previous levels HOT 3
- Connect WarriorJS CLI with warriorjs.com HOT 2
- Add ability to get warrior's max health HOT 3
- brief description on each release HOT 3
- @warriorjs/tower-tick-tick-boom warrior haven't got the "pivot" ability and bashing 'backward' forcedly
- Should the warrior receive more damage when attacked from behind? HOT 1
- Add retro sounds HOT 2
- translate Korean HOT 2
- Korean Translation HOT 3
- Can't access functions from a Unit object
- Watch for Player.js changes and run
- I cannot sign in or create an account for the online platform HOT 2
- When I 'Run' the game after defeated, the state isn't refreshed unless I reload the page for several times HOT 1
- rescue('backward') is undefined HOT 3
- This code is wierdly running HOT 4
- where did constructor() come from and what is it? How does it work and what does it mean? I'm not able to learn anything here HOT 1
- Error: No files matching the pattern "packages/**/src" were found
- Please help me with the algorithm of moves leading to victory in this 9th level on the map "Tick, Tick... Boom!"!
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from warriorjs.