MOOC tehtävä 24 mättää!

Ei vaan osaa

Mikä tässä koodissa mättää kun MOOC tarkistus antaa vain 88% pisteistä.
Ulos tulee virhe: Komennon ratkaise sammuta, tulee ohjata robotti työntämään laatikko kohdealueelle. Eli mitä se tarkoittaa?
-------------------------------------------------------------------------------------------------------

import java.util.Scanner;
import robotti.Ohjain;

public class Paaohjelma {

public static void main(String[] args) {
Scanner lukija = new Scanner(System.in);

Ohjain.asetaLaatikkoSatunnaisesti();
Ohjain.kaynnista();

// kertoo robotin x- ja y-koordinaatit
int robottiX = Ohjain.robottiX();
int robottiY = Ohjain.robottiY();

// kertoo laatikon x- ja y-koordinaatit
int laatikkoX = Ohjain.laatikkoX();
int laatikkoY = Ohjain.laatikkoY();

// kertoo rahtialueen x- ja y-koordinaatit
int tavoiteX = Ohjain.tavoiteX();
int tavoiteY = Ohjain.tavoiteY();

while (true) {
System.out.print("Komento (sammuta, vasen, oikea, liiku, liikuMonta, ratkaise): ");
String komento = lukija.nextLine();
if (komento.equals("sammuta")) {
Ohjain.sammuta();
break;

} else if (komento.equals("vasen")) {
Ohjain.vasen();

} else if (komento.equals("oikea")) {
Ohjain.oikea();

} else if (komento.equals("liiku")) {
Ohjain.liiku();

} else if (komento.equals("liikuMonta")) {
System.out.print("Kuinka monta askelta: ");
int askel = Integer.parseInt(lukija.nextLine());
Ohjain.liikuMonta(askel);

} else if (komento.equals("ratkaise")) {
Ohjain.vasen();

int laatikolleY = laatikkoY - robottiY;
int laatikolleX = laatikkoX - robottiX;
int tavoitteelleY = tavoiteY - laatikkoY;
int tavoitteelleX = tavoiteX - laatikkoX - 1;

Ohjain.liikuMonta(laatikolleY);
Ohjain.oikea();
Ohjain.liikuMonta(laatikolleX);
Ohjain.liikuMonta(tavoitteelleX);

Ohjain.vasen();
Ohjain.liiku();
Ohjain.oikea();
Ohjain.liiku();
Ohjain.oikea();
Ohjain.liikuMonta(tavoitteelleY);
Ohjain.liiku();
Ohjain.liikuMonta(tavoitteelleX);

}
}
}
}

10

2128

    Vastaukset 10

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • paakalloohjelma

      Muistuttaa aika paljon C-kieltä JAVA kyllä, tiedän erään ammattikorkean yliopettajan joka tietäisi noista, itse en JAVA:a en juurikaan tunne, C:tä sekä Assemblyä kyllä.

      Muuta funktion nimeksi "Paakalloohjelma"

    • Javaw

      Sulla on break-lause tossa ekassa if-lauseessa, jolloin metodin suoritus loppuu.

      Break vain switch...caseihin ja looppeihin.

      • 3Timo

        Ja en nyt me varmaks sanomaan, mut yleensä hyviin btapoihin kuuluu alustaa muuttujat (yleensä nollaks) ennenkuin niitä aletaan käyttämään? Nythän tossa pelkästään luetaan noi robotin ajurin antamat koordinaatit, jotka voi alkutilanteessaan olla ihan mitä tahansa!?


    • aloittelija

      Vastaus tulee hiukan myöhässä. Itsekkin jonkun aikaa tehtävää pähkäilin, mutta kokeile tuolla (ellet jo ole ratkaisua keksinyt) :

      // Robotin ohjaus
      int laatikolleY = laatikkoY - robottiY;
      int laatikolleX = laatikkoX - robottiX;
      int tavoitteelleY = laatikkoY - tavoiteY;
      int tavoitteelleX = tavoiteX - laatikkoX;

      Ohjain.vasen();
      Ohjain.liikuMonta(laatikolleY);
      Ohjain.oikea();
      Ohjain.liikuMonta(laatikolleX);
      Ohjain.liikuMonta(tavoitteelleX - 1);
      Ohjain.vasen();
      Ohjain.liiku();
      Ohjain.oikea();
      Ohjain.liiku();
      Ohjain.oikea();
      Ohjain.liikuMonta(tavoitteelleY);

      • Koodaajaksiko

        Ei toimi näin, sillä jos robotti lähtee vierestä, niin se tekee saman kaavan ylempänä. Tämä tehtävä on vaikea...


    • poweruser

      ei vitun takkutukka

    • ayyadf

      Onko kellää 100% koodia?

    • ystävällinen_herrasmies
    • jolan

      YLEMPI EI TOIMIKKAAN SORI; UUSI
      http://pastebin.com/raw/KEtVAhRz

      • close

        Tuo oli ihan hyvä yritys, mutta ei kuitenkaan oikea vastaus. Vaikka järjestelmä sen hyväksyisikin niin tehtävänannossa on sanottu, että "Komennon "ratkaise" tulee toimia myös silloin, kun se annetaan komennon "viereen" jälkeen.", jota tämä kyseisen koodi ei toteuta.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Suomalaisten pinna paloi - Ärsytys iskee uudesta TTK-juontajasta "Eihän tälle voi kun nauraa"

      Oliko Veronica Verho hyvä valinta TTK-juontajaksi? Uuden TTK-juontajan henkilöllisyyttä on arvailtu siitä asti, kun Va
      Suomalaiset julkkikset
      109
      2250
    2. Mitäpä luulet että tykkääkö

      kukaan kaivatustasi ?
      Ikävä
      103
      896
    3. T rakastan sua

      vaikket sitä usko
      Ikävä
      69
      871
    4. Mitä tapahtuu?

      Mitä tapahtuu Humalojalla? Poliiseja talon ympärillä ja paljon ihmisiä pitkin pihoja???
      Haapavesi
      22
      852
    5. Varmaan aika moni

      Haluaisi sinut enemmän kuin mielellään
      Ikävä
      48
      835
    6. Suomi on viittä vaille sodassa Venäjän kanssa...

      ...syynä tähän on kokoomuslainen presidenttimme Stubb. Hän on ainoa eurooppalaisen maan johtaja, joka kärkkäästi ja taha
      Maailman menoa
      541
      770
    7. Miksi et lähesty minua

      Jos kerran kaipaat, mies? Mitä pelkäät?
      Ikävä
      80
      687
    8. Olen vähän epävarma siitä, oletko kiltti

      Nainen, ensivaikutelma oli, että olet tosi hyväsydäminen eli siinä mielessä harvinaisuus. Eli et mene virran mukana, etk
      Ikävä
      76
      650
    9. Herkkä, hellä, aurinkoinen, kaunis upea, valonsäde on hän nainen

      Ja myös fiksu, älykäs ja luonnonläheinen. Erittäin mielenkiintoinen ja kiltti ihminen. Haluan tuntea hänet, koska kaik
      Ikävä
      23
      600
    10. Kai sä olet

      Luovuttanut mun suhteen.
      Ikävä
      57
      561
    Aihe