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);
};
Рекомендуем почитать
Консольный менеджер ssh сессий

Когда количество серверов начинает зашкаливать, возникает необходимость их организовать. Каждый раз забивать ip адрес нет никакого желания, особенно если делаешь Читать дальше...

Как решить проблемы с датчиком приближения Xiaomi Mi Mix 2S

⚠️Все действия вы выполняете на свой страх и риск. Автор не несет отвественности за действия, которые могут пронести вред вашему Читать дальше...

Внимание, опрос!

На следующей неделе реально отдыхаете?— IT Cat (@voiplab) March 27, 2020

Бесплатный доступ к платным сервисам во время эпидемии коронавируса

Безусловно, коронавирус повлияет на нас всех в той или иной форме. Ничего хорошего от него нет, не было и не Читать дальше...

Поделиться

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

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