C++ funktion in Java umschreiben



  • hallo,
    ich habe hier folgende C++ funktion gegeben:

    // The recursive function that finds all solutions.
    // Returns the number of solutions found.
    uint
    Board::solve () {
      uint i, j, found, cell = findBlank();
      if ( cell == 81 ) {    // full board (print and backtrack)
        found = 1;
        write( std::cout );
      } else {               // assign content to cell
        Board A (*this);     // duplicate board
        i = cell / 9;        // row number
        j = cell - 9 * i;    // column number
        found = 0;           
        for ( uint k = 1; k < 10; ++k ) { // try values
          if ( allows(i, j, k) ) {        // in case they are allowed
    	A.T[i][j] = k; 
    	found += A.solve();
      //  if (found != 1)
      //    std::cout <<"found " << i << "  " << j << "  " << k<<"\n";
          }
        }
      }
      return found;
    }
    

    ich bräuchte diese nun für java,
    was ja nicht so schwer wäre, wenn da nicht diese zeile wäre:

    Board A (*this); // duplicate board

    wie sieht sowas in java aus?

    Board A = this. erfüllt die aufgabe nicht!

    danke danke!

    ps: oder wie sieht das in C aus, wenn ich dort Board als struct deriniert habe?



  • hab es selber herausgefunden!

    Board B = new Board();
        for ( int o = 0; o < 9; ++o )
         for ( int p = 0; p < 9; ++p )
          B.T[o][p] = T[o][p];
    

    so funkts!



  • Board B = T.clone();

    sowas evtl.?



  • nein, clone()
    hat auch nicht gefunkt!



  • hares0815 schrieb:

    nein, clone()
    hat auch nicht gefunkt!

    Wie auch? Hat doch gar keinen Sender.

    Je nach Klasse macht man auch sowas:

    Board A = new Board(this);
    

Anmelden zum Antworten