FightCode: code your own robot using JavaScriptFightCode: танковые войны на JavaScript

FightCode — this is an online game for programmers, such as Robocode. JavaScript is used to programme your tanks. You can see the battles just in the browser. The Code Editor has got «jail» inside browser, which allows to see the result of code changes in the real time. The authors of FightCode has effectively worked with graphics. The game is also easy for coding and has good documentation.

[tube]http://www.youtube.com/watch?v=9-nZykgmr3E&feature=youtu.be[/tube]
FightCode — это онлайн-игра для программистов, сделанная по образу и подобию классической Robocode. Для программирования танков используется JavaScript, а сражения происходят прямо в вашем браузере. Редактор кода на сайте имеет встроенную «песочницу», которая позволяет в реальном времени видеть эффект от изменений кода. В отличие от других подобных игр, создатели FightCode хорошо поработали над графикой в игре. При этом игра достаточно проста и хорошо документирована.

[tube]http://www.youtube.com/watch?v=9-nZykgmr3E&feature=youtu.be[/tube]

The example of my tank:

//FightCode can only understand your robot
//if its class is called Robot
var Robot = function(robot) {

};

Robot.prototype.onIdle = function(ev) {
    var r = ev.robot;
    r.clone();
    r.rotateCannon(360);
    r.ahead(150);     
    r.turn(30);
    r.ahead(150);
};

//the enemy in sight
Robot.prototype.onScannedRobot = function(ev) {
    var r = ev.robot;     
		if (ev.scannedRobot.parentId == r.id || ev.scannedRobot.id == r.parentId) {
			return; //do not shoot at the friendly tanks
		}  
  	r.rotateCannon(2);    
  	r.fire(); 
  	r.turn(8);            
  	r.rotateCannon(-20); 
  	r.ahead(15);
};

// switch on the hiding
Robot.prototype.onHitByBullet = function(ev) {
    var r = ev.robot;
    r.disappear();
}

// hit the wall
Robot.prototype.onWallCollision = function(ev) {
    var r = ev.robot;
    r.back(50);
};

//hit the tank
Robot.prototype.onRobotCollision = function(ev) {
    var r = ev.robot;
    r.back(30);
};


Пример моего танка:

//FightCode can only understand your robot
//if its class is called Robot
var Robot = function(robot) {

};

Robot.prototype.onIdle = function(ev) {
    var r = ev.robot;
    r.clone();
    r.rotateCannon(360);
    r.ahead(150);     
    r.turn(30);
    r.ahead(150);
};

//в поле зрения появился враг
Robot.prototype.onScannedRobot = function(ev) {
    var r = ev.robot;     
		if (ev.scannedRobot.parentId == r.id || ev.scannedRobot.id == r.parentId) {
			return; //не стреляем по своим
		}  
  	r.rotateCannon(2);     // пара градусов вправо
  	r.fire(); 
  	r.turn(8);             // 10 минус 2 градуса вправо
  	r.rotateCannon(-20); 
  	r.ahead(15);
};

// как только нас засекли - включаем маскировку
Robot.prototype.onHitByBullet = function(ev) {
    var r = ev.robot;
    r.disappear();
}

// как только врезались в стену
Robot.prototype.onWallCollision = function(ev) {
    var r = ev.robot;
    r.back(50);
};

//как только врезались в другой танк
Robot.prototype.onRobotCollision = function(ev) {
    var r = ev.robot;
    r.back(30);
};

Оставить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *