KOKO PERHEEN HAUSKA STRATEGIAPELI KUL PROGRAMMERINGSSPEL FÖR HELA FAMILJEN FUN PROGRAMMING GAME FOR THE WHOLE FAMILY OHJEET REGLER INSTRUCTIONS ROBOGEM_Ohjevihko_148x210mm.indd 1 23.3.2015 12.13 PELIN TAVOITE Robotit laskeutuvat kaukaiselle planeetalle etsimään timantteja, joista saavat lisää virtaa aluksiinsa. Ohjelmoi robottisi keräämään kolme timanttia ja kuljettamaan ne omaan tukikohtaasi. Nopein voittaa pelin! PELIN ALOITUS • Aseta estelaatat (12 kpl) ja timantit (10 kpl) kuvan mukaiseen alku asetelmaan pelilaudalle. Kaikki timantit ovat samanarvoisia. Pelilauta • Kukin pelaaja valitsee robotin ja sijoittaa sen samanväriseen tukikoh- taansa johonkin laudan nurkista, kuten kuvassa. Robotti asetetaan tuki- kohtaan niin, että robotin musta nuoli osoittaa kohti vastapäistä tukikohtaa. robotit estelaatta • Poista f-kortit (10 kpl) käskykorttipakasta. • Sekoita kortit. • Jaa pakasta jokaiselle 5 käskykorttia kuvapuoli ylöspäin. • Laita korttipakka laudan viereen, kuvapuoli alaspäin. ROBOGEM_Ohjevihko_148x210mm.indd 2 23.3.2015 12.13 PELIN KULKU Pelaajat ohjaavat robottinsa liikkeitä käskykorteilla. Robotti suorittaa ohjelman. Nuorin pelaaja aloittaa pelin. Robotti tottelee käskykortteja, joita on neljä erilaista: class Player attr_accessor :name, :color, def pick_cards(deck, count):cards def picked initialize(color, name) = [] @color color> 0 && deck.length > 0 while =count @name = name picked.push(deck.pop) @cards count==[]count - 1 endend end picked end classPlayer Player class attr_accessor :name,:color, :color, :cards attr_accessor :name, :cards def pick_cards(deck, count) definitialize(color, initialize(color, name) def name) picked = [] @color color> 0 && deck.length > 0 @color color while==count @name = name @name = name picked.push(deck.pop) @cards @cards ==[]=[]count - 1 count end endend end end picked end ETEEN – Robotti liikkuu yhden ruudun verran eteenpäin. (50 kpl) Viiden komennon ohjelma Robotti kääntyy paikallaan ROBOTIN oranssin nuolen osoittamaan suuntaan. VASEN – Robotti kääntyy paikallaan 90 astetta vastapäivään. (25 kpl) classPlayer Player class attr_accessor :name,:color, :color, :cards attr_accessor :name, :cards def pick_cards(deck, count) definitialize(color, initialize(color, name) def name) picked = [] @color color> 0 && deck.length > 0 @color color while==count @name name @name ==name picked.push(deck.pop) @cards @cards ==[] count =[]count - 1 endend end end picked end end OIKEA – Robotti kääntyy paikallaan 90 astetta myötäpäivään. (25 kpl) Lähtötilanne: Robotti liikkuu yhden ruudun verran ROBOTIN mustan nuolen suuntaan. ROBOGEM_Ohjevihko_148x210mm.indd 3 Robotti kääntyy paikallaan ROBOTIN keltaisen nuolen osoittamaan suuntaan. class classPlayer Player attr_accessor :name, :cards attr_accessor :name,:color, :color, :cards def pick_cards(deck, count) def name) definitialize(color, initialize(color, name) picked = [] @color color @color color> 0 && deck.length > 0 while==count @name = name @name = name picked.push(deck.pop) @cards ==[]=[]count - 1 @cards count end endend end end picked end FUNKTIO – Funktion taakse voi tallentaa 1—5 käskykortin sarjan. (10 kpl) Muodostettu käskykorttisarja: Robotti liikkuu yhden ruudun verran ROBOTIN mustan nuolen suuntaan. Robotti kääntyy paikallaan ROBOTIN keltaisen nuolen osoittamaan suuntaan. 23.3.2015 12.13 T TEE OS ! H E A NIT TUJ ÄÄ ALLIT S BZ ZZ ... PELIVUORON KULKU 1 Järjestele käskykortit eteesi riviin käskysarjaksi eli ohjelmaksi. Voit käyttää haluamasi määrän kortteja. Laita oman pelivuorosi alussa poistopakkaan ne kortit, joita et halua käyttää. Tämän jälkeen ohjelma on valmis, eikä sitä saa muuttaa! 2 Ohjelma suoritetaan vasemmalta oikealle yksi käskykortti kerrallaan liikuttamalla robottia kortin mukaisella tavalla. Jos käskyä ei voi suorittaa (robotti esimerkiksi yrittää mennä estelaatalle), loppuu ohjelman suoritus tähän ja siirrytään kohtaan 5. 3 Jos robotti tulee ruutuun, jossa on timantti, robotti poimii timantin kyytiinsä ja jatkaa matkaansa. 4 Jos robotti tulee ruutuun, jossa on jo toinen robotti, voit työntää toista robottia. Mikäli työnnettävällä robotilla on kyydissään timantti, työntävä robotti kaappaa timantin kyytiinsä. 5 Ohjelman suorituksen jälkeen laita kaikki kortit poistopakkaan ja ota eteesi 5 uutta korttia pakasta. Mikäli et saa muodostettua haluamaasi ohjelmaa korteistasi, voit jäädä keräämään voimia. Laita kortit poistopakkaan ja saat tilalle 7 uutta korttia. Vuoro siirtyy seuraavalle pelaajalle. Kun kortit loppuvat, poistopakka sekoitetaan pakan pohjaksi yhden kerran. Kun kortit loppuvat toisen kerran, peli loppuu. Pienet ja aloittelevat pelaajat voivat kokonaisen ohjelman sijaan pelata korttinsa yksitellen. Kokeneemmat pelaajat auttavat aloittelijoita antamaan robotille hyviä ohjeita! ROBOGEM_Ohjevihko_148x210mm.indd 4 23.3.2015 12.13 Neljän komennon ohjelma Vihreä robotti liikkuu kaksi ruutua eteenpäin, kääntyy paikallaan oikealle ja jatkaa yhden ruudun eteenpäin. Virhe ohjelmassa Timantin kaappaaminen Punaisen robotin kolmas käskykortti on mahdoton suorittaa, koska robotti joutuisi pelilaudan ulkopuolelle. Robotti liikkuu vain kaksi ruutua eteenpäin. Punainen robotti työntää vihreää edellään, ennen kuin kääntyy oikealle ja jatkaa matkaa. Työnnettäessä yksi timantti siirtyy punaiselle. • Jos työnnettävällä robotilla on kyydissään useampia timantteja, saat kaapattua yhden timantin jokaista työntämääsi ruutua kohden. • Timanttien kaappaus onnistuu vain, jos vastustajan robotti on työnnettävissä (esim. laudalta ulos tai estelaatalle ei voi työntää). • Jos robotilla on lastinaan 3 timanttia, niitä ei voi poimia lisää, vaan timantit toimivat esteinä, joiden läpi robotti ei voi kulkea. • Jos robotti menee tukikohtaansa timanttien kanssa, timantit jäävät tukikohtaan ja robotti voi jatkaa matkaansa. • Jos työnnät robotin ruutuun, jossa on timantti, timantti siirtyy työntämäsi robotin kyytiin. • Robotti ei voi työntää kahta robottia kerrallaan. • Työnnettävän robotin nuolen suunnalla ei ole merkitystä. • Jos työntäjällä on 3 timanttia, ei työnnettävältä siirry timantteja. Työntäminen on kuitenkin mahdollista. • Robotti ei voi liikkua eikä sitä voi työntää pelilaudan ulkopuolelle tai estelaattojen läpi. • Toisen robotin tukikohtaan ei voi mennä. • Estelaattoja ei voi työntää. PELIN LOPPU Peli loppuu, kun ensimmäinen pelaaja on kerännyt tukikohtaansa kolme timanttia, mutta peli voi loppua myös käskykorttipakan tyhjenemiseen. Kun kortit loppuvat toisen kerran, pelataan kierros pöydässä olevilla korteilla, minkä jälkeen peli loppuu. Jos peli loppuu, ennen kuin yhdelläkään pelaajalla on tukikohdassaan 3 timanttia, voittaa se pelaaja, jolla on tukikohdassaan eniten timantteja. Tasatilanteessa voittaa se, jolla on robottinsa kyydissä enemmän timantteja. ROBOGEM_Ohjevihko_148x210mm.indd 5 23.3.2015 12.13 LISÄSÄÄNTÖ: FUNKTIOKUTSU Taitavat pelaajat voivat lisätä peliin vielä yhden haasteen, funktion! Nyt pelin alussa pakkaan sekoitetaan myös f-kortit (10 kpl). Pelaaja voi siirtää haluamansa kortit poistopakan sijasta erilliseen funktioon, joka on erillinen käskykorttisarja pelaajan pääohjelman vieressä. Funktioon lisätyt kortit pysyvät pöydällä koko loppupelin ajan eikä niitä laiteta poistopakkaan. Ohjelmaa suoritettaessa f-kortti suorittaa aina koko funktion. Koko ohjelman suoritus kuitenkin keskeytyy ensimmäiseen “mahdottomaan käskyyn”. Funktion pituus on korkeintaan 5 korttia. Lisättävät kortit lisätään aina funktion loppuun, eikä siis esimerkiksi väliin tai alkuun. Funktiosta ei voi koskaan poistaa kortteja. Huom! Myös funktio itse voi päättyä F-korttiin, jolloin funktio suoritetaan aina uudestaan kunnes tulee ensimmäinen “mahdoton käsky”. Itseään kutsuvaa funktiota kutsutaan rekursiiviseksi funktioksi. Funktio Vihreä robotti suorittaa funktion, joka siirtää sen kaksi ruutua eteenpäin. Sen jälkeen se vielä kääntyy oikealle ja liikkuu yhden ruudun eteenpäin. Tämä on funktio, jota ylärivin F-kortti kutsuu. Komentosarja, joka suoritetaan on siis: IDEOITA: Voit itse suunnitella erilaisia pelilautoja asettelemalla estelaatat ja timantit pelilaudalle eri tavoin. Jos peli tuntuu haastavalta, voit aloittaa pelin ilman kaappausmahdollisuutta. Voit halutessasi pelata myös suljetuin kortein. ROBOGEM_Ohjevihko_148x210mm.indd 6 23.3.2015 12.13 SPELETS MÅLSÄTTNING Robotar landar på en fjärran planet för att leta efter diamanter, som ska ge mera energi till deras rymdskepp. Programmera din robot att samla tre diamanter och att transportera dem till sin egen bas. Den snabbaste vinner spelet! SPELETS START • Placera spärrplattorna (12 st) och diamanterna (10 st) på spelbrädet i startläge enligt bilden. Alla diamanter är lika mycket värda. Spelbrädet • Varje spelare väljer en robot och placerar den på dess bas med samma färg i något av brädets hörn, enligt bilden. Roboten placeras så att dess svarta pil pekar mot basen mittemot. robot spärrplatta • Plocka bort f-korten (10 st) ur kommandokortshögen. • Blanda korten. • Dela ut 5 kommandokort med bildsidan uppåt till varje spelare. • Lägg de återstående korten i en hög (talongen) bredvid spelbrädet med bildsidan nedåt. ROBOGEM_Ohjevihko_148x210mm.indd 7 23.3.2015 12.13 SPELETS GÅNG Spelaren styr sin robots rörelser med kommandokorten. Roboten utför programmet. Den yngsta spelaren börjar. Roboten lyder kommandokort. Det finns fyra slags kort: class Player attr_accessor :name, :color, def pick_cards(deck, count):cards def picked initialize(color, name) = [] @color color> 0 && deck.length > 0 while =count @name = name picked.push(deck.pop) @cards count==[]count - 1 endend end picked end classPlayer Player class attr_accessor :name,:color, :color, :cards attr_accessor :name, :cards def pick_cards(deck, count) definitialize(color, initialize(color, name) def name) picked = [] @color color> 0 && deck.length > 0 @color color while==count @name name @name ==name picked.push(deck.pop) @cards @cards ==[]=[]count - 1 count end endend end end picked end FRAMÅT – roboten rör sig en ruta framåt. (50 st) Serie med 5 kommandon Roboten svänger på plats enligt ROBOTENS orange pil. VÄNSTER – roboten svänger på plats 90 grader motsols. (25 st) classPlayer Player class attr_accessor :name,:color, :color, :cards attr_accessor :name, :cards def pick_cards(deck, count) definitialize(color, initialize(color, name) def name) picked = [] @color color> 0 && deck.length > 0 @color color while==count @name name @name ==name picked.push(deck.pop) @cards @cards ==[] count =[]count - 1 endend end end picked end end HÖGER – roboten svänger på plats 90 grader medsols. (25 st) Utgångsläge: Roboten rör sig en ruta framåt i samma riktning som ROBOTENS svarta pil. ROBOGEM_Ohjevihko_148x210mm.indd 8 Roboten svänger på plats enligt ROBOTENS gula pil. class classPlayer Player attr_accessor :name, :cards attr_accessor :name,:color, :color, :cards def pick_cards(deck, count) def name) definitialize(color, initialize(color, name) picked = [] @color color @color color> 0 && deck.length > 0 while==count @name ==name @name name picked.push(deck.pop) @cards ==[]=[]count - 1 @cards count end endend end end picked end FUNKTION – bakom funktionen kan man lagra en serie med 1–5 kommandokort. (10 st) Serie med kommandokort: Roboten rör sig en ruta framåt i samma riktning som ROBOTENS svarta pil. Roboten svänger på plats enligt ROBOTENS gula pil. 23.3.2015 12.13 ER EKT F F A! DE LJU LLÅTN TI DJ ZZ Z. .. SPELTURENS GÅNG 1 Ordna dina kommandokort på rad framför dig till en kommandoserie, det vill säga ett program. Du kan använda så många kort du vill. Om du har kort som du inte vill använda, lägg dem i högen med använda kort i början av din egen speltur. Efter detta är programmet klart och får inte ändras! 2 Programmet utförs från vänster till höger, ett kommandokort i taget, genom att flytta på roboten enligt kortets kommando. Om kommandot inte kan utföras (till exempel om roboten stöter på en spärrplatta), avslutas programmet och du går till punkt 5. 3 Om roboten kommer till en ruta med en diamant, plockar roboten upp diamanten och fortsätter sin färd. 4 Om roboten kommer till en ruta med en annan robot, kan du skuffa robotten framåt. Om du skuffar fram en annan robot som har en diamant ombord, flyttas diamanten över till din robot. 5 Efter att programmet är utfört lägger du korten i högen med använda kort och plockar 5 nya kort ur talongen. Om du inte kan skapa det program du vill med dina kommandokort, kan du vänta och samla krafter. Lägg korten i högen med använda kort och ta 7 nya kort i stället. Turen går då vidare till nästa spelare. När kommandokorten i talongen tar slut, blandas högen med använda kort till en ny talong en gång. Om högen med kommandokort tar slut för andra gången är spelet avslutat. Små spelare och nybörjare kan spela med enskilda kommandokort i stället för med ett helt program. Mer erfarna spelare kan hjälpa nybörjarna att ge bra kommandon åt roboten! ROBOGEM_Ohjevihko_148x210mm.indd 9 23.3.2015 12.13 Serie med 4 kommandon Programmeringsfel Diamantkapning Den gröna roboten rör sig två rutor framåt, svänger på ställe till höger och fortsätter en ruta framåt. Den röda robotens tredje kommandokort kan inte utföras, för då skulle roboten hamna utanför spelbrädet. Roboten rör sig bara två rutor framåt. Den röda roboten skuffar den gröna framför sig. Den kapar en diamant, svänger till höger och fortsätter. • Om roboten du skuffar har flera diamanter i lasten, får du kapa en diamant för varje ruta du skuffar den framåt. • Kapningen lyckas bara om motståndarens robot kan skuffas framåt. Det går inte att skuffa ut motståndaren från brädet eller på en spärrplatta. • Om du skuffar motståndarens robot till en ruta som har en diamant, flyttas diamanten över till roboten du skuffar. • Det spelar ingen roll vartåt moståndarrobotens pil pekar. • Roboten kan inte skuffa två andra robotar framför sig samtidigt. • Roboten kan inte röra sig eller skuffas ut från spelbrädet eller på en spärrplatta. • Om den skuffande roboten redan har 3 diamanter i lasten kan den inte kapa åt sig flera, men det är ändå möjligt att skuffa motståndarens robot framåt. • Om en robot har 3 diamanter i lasten kan den inte plocka upp flera. Diamanterna fungerar då som spärrar som roboten inte kan passera. • Spärrplattor kan inte skuffas framåt. • Om roboten går till sin bas med diamanter i lasten, lämnas diamanterna på basen varefter roboten kan fortsätta sin färd. • En robot kan inte gå in på en annan robots bas. SPELETS SLUT Spelet är slut när den första spelaren kommer till sin bas med tre diamanter. Det kan också sluta om högen med kommandokort tar slut för andra gången. Då spelar man en omgång med de kort som finns på bordet och efter det är spelet avslutat. Om ställningen är oavgjord, vinner den spelare som har flera diamanter ombord på sin robot. Om spelet tar slut innan någon spelare har tre diamanter på sin bas, vinner den spelare som har flest diamanter på sin bas. ROBOGEM_Ohjevihko_148x210mm.indd 10 23.3.2015 12.13 TILLÄGGSREGEL: FUNKTIONSANROP Skickliga spelare kan lägga till ytterligare en utmaning i spelet: en funktion! I så fall blandar man in f-korten (10 st) i talongen innan spelet börjar. Spelaren kan hen välja att lägga en del kort i en skild funktion i stället för i högen med använda kort. De bildar en skild kommandokortsserie vid sidan av huvudprogrammet. De kort som lagts till funktionen stannar kvar på bordet under resten av spelet och placeras inte i högen med använda kort. Ett f-kort utför alltid hela funktionen. Programmet avbryts dock av det första "omöjliga kommandot". Funktionens längd är högst 5 kort. De kort som läggs till placeras alltid i slutet av funktionen, inte i början av eller inne i funktionen. Man kan inte avlägsna kort ur funktionen. Obs! Funktionen själv kan också sluta med ett f-kort. Då utförs funktionen på nytt och på nytt tills det första "omöjliga kommandot" kommer. En funktion som anropar sig själv kallas rekursiv funktion. Funktion Den gröna roboten utför en funktion som flyttar den två rutor framåt. Efter det svänger den till höger och går en ruta framåt. Det här är en funktion som övre radens F-kort anropar. Kommandoserien som skall utföras är alltså: IDÉER Du kan själv planera olika spelbräden genom att placera spärrplattorna och diamanterna på olika sätt. Om spelet känns svårt kan ni börja med att spela utan kapningsmöjligheten. Ni kan också välja att spela spelet med slutna kort. ROBOGEM_Ohjevihko_148x210mm.indd 11 23.3.2015 12.13 THE MISSION Robots land on a distant planet in search of diamonds, which they use as a power source for their spaceships. Program your robot to collect three diamonds and to carry them back to your base. The fastest player wins the game! PREPARING TO PLAY • Place the 12 spaceblockers and the 10 diamonds on the board as shown in the picture. All the diamonds are of equal value. Board layout • Each player chooses a robot and places it on the corresponding base in each corner of the board. Each robot is placed on its base so that the black arrow points towards the base opposite, as shown above. robots spaceblocker • Remove all the Function cards (10) from the ‘command card pack’. • Shuffle the pack. • Deal 5 command cards to each player face up. • Place the pack next to the board face down. ROBOGEM_Ohjevihko_148x210mm.indd 12 23.3.2015 12.13 THE AIM OF THE GAME The youngest player starts. Taking turns, each player moves their robot according to their command cards. In this way, each player’s robot executes its program. You command your robot with four different command cards: class Player attr_accessor :name, :color, def pick_cards(deck, count):cards def picked initialize(color, name) = [] @color color> 0 && deck.length > 0 while =count @name = name picked.push(deck.pop) @cards count==[]count - 1 endend end picked end FORWARD – the robot moves one square forward. (50 cards) classPlayer Player class attr_accessor :name,:color, :color, :cards attr_accessor :name, :cards def pick_cards(deck, count) definitialize(color, initialize(color, name) def name) picked = [] @color color> 0 && deck.length > 0 @color color while==count @name name @name ==name picked.push(deck.pop) @cards @cards ==[]=[]count - 1 count end endend end end picked end LEFT – the robot turns 90 degrees anticlockwise on the spot. (25 cards) Executing a 5-step program The robot turns on the spot in the direction indicated by the orange arrow on the robot. Starting position: The robot moves one square forward in the direction indicated by the black arrow on the robot. ROBOGEM_Ohjevihko_148x210mm.indd 13 classPlayer Player class attr_accessor :name,:color, :color, :cards attr_accessor :name, :cards def pick_cards(deck, count) definitialize(color, initialize(color, name) def name) picked = [] @color color> 0 && deck.length > 0 @color color while==count @name = name @name = name picked.push(deck.pop) @cards @cards ==[] count =[]count - 1 endend end end picked end end class classPlayer Player attr_accessor :name, :cards attr_accessor :name,:color, :color, :cards def pick_cards(deck, count) def name) definitialize(color, initialize(color, name) picked = [] @color color @color color> 0 && deck.length > 0 while==count @name ==name @name name picked.push(deck.pop) @cards ==[]=[]count - 1 @cards count end endend end end picked end RIGHT – the robot turns FUNCTION – with a 90 degrees clockwise Function or ‘F Card’, on the spot. (25 cards) you can save a series of 1–5 command cards. (10 cards) Example of a series of command cards (program): The robot turns on the spot in the direction indicated by the yellow arrow on the robot. The robot moves one square forward in the direction indicated by the black arrow on the robot. The robot turns on the spot in the direction indicated by the yellow arrow on the robot. 23.3.2015 12.13 re ts a out c e f ef gh nd rou Sou ed th me! w a allo the g Be ep be ep ! TAKING YOUR TURN 1 When it’s your turn to play, arrange your cards in a row in front of you so that they form a series of commands, namely the program. You can use all your cards, or get rid of any you don’t need by putting them in the ‘spare pack’. After arranging your cards, your program is ready and you are not allowed to change it anymore! 2 Execute your program from left to right one card at a time by moving your robot accordingly. If you can’t proceed (e.g. a ‘spaceblocker’ is blocking your path), the program is terminated and you continue from point number 5 below. 3 If your robot reaches a square with a diamond on it, your robot picks up the diamond and keeps going. 4 If your robot reaches a square with another robot on it, you can push the other robot onto the next square. If the robot you push has a diamond, you can capture the diamond. 5 After you have executed your program, put your used cards in the spare pack and take five new cards from the command card pack. Then it’s the next player’s turn. If you can’t form the program that you want from your cards, you can simply ‘rest and recharge’ by missing a turn: put your cards in the spare pack and this time take 7 cards from the ‘command card pack’. Then the turn passes to the next player. When the command cards run out, shuffle the spare pack. This then becomes the new command card pack. Note: This can only be done once during the game. The game ends when the command cards run out for the second time. The youngest players and beginners can use just one command card at a time instead of the whole program. More experienced players can help beginners to give their robots good commands. ROBOGEM_Ohjevihko_148x210mm.indd 14 23.3.2015 12.13 Executing a 4-step program Bug in the program! Capturing a diamond The green robot moves two squares forward, turns to the right on the spot, and then moves one square forward. The third command for the red robot cannot be executed because it would lead the robot off the board. The robot has to stop where it is after the second move. The red robot pushes the green robot forward before turning to the right and continuing on its way. During the push, one diamond is transferred from the green robot to the red robot. • If the robot you push has several diamonds, you can capture one diamond for every square that you push the other robot forward. • Capturing a diamond is possible only if the opposing robot can be pushed according to the rules (e.g. pushing off the board or pushing into a spaceblocker is forbidden). • If the robot enters its base with diamonds, the diamonds are left at the base and the robot can return to collect more diamonds. • Warning! If you push a robot onto a square that contains a diamond, the pushed robot gets the diamond. • The arrows on the pushed robot have no effect. • A robot cannot push two robots at the same time, or push spaceblockers. • If the pushing robot already has three diamonds, no more diamonds can be captured. But pushing is still possible in this case. • If a robot is carrying three diamonds, it can’t collect any more. This robot can no longer enter squares that contain diamonds because they then turn into obstacles. • A robot cannot move or be pushed outside the limits of the board or pass through a spaceblocker. • A robot cannot enter another robot’s base. ENDING THE GAME The game ends when the first player has brought three diamonds at his or her base. But the game can also end when the command card pack runs out for the second time. In this case, the round continues until all the command cards still in play have been used. Then the game is over. If the game ends before anyone has three diamonds at their base, the winner is the one who has the most diamonds at their base. In the event of two or more players having the same number of diamonds back at base, the winner is the one whose robot is carrying the most diamonds. ROBOGEM_Ohjevihko_148x210mm.indd 15 23.3.2015 12.13 UPPING YOUR GAME WITH A FUNCTION CALL! Skilled players can add a further challenging element to the game – function! In this case, the ten F Cards are also shuffled in the command card pack at the start of the game. Instead of discarding unused cards in the spare card pack, the player can form a function with them, which is a separate series of command cards placed face-up next to the main program that the player creates (see below). The cards that form the function remain on the table until the end of the game and will not be put into the spare pack at any time. When a player is dealt an F Card and decides to include it in his or her main program, the F Card will always ‘call’ and execute the whole function. The execution of the program will, however, always stop at the first ‘inoperable command’. A function can consist of a maximum of 5 cards. If you want to add more cards to the function, they can only be added to the end of the function, not at the beginning or in the middle. Cards cannot be removed from the function. Note! A function itself can also end in an ‘F Card’, in which case the function will be executed repeatedly until the first ‘inoperable command’. A function that calls itself in this way is called a recursive function. Executing a function within a program The green robot executes the function, moving the robot two squares forward. Then the robot turns to the right and moves one square forward. A function ‘called’ by an F Card in the upper row (main program). The whole series of commands that will be executed is shown below: VARIATIONS You can change the layout on the board by placing spaceblockers and diamonds in a different formation. If the game seems too challenging, you can play without the possibility of capturing diamonds from your opponents. ROBOGEM_Ohjevihko_148x210mm.indd 16 23.3.2015 12.13
© Copyright 2024