コード例 #1
0
  /**
   * piirtää reitin tiedostoon ja reittikartta taulukkoon
   *
   * @param käydytsolmut
   * @throws IOException
   */
  public void piirräreitti(PriorityQueue<Solmu> käydytsolmut) throws IOException {

    String nimi = new String("uk");
    BufferedWriter reittikarttatiedosto = new BufferedWriter(new FileWriter("uk"));
    Solmu solmu = new Solmu(0, 0, null, 0);

    while (!käydytsolmut.isEmpty()) {
      solmu = käydytsolmut.poll();

      for (int n = 0; n < kartankoko; n++) {
        for (int i = 0; i < kartankoko; i++) {
          if (solmu.x == n && solmu.y == i) {
            // reittikartta[i][n] = '-';
            reittikartta[i][n] = (char) (solmu.summaamatkat(0, solmu.annavanhempi()) + 65);
            // reittikarttatiedosto.write("-");
            reittikarttatiedosto.write('-');
          } else {
            reittikarttatiedosto.write(reittikartta[i][n]);
          }
        }
        reittikarttatiedosto.newLine();
      }
    }
    reittikarttatiedosto.close();
    tulostakartta(reittikartta);
  }
コード例 #2
0
 /**
  * arvottaa reitin sen perusteella mitä merkkejä kartassa on saa numeerisen kartan ja tekee siitä
  * yksinkertaisemman näköisen esim. kaikki random merkit jotka kaikki ovat yhtä arvokkaita niin
  * saavat saman arvon.
  *
  * @param kartta
  * @throws FileNotFoundException
  */
 public void arvotareitti(char[][] kartta) throws FileNotFoundException {
   reittikartta = uusikartta(kartta);
   this.arvokartta = arvotakartta(kartta);
   for (int n = 0; n < kartankoko; n++) {
     for (int i = 0; i < kartankoko; i++) {
       if (arvokartta[n][i] == -1) {
         reittikartta[n][i] = 'L';
         maalisolmu.x = i;
         maalisolmu.y = n;
       } else if (arvokartta[n][i] == 1) {
         reittikartta[n][i] = 'o';
       } else if (arvokartta[n][i] == 30) {
         reittikartta[n][i] = '3';
       } else if (arvokartta[n][i] == 400) {
         reittikartta[n][i] = '4';
       } else if (arvokartta[n][i] == 0) {
         reittikartta[n][i] = 'A';
       }
     }
   }
 }
コード例 #3
0
 public void arvotasolmu(Solmu solmu) {
   solmu.etäisyysvanhemmasta = arvokartta[solmu.y][solmu.x];
 }