Colobot Forum - International Colobot Community
Bots, Everywhere - Printable Version

+- Colobot Forum - International Colobot Community (https://colobot.info/forum)
+-- Forum: [Archive] New forum (2015-2019) (https://colobot.info/forum/forumdisplay.php?fid=76)
+--- Forum: Others (https://colobot.info/forum/forumdisplay.php?fid=67)
+---- Forum: Introduce Yourself (https://colobot.info/forum/forumdisplay.php?fid=69)
+---- Thread: Bots, Everywhere (/showthread.php?tid=838)



Bots, Everywhere - RedRover - 10-09-2016

Hello there!

I recently stumbled upon ColoBot Gold while searching for a fun way to learn programming. I am as new to the world of code as one can possibly be. Aside from having been gaming relentlessly for a while now, my only other experiences with the intricacies of computer science are not fit to mention on a morally-bond forum  Big Grin

That being (shamelessly) said, I have been finding it both fun and challenging to start learning with Colobot. I look forward to gaining applicable skills with this promising program.

Would anyone happen to have advice for this noob on which basics I could pursue, some foundation programs that can be learned from and\or expanded on? Pointing me in any direction would be much appreciated, as I am about as lost as they come lol

So far I have been using the ColoBot's Wikipedia page's code as a layout of what is expected of the code to get a desired result. The basic retrieval code. Been working good for the first three missions too. My largest problem would be, the syntax of the language. What goes where and why. That just blows over my head  Huh Any ideas where they have a book\pdf that explains that stuff? It would help me loads. All those dots and slashes and semi-colons make my head hurt lol

I've always been more of a physically orientated person. Never played sports in school because it was boring though. I prefer testing my limits, breaking them and pushing beyond as far as I possibly can. The drive for new challenges led me to ColoBot and this community.

The Admins have worked hard here and the value of their efforts are clear to be seen. I look forward to learning from the enthusiastic and talented people here!

Now, off to the Ship! I have resources to stockpile and bots to whip into shape  Arrow

Edit: -Lost in space-

Frustratingly unable to teach a caveman programming from the first written line, indeed! Though few succeed the first try and I am known to be, stubborn. I just wish I could crack the language code. What goes where and in which order, etcetcetc. I'd have them bots doing the Conga in no time! Lol

Fact is, it's ColoBot and I against the world as most other forms of programming studies are inaccessible to me at the moment and... generally speaking make my mind seek out its "happy place". Which usually leads me staring at the ceiling and grinning like an idiot (don't ask, don't tell Wink )

Thank you for the head's up, I am looking forward to either taming the beast of coding or being outsmarted by a bunch of digital ants lol

I read posts here about the upcoming course and it truly sounds like an excellent innovation to be added to the already great, but not very "stone age-friendly" game. I hope to be able to give it a go when the chance arises! Especially since I am having trouble with something as simple as a collection and relocation program. Ironic since that would be the first useful thing to learn. Told ya I'm brand-spanking new lol


RE: Bots, Everywhere - Simbax - 10-09-2016

I recommend playing one of the Ceebot games as they are much better at teaching programming than Colobot. Unfortunately, the new programming course for GOLD is far from done and the current exercises don't provide good learning experience.


RE: Bots, Everywhere - True Destroyer - 10-10-2016

Hey, I got some advice on how to start. Don't do "missions" just yet, check the "exercises" - they show you very simple example programs that you can run, follow and modify. Second thing: There's a tool that allows you to track the program execution in real time, when program is working, open the program edit window on the bot and check the buttons. When you feel ok with it you may want to write your first simple programs in "exercises". Also here are some basic rules that may help you:

Programs are going from top to bottom, line by line. Don't forget to put in semicolons after almost everything.
there are commands - the functions, that tell robot what to do. - like 'move(5);', 'fire(1);', 'turn(90);'. - these end with semicolons. And have a pair of brackets with stuff in them!
there are also causes that tell robot on when and how to do the aforementioned commands, like 'while(true)', 'if(LotteryNumber==5)' - these have brackets too, but no semicolons after them.
and there are some things that hold information, like in mathematics, 'x = 20;', 'color = "blue";', etc. They have semicolons too.

the commands - functions - may have some parametres - arguments in brackets. So move(20) will mean move front 20 metres, while move(-20) means move back 20 metres. turn() takes degrees as argument. fire() uses seconds.

One of first levels in 'exercises' will make you kill three spiders by only turning and shooting. I highly recommend it.

then you will learn stuff like

while(true)
{
turn(90);
wait(5);
}

this will make robot turn around and wait in a loop that goes on forever. Then you might want to check out other loops.

then you might want to check out the conditional clause, if()

example:

int a =1
int b =2
if(a+b==3)
{
move(10);
}

or

int a =5;
int b =7;
if(a+b==3)
{
move(10);
}


one of these will move the robot, while the other won't. About what is "int" you might want to read -
'int a = 20;' means 'make a integer number X, and make it equal 20' and stuff like 'string Name = "John"; ' means 'make a string of letters, named Name, and make them hold the letters J, o , h and n.' When you get it, you may want to check out the rest of types in the manual, and then learn individual functions like grab(), direction(), radar() and more, or look them up as you need in the handbook.
in colobot, if you type
x=2;
y=3;
z=x+y;
it wont work, because it does not figure out by itself that x, y and z are numbers, and you need to declare it, it's just how it is.
instead try,
int x;
int y;
int z;
x=2;
y=3;
z=x+y;
and it will go without errors. However you won't get too see the result, and program will simply add the numbers, won't show them, and will end.

Also, check these lines of code - copy-paste them:
turn(rand()*360);

will turn to random direction (0 to 360 degrees).

move(rand()*100);

will move random between 0 and 100 metres

try to put this inside
while(true)
{

}

and guess the effectsSmile

PS:
The first program I've ever written was in colobot, in exercise with three spiders around 15 years ago. I wrote "Kill three spiders" in my native language. I was like "hell why not try this, if it works, programming will be a piece of cake and I won't have to learn a thing!". Guess what - It did not run. Sad

It's sad whenever i memorize it - on the other hand, today, thanks to this I'm an engineer of automatics and roboticsSmile


RE: Bots, Everywhere - RedRover - 10-10-2016

Ah snap. I was trying to do the missions first, thinking they might be tutorial-ish lol Noticed I was wrong when they sent me on my merry way and I was left fiddling with my robot like a spacemonkey, checking guides and wikis like a madman. Finally piecing things together in a total Frankenstein way, but getting there!

I only started typing "the right way" on a pc a few months ago, so any and all advise is much appreciated True Destroyer, thank you (Who types when you can just copy/paste lol). Yeah I noticed they love the semi-colon spice in their code salads. I'm still figuring out the brackets and such. Terribly happy about that! If you master the use of the tool's full functionality, there is no limit to what you can craft!

Hm, yes. Right now the While() {} and If() {} is giving me a headache. Trying to write something to round up stuff but my toe keeps banging against the coffee table known as: I don't know how to specify a location as a condition instead of a boolean, which is what the program checker keeps demanding from me (Yeah I barely know what I just said and I surely don't know if I said it right lol).

Thank you once more, now I finally know more on how the int works! That was something I understood, but had no idea how to use it. Yes, I soon realized that spelling something out quite literally for a program is needed. Tedious, but it leaves room for potential, the harder a person works the better their program will be, which leads to higher quality software and experiences for everyone!

Bots gone wild! 2.0 lmao The simple fact of being able to manipulate the bots on almost a core level (modding aside) is what I like most about ColoBot and about programming in a broader sense. Game Goal: Bot football lol

Youch yeah, a shame programming ain't all that easy... yet. With the boom in the AI industries and connectivity and digital awareness taking on all new forms, I am sure that in the future we will be able to create complex programs with nothing more than a few cleverly chosen words and options. Heck, we kinda are doing it in ColoBot already lol Just think of all the base programming that went into it just to be able to get a reaction out of the bots with some weirdly placed code from some of the most Noobish people out there (Myself, probably on the top 5 list of ultimate noobs lmao). Some day, we will all be programming with the skills of the legends. Some day, Ha!

I'm glad I came to this forum, y'all are friendly and helpful here. I'm sure I'll bug everyone with questions 'till I get banned or Pro! Bahaha


RE: Bots, Everywhere - tomaszkax86 - 10-10-2016

Story line doesn't require you to program robots. However, as you move to new places Houston will send you ready-to-use programs which can simplify your life. You can analyze them and potentially improve. But I agree that it might be a good idea to check exercises first if you want to start from scratch. I would start with simple movement and control operations, like moving objects with Grabbers.