Antworten auf deine Fragen:
Neues Thema erstellen

Javascript: Problem mit Solitär/Halma-Script

Tim

Hutträger

Hallo zusammen,

vielleicht kann mir ja von euch einer helfen, ich sitze vor einem Javascript-Problemchen, das ich nicht gelöst kriege.

Ich habe von meinem Vorgänger ein Javascript für ein Solitär/Halma-Spiel (das Hüpf/Steckerchenspiel, nicht das mit den Karten) vorliegen, das nun etwas verbessert werden soll.
Das meiste habe ich bereits vorgenommen, aber eine Sache bereitet mir Kopfzerbrechen.
Aktuell kann man immer einen "Stecker" selektieren um damit über einen benachbarten Stecker zu hüpfen.

Falls man sich nun verklickt hat und einen Stecker selektiert hat, der gar nicht zum Hüpfen geeignet ist oder mit dem man doch nicht hüpfen will, muss man diesen erst wieder deselektieren bevor man einen neuen Stecker selektieren kann.
Besser wäre natürlich, wenn man einfach beliebig selektieren könnte.

Den Code findet ihr , ich wäre dankbar, wenn mir dabei jemand unter die Arme greifen könnte.

Liebe Grüße
Tim
 

saila

Moderatorle

AW: Javascript: Problem mit Solitär/Halma-Script

Hi Tim,

würde dir gerne da Unterstützung anbieten, da es ja auch recht interessant ist. Allerdings bin ich zur Zeit mächtig eingebunden und habe selbst für ein eigenes Projekt kaum bzw. gar keine Zeit mehr.
Wenn es möglich ist, würde ich mit einsteigen, sobald ich wieder Zeit über hätte.

Zum Thma der Selection. Ich würde lediglich die Spielfiguren zum hüpfen ermöglichen, welche auch die Voraussetzungen bieten.
 

Haetti

Nicht mehr ganz neu hier

AW: Javascript: Problem mit Solitär/Halma-Script

hallo Tim

Ich hab mir den Code nur kurz flüchtig angesehen und kann daher zum Ablauf des Programms wenig sagen.

Allerdings ist mir aufgefallen, dass hier viel Code doppelt (oder besser gesagt 49fach) steht.

Ich empfehle dir daher mit For-Schleifen zu arbeiten (oder von mir aus auch while). Somit kannst du sehr viel Code sparen und das Ganze wird übersichtlicher.

Bsp.: aus
Code:
[FONT=monospace]piece[COLOR=#009900][[/COLOR][COLOR=#cc0000]1[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933]=[/COLOR][COLOR=#cc0000]0[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[FONT=monospace]piece[COLOR=#009900][[/COLOR][COLOR=#cc0000]2[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933]=[/COLOR][COLOR=#cc0000]0[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[FONT=monospace]piece[COLOR=#009900][[/COLOR][COLOR=#cc0000]3[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933]=[/COLOR][COLOR=#cc0000]0[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[FONT=monospace]piece[COLOR=#009900][[/COLOR][COLOR=#cc0000]4[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933]=[/COLOR][COLOR=#cc0000]0[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[FONT=monospace]piece[COLOR=#009900][[/COLOR][COLOR=#cc0000]5[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933]=[/COLOR][COLOR=#cc0000]0[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[FONT=monospace]...[/FONT]
[FONT=monospace]piece[COLOR=#009900][[/COLOR][COLOR=#cc0000]49[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933]=[/COLOR][COLOR=#cc0000]0[/COLOR][COLOR=#339933];[/COLOR][/FONT]

mache

Code:
for (i = 1; i <= 49; i++)
    piece[i] = 0;

Edit: hab's mir jetzt auch noch etwas genauer angesehen

// mist, nach langem Schreiben ist mein FF abgestürzt. Hier nochmals meine weiteren Gedanken

ich kenne das Spiel nicht wirklich und ohne Kommentare fällt es mir auch schwer, den ganzen Ablauf nachzuvollziehen. Aber ich lasse mal meinen Gedanken freien Lauf:

in der Funktion checkSource(klick) wird zuerst überprüft, ob bereits ein Stecker markiert ist und führt dann wohl den Zug aus.

Ansonsten wird ein Stecker selektiert bzw. deselektiert

Code:
[COLOR=#000066][B]switch[/B][/COLOR][COLOR=#009900]([/COLOR]piece[COLOR=#009900][[/COLOR]klick[COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
[COLOR=#000066][B]    case[/B][/COLOR] [COLOR=#cc0000]2[/COLOR][COLOR=#339933]:[/COLOR]
      grafik[COLOR=#009900]([/COLOR]klick[COLOR=#339933],[/COLOR][COLOR=#cc0000]1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
      current [COLOR=#339933]=[/COLOR] [COLOR=#003366][B]null[/B][/COLOR][COLOR=#339933];[/COLOR]
      ok [COLOR=#339933]=[/COLOR] [COLOR=#003366][B]true[/B][/COLOR][COLOR=#339933];[/COLOR]
 
      [COLOR=#000066][B]break[/B][/COLOR][COLOR=#339933];[/COLOR]
      [COLOR=#000066][B]case[/B][/COLOR] [COLOR=#cc0000]1[/COLOR][COLOR=#339933]:[/COLOR]
      [COLOR=#000066][B]if[/B][/COLOR] [COLOR=#009900]([/COLOR]current[COLOR=#339933]==[/COLOR][COLOR=#003366][B]null[/B][/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
          grafik[COLOR=#009900]([/COLOR]klick[COLOR=#339933],[/COLOR][COLOR=#cc0000]2[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
          current [COLOR=#339933]=[/COLOR] klick[COLOR=#339933];[/COLOR]
          ok [COLOR=#339933]=[/COLOR] [COLOR=#003366][B]true[/B][/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#009900]}[/COLOR]
        [COLOR=#000066][B]break[/B][/COLOR][COLOR=#339933];[/COLOR]

      [COLOR=#009900]}[/COLOR]

Wenn piece[klick] = 2 ist, so ist der Stecker bereits selektiert und wird deselektiert, bei 1 umgekehrt. M.E. musst du diesen Teil anpassen. Und zwar denke ich, dass es in etwa so aussehen müsste:


Code:
if (!ok && klick != 0) {
  switch(piece[klick]) {
    case 2:
    // das Deselektieren lassen wir so, wie es ist
    grafik(klick, 1);
    current = null;
    ok = true;
    break;
 
    case 1:
    // das if current == null wird in if current != null geaendert. Wir ueberpruefen naemlich vor dem selektieren, ob bereits ein Stecker selektiert ist.
    // ist dies so, wird dieser Stecker erst deselektiert
    if (current != null)
      grafik(current, 1);
 
    // nun selektieren wir den neuen Stecker
    grafik (klick, 2);
    current = klick;
    ok = true;
  }
}

Mein Code ist ungetestet. Es kann durchaus sein, dass noch ein oder zwei Flüchtigkeitsfehler drin sind. Aber es ist in etwa das, wie ich denke, muss es sein.

Gruss
Hätti
 
Zuletzt bearbeitet:

Tim

Hutträger

AW: Javascript: Problem mit Solitär/Halma-Script

Hallo Haetti,

klasse! Funktioniert tadellos und der Nebel der Verwirrung zu dem Code hat sich mit deiner Erklärung auch ein Stück weit gelüftet.

Danke!
Gruß, Tim
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.611
Beiträge
1.538.341
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben