Seite 3 von 4

Handshake....

Verfasst: 15.09.2006 09:35
von prs

Code: Alles auswählen

;*********************************************************************************************
; Handshake   LernSoftware <-> Game      PB 4.0  Version 1.0  14.09.2006 
;*********************************************************************************************
;Hab mich für einen Handshake ala MS API enschieden.....

;Mittels CreateGame wird das Spiel auf eurer Seite initialisiert.
;Procedure CreateGame(*Gc.GameControl,*TermArray,*PhraseArray)
 
;*Gc.GAMECONTROL Pointer auf eine übergebene GAMECONTROL Struktur. Auslesen wieviele
;Terme GcHowManyTerms und wieviele Sätze GcHowManyPhrases vorhanden sind. Eigenes Array
;DIM MyTerm.GAMETERM(GcHowManyTerms) und DIM MyPhrase.GAMEPHRASE(GcHowManyPhrases) erstellen.
;CopyMemory(*TermArray,*MyTerm,SizeOF(MyTerm)) und dasselbe mit 
;CopyMemory(*PhraseArray,*MyPhrase,SizeOF(MyPhrase)). Somit wären dann alle Contentdaten
;bekannt.... Das Spiel kann beginnen...

;Rückgabewerte mittels Poke direkt an die entpsrechenden Offsets.






;-Declaration Constants
Enumeration                ; Rückgabewerte für Structure GameControl -> GcReturnProgrammQuit
  #ProgrammQuit             ; Das Spiel wurde korrekt beendet (und gespielt)
  #ProgrammUserAbort        ; User hat das Spiel vorzeitig abgebrochen
  #ProgrammError            ; Ein Fehler ist im Spiel aufgetreten.
EndEnumeration

Enumeration                ; Rückgabewerte für Structure GameTerm -> GtReturn
  #SucceedAlways            ; In allen Sätzen welche den Begriff beschreiben Term erkannt.
  #SucceedPartial           ; Den Term in einem oder mehr, aber nicht in allen Sätzen erkannt.
  #Unrealised               ; Den Term in keinem Satz erkannt.
EndEnumeration


;-Declaration Structures
Structure GAMEPHRASE
  ;Initialisation
  GpTermId.l                ; Offset 0 - TermId verbindet den Satz mit dem Term
  GpContentSource.s{128}    ; Offset 4 - Der Satz als Text in der Originalsprache 
  GpContentTarget.s{128}    ; Offset 132 - Der Satz als Text in der Zielsprache (z.B. Thailändische Schrift)
  GpContentPhonetic.s{128}  ; Offset 260 - Der Satz als Text in Lautschrift in der Zielsprache (z.B. Thai in Deutscher Schrift)
  GpHndSound.l              ; Offset 388 - PB Handle auf das Audiofile (Sound) im Speicher   
  GpInitReserve.b[16]       ; Offset 392 - Reserviert für späteren Gebrauch
  ;Return                   ; Wurde dieser Satz erkannt?
  GpReturnFlag.b            ; Offset 408 - Rückgabewert muss durch das Spiel gesetzt werden: #True or #False
  GpReturnReserve.b[16]     ; Offset 409 - Reserviert für späteren Gebrauch
EndStructure               ; SizeOF GAMEPHRASE 425

Structure GAMETERM
  ;Initialisation
  GtId.l                    ; Offset 0 - Eindeutige Id für den Term (Begriff) Verbindet den Term mit den Sätzen
  GtContentSource.s{32}     ; Offset 4 - Der Term als Fixed String
  GtContentTarget.s{32}     ; Offset 36 - Der Term als Text in der Zielsprache            ; 
  GtContentPhonetic.s{32}   ; Offset 68 - Der Term als Text in Lautschrift
  GtHndPic.l                ; Offset 100 - PB Handle des im Speicher vorliegenden Pics (Begriff)
  GtHndSound.l              ; Offset 104 - PB Handle des im Speicher vorliegenden Audiofiles (Begriff)
  GtReserve.b[16]           ; Offset 108 - Reserviert für späteren Gebrauch
  ;Return                   ; Wurde dieser Term erkannt? Immer? Manchmal? Nie?
  GtReturn.b                ; Offset 124 - Mögliche Werte: #SucceedAlways #SucceedPartial #Unrealised
  GtReturnReserve.b[16]     ; Offset 125 - Reserviert für späteren Gebrauch
EndStructure              ; SizeOF GAMETERM 141 Bytes

Structure GAMECONTROL
  ;Initialisation
  GcHowManyTerms.l          ; Offset 0 - Wieviele Terme werden an das Spiel übergeben
  GcHowManyPhrases.l        ; Offset 4 - Wieviele Sätze werden an das Spiel übergeben
  GcGameLevel.l             ; Offset 8 - Schwierigkeitsgrad des Spieles
  GcReserve.b[16]           ; Offset 12 - Reserviert für späteren Gebrauch
  ;Return                   ; 
  GcReturnNumberQuestions.l ; Offset 28 - Wieviele Fragen wurden gestellt?
  GcReturnNumberFailings.l  ; Offset 32 - Wieviele Fragen wurden nicht oder falsch beantwortet ?
  GcReturnProgrammQuit.l    ; Offset 36 - Das Spiel wurde beendet. Mögliche Rückgabe #ProgrammQuit #ProgrammUserAbort #ProgrammError
  GcReturnReserve.b[16]     ; Offset 40 - Reserviert für späteren Gebrauch
EndStructure               ; SizeOF GAMECONTROL 56 Bytes



Procedure CreateGame(*Gc.GAMECONTROL,*TermArray,*PhraseArray)




EndProcedure

Bälle...usw

Verfasst: 15.09.2006 10:13
von prs
Ok - Mein Vorschlag des Handshakes steht.... studiert den bitte
zuerst bevor ich mit Fragen überhäuft werde :-)

Kommentare zum Handshake sind natürlich erwünscht. Ein kleines
Programm welches Pseudocontent erstellt, werd ich heute gegen
Abend erstellen. Sollte also spätestens morgen fertig sein.
Falls jemand mir das Erstellen von 100 Audiofiles abnehmen kann, wär
ich dankbar :-)

Wir brauchen mono wavefiles 16 Bit 22khz

"audiofile1A.wav" - "audiofile1J.wav"
"audiofile2A.wav" - "audiofile2J.wav"
"audiofile3A....... usw.........

............................"audiofile10J.wav"

also 100 Stück -> einfach die Nummer des Audiofiles sprechen/aufnehmen:
1A , nächstes File 1B usw....

Tonqualität spielt keine Rolle.




@ DarkDragon:... Wie das Spiel abläuft, darüber kann man noch
diskutieren. Ich stell mir das so vor: Es fallen laufend Terme runter...
Eine Audioaufnahme/Satz.... Term erkannt (zwischen den anderen
Bällen).. nächster Satz.... Term nicht erkannt, Ball zerplatzt auf dem
Boden... wie die anderen mit den falschen Termen. Satz wird
wiederholt.... immer noch nicht erkannt... Satz wird wiederholt und
gleichzeitig geschrieben(Lautschrift)... immer noch nicht erkannt....
hoffnungslos.... nächster Satz.

Alternativ könnten die Bälle auch dreimal hochspringen wie in Shreks Demo... und dann kaputtgehen...

Statt Bälle könnten es auch Kokosnüsse sein, die von einer Palme fallen...

Oder halbtransparente Seifenblasen die nach ner Weile in der Luft zerplatzen....

usw....

Verfasst: 15.09.2006 10:43
von DarkDragon
Also ich habs mir jetzt mehrmals durchgelesen und hab auch schon die obigen Kommentare angewand zum besseren Verstehen(Was mir dann auch gelungen ist :-) ). Was mir allerdings nicht so sauberes aufgefallen ist, ist folgendes:

>> ;Rückgabewerte mittels Poke direkt an die entpsrechenden Offsets.

Warum nicht gleich auf die Struktur zugreifen? Also so:

Code: Alles auswählen

*Gc\GcReturnNumberQuestions = ...
Und bei den Arrays, die man doch sowieso am Ende noch zur verfügung hat einfach zurück kopieren. ;-) :-)

Yub...

Verfasst: 15.09.2006 11:29
von prs
*GAMECONTROL direkt zugreifen ist klar...

Arrays zurückkopieren - Da hast Du völlig Recht... - liegt wohl daran das ich zuviel gepoked und zuwenig geschlafen habe in letzter Zeit.... : :roll:

Werd das mal gleich ändern... zuerst edit und dann schlaf oder umgekehrt? :-)


Betreffend: Chat - Brainstorming aller Interessierten - Wo soll der stattfinden?

Vorschlag heute Abend 19:00.

Verfasst: 15.09.2006 15:29
von Kaeru Gaman
vorschlag:
IRC
treffen im offiziellen PB-Channel ##PureBasic.de auf freenode,
( http://www.purebasic.fr/german/viewtopi ... 7946#27946 )
dann ggf. eigenen channel öffnen.

Verfasst: 15.09.2006 15:47
von DarkDragon
Ja, lässt sich machen. prs sollte dann aber seinen Nickname dort registrieren, sonst funktionieren Queries(Private Nachrichten) nicht.

Verfasst: 15.09.2006 15:59
von Kaeru Gaman
wus? einfache queries zu nem anwesenden funktionieren auch so.
außerdem würde ich sowieso nen channel für alle vorschlagen, und nicht,
dass er sich mit nem dutzend einzelgesprächen rumschlägt.
schließlich schrieb er
> Brainstorming aller Interessierten
und nicht
> Vorstellungsgespräche

PS:
ich werd erstmal zocken.
bin rechtzeitig vor 1900h wieder hier und im chat.

Verfasst: 15.09.2006 16:50
von DarkDragon
Kaeru Gaman hat geschrieben:wus? einfache queries zu nem anwesenden funktionieren auch so.
Nichtregistrierte können nicht im Query senden/empfangen im Freenode IRC

Verfasst: 15.09.2006 18:56
von Kaeru Gaman
wieauchimmer...

ich warte auf ein ACK von prs bezüglich PB-channel...

Verfasst: 15.09.2006 20:00
von DarkDragon
Kaeru Gaman hat geschrieben:wieauchimmer...

ich warte auf ein ACK von prs bezüglich PB-channel...
Tjo, das wird wohl nichtsmehr heute. :( In nen paar Minuten muss ich weg.