А кто помнит игру Colobot, где можно было программировать ботов - я лично в неё много играл в 2002 году:
Плейлист: https://www.youtube.com/watch?v=XpTuwBSI0QU&list=PLAguonoUkih4Sgvare9qjU32dxhlCs3Ay
https://ru.wikipedia.org/wiki/Colobot
P.S. Какое-то время назад её опенсорцнули и теперь энтузиасты развивают её как открытый программный продукт: https://github.com/colobot/colobot
Игра Colobot
Moderator: Shaos
Игра Colobot
Я тут за главного - если что шлите мыло на me собака shaos точка net
Re: Игра Colobot
В англоязычной википедии есть пример программы для бота:
https://en.wikipedia.org/wiki/Colobot
Я помню, что я писал программу, по которой роботы искали в чистом поле кубики руды, приносили их печке и выкладывали их рядами
Так надо было делать потому, что печка перетапливала руду медленнее, чем роботы успевали её собирать
Code: Select all
extern void object::FetchTitanium()
{
object item; // declare variable
item = radar(TitaniumOre); // find a piece of titanium ore
goto(item.position); // go to the ore
grab(); // pick up whatever is in front of the robot (presumably the ore)
item = radar(Converter); // find the ore converter
goto(item.position); // relocate to the converter
drop(); // drop the piece of ore
move(-2.5); // back up 2.5 meters to allow the converter to start processing the ore
}
Я помню, что я писал программу, по которой роботы искали в чистом поле кубики руды, приносили их печке и выкладывали их рядами
Так надо было делать потому, что печка перетапливала руду медленнее, чем роботы успевали её собирать
Я тут за главного - если что шлите мыло на me собака shaos точка net
Re: Игра Colobot
Впервые слышу это слово в принципе, не то, чтобы помнить его...Shaos wrote:А кто помнит игру Colobot, где можно было программировать ботов ...
iLavr
Re: Игра Colobot
Я когда-то планировал на своём "Robot Warfare 1" что-то подобное сделать - например у меня уже есть команда поиска объекта:Shaos wrote:В англоязычной википедии есть пример программы для бота:
Code: Select all
extern void object::FetchTitanium() { object item; // declare variable item = radar(TitaniumOre); // find a piece of titanium ore goto(item.position); // go to the ore grab(); // pick up whatever is in front of the robot (presumably the ore) item = radar(Converter); // find the ore converter goto(item.position); // relocate to the converter drop(); // drop the piece of ore move(-2.5); // back up 2.5 meters to allow the converter to start processing the ore }
А вот простой команды "ИдиТуда" нет - надо будет из библиотеки подпрограмм брать - будет что-то типа вот этого из робота, который умел ходить туда, где кликнули мышой:RADAR Var
Запускает радар на поиск объекта типа Var = 0..7 (можно
воспользоваться макроопределениями из RW1_STD.RWI.
Координаты найденного объекта относительно робота
помещаются в регистры X и Y, если же оба
регистра равны 0, то объект не найден. В регитстре K
возвращается квадрант объекта (относительно
робота - против часовой стрелки 0,1,2,3), в регистре
D - минимальное абсолютное значение координат.
Занимает 1 такт. Отнимает 1 единицу энергии.
Code: Select all
robot "Mouse"
author "SHAOS"
color 808080
front eye
back gun
+rw1_std.rwi
main()
{
buf = 0
recv buf
say "N=&N "
if(N==@mouse) // received code from mouse
{
say "receive X=&X Y=&Y buf=&BUF "
xx=X
yy=Y
if(yy<=0)
{
left;left
yy = -yy
xx = -xx
}
while(1)
{
act front
if(d==1)
{
if(n==1) break
if(n==2) call attack
if(n==6) call attack
if(n==5) call attack
step
}
else step
yy=yy-1
if(yy>0) continue
if(xx==0) break
if(xx>0)
{
right
yy=xx
xx=0
}
else
{
left
yy=-xx
xx=0
}
}
}
else
{
act front
if(N==@t_robot) call attack
else
{
if(N==@t_box||D>1) step
else
{
if(R>500) right
else left
}
}
}
}
attack()
{
left;left
act back
act back
act back
act back
act back
left;left
}
Я тут за главного - если что шлите мыло на me собака shaos точка net