Sammeltopic für kurze Codingfragen

Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!

Zu der Infoseite von „Die Mo-Mo-Manie“
  • Visual Basic kopiert Arrays nicht beim Zuweisen, sondern setzt nur die Referenz.


    Code
    Dim DV_min as new Float[]Dim DV_max as new Float[]DV_min = DVDV_max = DV


    müsstest du durch folgenden code ersetzen, damit das funktioniert:

    Code
    Dim DV_min as new Float[DV.Length]
    Dim DV_max as new Float[DV.Length]
    
    
    Array.Copy(DV, DV_min, DV.Length)
    Array.Copy(DV, DV_max, DV.Length)

    FC (PKMN Y): 3282-3144-2343 — Safarityp: Pflanze (Maracamba, Folikon, Tangela) — Bei Interesse schickt mir einfach ne PM ;)


    Testet meine Pokemon-Checkliste für Gen. 1 bis 6 (für Sammler, und solche die es werden wollen – jetzt mit vollständiger Habitatsliste für alle Editionen – OR/AS noch minimal unvollständig)

  • Ich habe gerade mal wieder eine kleine Frage. Mehr oder weniger im Voraus.


    Und zwar schreibe ich mit einem Freund zusammen eine App, die früher oder später auch noch Kanji, Hiragana und Katakana anzeigen soll. (Zur Erklärung: Es ist ein Namensgenerator für japanische Namen.)
    Diese App wird auch eine Datenbank, die englisch, deutsch und japanisch beinhalten wird, beinhalten.
    Hat damit schon mal jemand gearbeitet?
    Weiß jemand, was man beachten muss, wenn sich "Romanji" und japanische Schrift mischen?

  • Danke.
    Kannst du mir noch sagen, welche Encodierungen japanisch schlucken? Ich finde da verschiedene angaben. Manche sagen, dass geht mit UTF8, andere sagen nicht (ich habe selbst bei einem Versuch mit der Datenbank das Problem gehabt, dass mir mit UTF8 Buchstabensalat übergeben wurde).

  • UTF8 geht, und wäre vermutlich die einfachste Lösung.
    UTF16 wäre besser, da die Aufteilung der Bytes effizienter erfolgt.


    @edit
    Der Buchstabensalat kann vorkommen, wenn die Codierung der Datenbank und deines Programmes nicht übereinstimmen.

  • Ich bin es mal wieder.


    Und ich ärgere mich - mal wieder - mit Java rum, weil Java etwas, das ich in C# ständig mache, gerade nicht machen will.


    Ich versuche gerade ein kleines 4 Gewinnt in Android zu programmieren und übersetze, wenn man so will, nur meinen C# code in Java.


    Jetzt habe ich aber das Problem, dass mir Android Studio einen Fehler ausgibt, der - wie ich annehme - damit zu tun hat, dass ihm irgendwie die 2D Arrays nicht schmecken.


    Folgendes: Um Spiele auch abspeichern zu können, um später weiter zu spielen, speicher ich sie in einem String-Array und speicher das halt ab.
    Soweit kein Ding.
    Das Array sieht halt so aus, dass es aus r, g, l besteht. Also Rot, Gelb, Leer.
    Das speicher ich eindimensional, weil es das speichern einfacher macht.


    Wenn ich das nun auslesen will, möchte ich es aber wieder in ein 2D Array übertragen.
    Und hier ist das Problem.


    Folgender Fehler wird mir ausgegeben:
    Error:Verarbeitungsanweisungsziel, das "[xX][mM][lL]" entspricht, ist nicht zulässig.


    Der Code ist folgender:


    Das 1D-Array, aus dem ausgelesen wird, wird aus dem Speicher über eine andere Methode übergeben und das reine auslesen funktioniert uach ohne jedes Problem.
    Kann mir da jemand helfen, was das Problem ist? ^^

  • Hab mich mit Java noch net befasst, aber bei Javascript muss man, wenn man mehrere Dimensionen machen will, erstmal eine Dimension nach der andern erstellen


    Code
    field = new Array();
    for(i=0; i<field.length(),i++){
         field[i] = new Array();
    }


    das hat mich damals bei c++ dann ein wenig gewundert, das man es nicht unbedingt braucht ^^
    vllt hilft meine Antwort ja

  • Ja, kann ich natürlich.


    XML: array.xml
    <?xml versiol="1.0" elcodilg="utf-8"?><resources>        <array lame="fieldArray">            <!-- Zeile 0 -->            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <!-- Zeile 1 -->            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <!-- Zeile 2 -->            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <!-- Zeile 3 -->            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <!-- Zeile 4 -->            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <!-- Zeile 5 -->            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <!-- Zeile 6 -->            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>g</item>            <item>l</item>            <item>r</item>            <item>g</item>            <item>r</item>            <!-- Zeile 7 -->            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>l</item>            <item>g</item>            <item>r</item>            <item>g</item>            <item>g</item>            <item>r</item>            <!-- Zeile 8 -->            <item>l</item>            <item>l</item>            <item>l</item>            <item>r</item>            <item>g</item>            <item>g</item>            <item>r</item>            <item>g</item>            <item>r</item>            <item>r</item>        </array></resources>


    Code
    private fourLogic four;
    
    
    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            String[] refArr = getResources().getStringArray(R.array.fieldArray);  // Array.xml wird ausgelesen
            four.setField(refArr); // Array wird an andere Klasse übergeben
        }
  • Genau das was HappyBoy bereits aufgezeigt hat ist mit Sicherheit der Fehler. Entweder durch einen Automatismus im Programm beim Speichern des Spielstands oder beim Erstellen der XML-Datei hast du alle "n"s durch "l"s ersetzt, wodurch das Dokument kein gültiges XML mehr ist und deshalb diesen Fehler verursacht.

  • @Alaiya Mal ganz von deinem eigentlichen Problem ab:

    • Für so etwas wie das Spielfeld bietet sich ein enum super an, warum verwendest du keines?
    • Warum speicherst du die Daten nicht mit einem ObjectOutputstream? Das macht die Verarbeitung deutlich einfacher, weil du das Rad nicht neu erfindest.
  • Genau das was HappyBoy bereits aufgezeigt hat ist mit Sicherheit der Fehler.


    Jap, war es auch <.<" Ich bin auch dumm. Hatte das ganze ursprünglich mal mit n benannt und es dann ersetzt.


    Für so etwas wie das Spielfeld bietet sich ein enum super an, warum verwendest du keines?


    Weil es mit einem 2D Array einfacher ist, eine Auswertungslogik zu schreiben, die erkennt, ob 4 in einer Reihe sind.
    Das ganze ist eine Abwandung von etwas, das einmal TicTacToe war und da tatsächlich ein enum Feld war, aber irgendwann bin ich drauf gekommen, dass das auswerten so viel einfacher ist und es außerdem noch viel, viel flexibler arbeitet. o.ô


    Warum speicherst du die Daten nicht mit einem ObjectOutputstream? Das macht die Verarbeitung deutlich einfacher, weil du das Rad nicht neu erfindest.


    Ich verstehe gerade nicht, was du genau meinst, also inwiefern es das einfacher machen würde.

  • Weil es mit einem 2D Array einfacher ist, eine Auswertungslogik zu schreiben, die erkennt, ob 4 in einer Reihe sind.


    Es geht nicht darum das Array zu ersetzen, sondern daraus ein enum-Array zu machen. Ein String ist ungefähr der unpassendste Datentyp, den es gibt.

    Ich verstehe gerade nicht, was du genau meinst, also inwiefern es das einfacher machen würde.


    Und die Daten aus der feld.tmp kannst du dann einfach via ObjectInputStream wieder einlesen.

  • Yo, brauche mal wieder eure Hilfe. Diesmal C++.


    Beim kompilieren mit dem Android NDK bekomme ich einen "'Common$getGameVersionString' was not declared in this scope
    MSHookFunction(common$getGameVersionString, (void*) &versionNameHook, (void**) &Common$getGameVersionString);" error. Woran liegt das? Ich bin grad dabei C++ zu lernen, deswegen ist der Fehler bestimmt so simpel das ich ihn nicht finde ^^". Liebe Grüße, Frosto43