Español
Juegos

Schiebe-Puzzle - OpenSource

 
- Página 1 -



Julian
Schmidt
Kleines de Langeweile entstandenes Game.

Descargar
externer Descargar

698 kB
Kurzbeschreibung: mirror1
Hochgeladen:20.05.2012
Ladeanzahl287
Descargar
 
XProfan X2
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
04.04.2012  
 



 
- Página 4 -



Jörg
Sellmeyer
Das Erstellen y Löschen uno Mapa de bits-Handles verbraucht sicher mehr Ressourcen y kostet mehr Tiempo como el einmalige Erstellung uno Staics, el Usted entonces bewegen kannst.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
06.04.2012  
 




Julian
Schmidt
Jörg Sellmeyer (06.04.12)

Das Erstellen y Löschen uno Mapa de bits-Handles verbraucht sicher mehr Ressourcen y kostet mehr Tiempo como el einmalige Erstellung uno Staics, el Usted entonces bewegen kannst.


hmmm...gilt el Mostrar uno Mapa de bits-Handles (por DrawPic) en dir para "Löschen y Erstellen uno Mapa de bits-Handles". Erstellen y Löschen tue Yo mi Mapa de bits-Handels einmalig entweder al Anfang oder al Ende des Programms. Ansonsten tue Yo ellos sólo Ausgeben, qué keinesfalls con Erstellen igual kommt.
Einmalig Erstellen y Löschen debería Yo mi Mapa de bits-Handles ebenfallls, si yo una Mapa de bits-Control nutzen sería.
¿Por qué debería el Weg encima Mapa de bits-Controls also weniger Ressourcen y Tiempo costo.
Das einmalige Erstellen erfordert en cada Fall mehr Tiempo, also mehr Rechenpower.
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.04.2012  
 




Jörg
Sellmeyer
Yo weiß sí no, como Usted que aquí nennst:
KompilierenMarcaSeparación
whileloop 1,part_x&,If((part_x& Mod 2)=0,2,1)

    space&=Create("hNewPic", &loop, part_y&, Back_Color())
    DrawPic space&, ((spalte_&-1)*part_x&), (zeile_&-1)*part_y&; 0
    DrawPic pic_part&[i_&], ((spalte_&-1)*part_x&)+&loop, (zeile_&-1)*part_y&; 0
    DeleteObject space&

EndW
a>

Yo nenne el mehrfaches Erstellen uno Bildhandles. Und el es sicher aufwendiger como el mover uno Controls. Aber me ist's auch egal. Yo muß sí no Fehler en Deinem Code encontrar
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
06.04.2012  
 




Julian
Schmidt
Yo sería mich nun gerne a una neuen Algorithmus para Mischen el Puzzle-Teile hacer. Sinn se lo ser, dass sólo lösbar Puzzles entstehen.
Lo son igual mehrere Möglichkeiten, el todos Vorteile o. Nachteile besitzen.
1. Mischen por zufälligem Verschieben el Puzzleteile en el Leerefeld una cierto Zahl de Zügen.
2. Mischen por Zufall a el Parität gerade es (siehe [...] )
3. Gezieltes zufälliges Mischen sodass el Parität siempre gerade es.

El 1. Möglichkeit hätte el Vorteil el esta siempre ungefähr igual dauerte. Aunque debería uno Zahl el Züge en el jeweiligen Feldgrößen optimieren, así el Bild auch ausreichend gemischt wäre.

El 2. wäre para mich relativ simplemente umzusetzen. Aunque sería el Mischvorgang siempre unterschiedlich lang dauern. Theoretisch podría se el Programa en uno Art "Endlosschleife" aufhängen.

El 3. Möglichkeit wäre en el Vergleich a 1. & 2. Möglichkeit wesentlich más rápido. Aunque Sé que no Yo mi Vorstellung umsetzen podría.

Gibt lo todavía mejor Möglichkeiten. Welche Möglichkeit haltet ihr para al Besten.
Mein persönlicher Favorit Es el 1. Möglichkeit.
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.04.2012  
 




Julian
Schmidt
Jörg Sellmeyer (06.04.12)

Yo nenne el mehrfaches Erstellen uno Bildhandles. Und el es sicher aufwendiger como el mover uno Controls. Aber me ist's auch egal. Yo muß sí no Fehler en Deinem Code encontrar


Ya está largo de media Code draußen. Hättest du veces el Source aktualisiert hättest du lo gesehen.
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.04.2012  
 




Jörg
Sellmeyer
Usted puede Usted una tabla de, sagen wir, 100 machbaren Ausgangspositionen invertir. Aus denen suchst Usted entonces por Zufall welche de.
Como va el Mischen entonces ruckzuck.


Ya está largo de media Code draußen. Hättest du veces el Source aktualisiert hättest du lo gesehen.


Das hättest Usted sí oben auch simplemente erwähnen puede.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
06.04.2012  
 




Julian
Schmidt
Jörg Sellmeyer (06.04.12)

Usted puede Usted una tabla de, sagen wir, 100 machbaren Ausgangspositionen invertir. Aus denen suchst Usted entonces por Zufall welche de.
Como va el Mischen entonces ruckzuck.


¿Quieres decir que Yo se me una Datenbank con algunos möglichen Möglichkeiten invertir y de esta entonces Un zufällig auswählen?
Das wäre entonces natürlich el Schnellste. Aunque debería para cada Schwieigkeitsgrad ca. 100 oder mejor mehr Kombinationen eintragen.
Desde que todavía nie con Datenbanken gearbeitet habe, stellt se me el Cuestión, Yo al Besten el Möglichkeiten eintrage y cómo groß el Datenbank con ca. 1000 Einträge ser se.

Jörg Sellmeyer (06.04.12)

Das hättest Usted sí oben auch simplemente erwähnen puede.


Hätte Yo geahnt, dass du dich no en media aktuellen Code beziehst, Sí.
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.04.2012  
 




Jörg
Sellmeyer
Dafür Usted necesita no Datenbank. Un Inidatei más o menos reicht:

Inidatei para Rätsel

[achter]
Start= 0,1,2,3,4,5,6,7,8;1,2,3,4,0,6,5,8,7;2,1,3,4,8,5,0,7,6...

[fuenfzehner]
Start= 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;1,2,3,14,6,5,8,7,0,9,11,10,12,13,15,4;...

...


Nach el gleichen Principio kannst Usted Usted aber auch en el Programa Listen generieren.
Yo ahora el Bedingungen no en el Kopf, el erfüllt ser necesario.
Aus el Pagar (el son el Blöcke en el Puzzle) kannst Usted entonces el Koordinaten calcular.

Un Inidatei ha Beschränkungen en el Longitud el Cuerdas. Tomar más bien una Textdatei en el Usted simplemente Zeilenweise el Start-Cuerdas schreibst

StartDatei
Start08=0,1,2,3,4,5,6,7,8;1,2,3,4,0,6,5,8,7;2,1,3,4,8,5,0,7,6...
Start15= 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;1,2,3,14,6,5,8,7,0,9,11,10,12,13,15,4;...
Start24=...
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
06.04.2012  
 




Julian
Schmidt
Jup, entonces bräuchte Yo al Besten una Quellcode el me mögliche Lösungen en el Ini-Expediente schreibt.
Yo voluntad el en nächster Tiempo versuchen (con el 1. Möglichkeit (siehe oben)) umzusetzen. Lo sei porque, lo taucht una besserer Vorschlag en.
Saludo
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.04.2012  
 




Julian
Schmidt
Yo habe nun una Ver código fuente geschrieben el me mögliche Lösungen auflistet.
Yo scheitere momentan desafortunadamente todavía beim Carta dieser en un Texto-Expediente.
Könnte veces alguien una Ejemplo con Blockwrite hacer?
KompilierenMarcaSeparación
Def Wurzel2(1) Sqrt(@&(1))
Def Spalte_from_ID(1) (INT(@&(1)/Wurzel2(anzahl_teile&))+IF((@&(1) mod Wurzel2(anzahl_teile&))=0,0,1))
Def Zeile_from_ID(1) INT(@&(1)-((Spalte_from_ID(@&(1))-1)*Wurzel2(anzahl_teile&)))
Def DateiName(1) SubStr$(@$(1),-1,"\\")
Def DateiPfad(1) Translate$(@$(1),("\\" + DateiName(@$(1))),"")
Var Programm$=Par$(If((Upper$(SubStr$(Par$(0), -1, "\\"))="PROFAN.EXE") or (Upper$(SubStr$(Par$(0), -1, "\\"))="XPROFAN.EXE"),1,0))
Var txt$=DateiPfad(Programm$)+"\Options.txt"
Declare anzahl_teile&, start_kombination$, kombination$, empty&, pos&[], err&, random&, liste&
cls

whileloop 5

    anzahl_teile&=(&loop+2)^2
    Clear pos&[]

    whileloop anzahl_teile&

        pos&[&loop]=&loop'pos&[Wahre-Positions-ID]=Aktuelle-Positions-ID

    EndWhile

    start_kombination$=Kombination()
    Destroywindow(liste&)
    liste&=Create("Listbox",%hwnd, 0, 0,0,width(%hwnd),height(%hwnd))'Create("List",0)
    empty&=1
    Randomize

    While GetCount(liste&)<1000

        random&=Rnd(2)+1'-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-Verschieben per Zufall

        If random&=1'Horizontal

            If Spalte_from_ID(empty&)=1'Rechts

                Tausche(empty&+Wurzel2(anzahl_teile&))

            ElseIf Spalte_from_ID(empty&)=Wurzel2(anzahl_teile&)'Links

                Tausche(empty&-Wurzel2(anzahl_teile&))

            Else'Links oder Rechts

                random&=Rnd(2)+1

                If random&=1'Links

                    Tausche(empty&-Wurzel2(anzahl_teile&))

                ElseIf random&=2'rechts

                    Tausche(empty&+Wurzel2(anzahl_teile&))

                EndIf

            EndIf

        ElseIf random&=2'Vertikal

            If Zeile_from_ID(empty&)=1'Unten

                Tausche(empty&+1)

            ElseIf Zeile_from_ID(empty&)=Wurzel2(anzahl_teile&)'Oben

                Tausche(empty&-1)

            Else'Oben oder Unten

                random&=Rnd(2)+1

                If random&=1'Oben

                    Tausche(empty&-1)

                ElseIf random&=2'Unten

                    Tausche(empty&+1)

                EndIf

            Endif

        EndIf

        kombination$=Kombination()'-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-Eintragen in Text-Datei

        If start_kombination$<>kombination$

            Clear err&

            whileloop GetCount(liste&)

                If GetString$(liste&,&loop-1)=kombination$

                    err&=1
                    break

                Endif

            Endwhile

            If err&<>1

                Addstring(liste&,kombination$)'noch nicht eingetragene Kombinationen
                'in Text-Datei eintragen
                Settext %hwnd,"Stufe: "+Str$(INT(Wurzel2(anzahl_teile&)-2))+"  Einträge: "+Str$(GetCount(liste&))+" von 1000"

            EndIf

        EndIf

        Case iskey(27) : end

    EndWhile

EndWhile

Proc Tausche

    Parameters id&'empty& und id& tauschen
    Declare x&

    whileloop anzahl_teile&'Wahre-Position von id&

        If pos&[&loop]=id&

            x&=&loop
            break

        EndIf

    EndWhile

    pos&[x&]=empty&
    empty&=id&
    pos&[1]=empty&'Tauschen

EndProc

Proc Kombination

    Declare text$

    whileloop anzahl_teile&

        text$=text$+Str$(pos&[&loop])+"|"

    Endwhile

    Return Left$(text$,Len(text$)span class=s2>-1)

ENDPROC

 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
07.04.2012  
 




Jörg
Sellmeyer
Dafür Usted necesita nada BlockWrite bemühen. Einfach alles en una String y de así:
KompilierenMarcaSeparación
Var Text$ = "Dies\nist\nein\nTest"
Var Datei$ = "C:\Profan\Projekte\Notengenerator\Einstellungen.dat"
Assign #1,Datei$
Print %ioresult
ReWrite #1
Print #1,Text$
Close #1
print %ioresult
WaitInput
Shell "NotePad.exe " + Datei$
Wai
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
07.04.2012  
 




Julian
Schmidt
Ok ,danke
Und como tue Yo al Besten sólo einzelne Zeilen auslesen?
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
07.04.2012  
 




Zum Spiel


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

111.330 Views

Untitledvor 0 min.
H.Brill02.05.2023
Sven Bader14.07.2021
Michael Klumb18.04.2016
Julian Schmidt07.01.2016
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie