Erster Buchstabe immer gleich
Übersicht

Woody the woodiestBetreff: Erster Buchstabe immer gleich |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn ich folgnde Funktion ausführe, und die damit generierten Namen im Programm anzeige, ist der Anfangsbuchstabe jedes Namens beim wiederholten Aufrufen der Funktion, der selbe wie bei den vorigen Malen.
Wenn ich die Namen aber in mehreren Textdateien speichere, ist der erste Buchstabe verschieden. Code: [AUSKLAPPEN] function Namensgenerierung() for a=0 to Namenanzahl for b=0 to Laenge(a) Namen$(a)=Namen$(a)+chr$(rand(Ersterbuchstabe,Letzterbuchstabe)) next next end function Ich hab eine Ahnung, woran das liegen könnte: Für jede dieser Textdateien hab ich das Programm extra einmal gestartet, als die Namen aber im Programm generiert wurden, war das während einem Programmstart. Ich weiß aber nicht, wie ich das beheben kann. Danke im Voraus |
||
Am Sonntag sind die Autobahnen leer, so kann man ruhig in Urlaub fahren.
Würden alle so denken, wären die Autobahnen am Sonntag voll. Warum sind sie es trotzdem nicht? Weil der Großteil der Bevölkerung gar nicht denken KANN. |
D²O |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
SEEDRND MILLISECS() ???? | ||
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK; |
Woody the woodiest |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ist schon im Code enthalten! | ||
Am Sonntag sind die Autobahnen leer, so kann man ruhig in Urlaub fahren.
Würden alle so denken, wären die Autobahnen am Sonntag voll. Warum sind sie es trotzdem nicht? Weil der Großteil der Bevölkerung gar nicht denken KANN. |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
vielleicht in deiner Mainloop enthalten? Je nachdem wie flott dein Proggie rennt weird dann der Zufallsgenerator zig-hunderte male mit demselben Wert initialisiert. Ergebnis: Gleiche Buchstaben... | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Woody the woodiest |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hier mal der etwas vollständigere code, damit keine Irrtümer auftauchen.
@Bladerunnne:rSeedrnd millisecs() ist nicht in der Hauptschleife. Code: [AUSKLAPPEN] seedrnd millisecs() const Namenanzahl=176 const mindestzahl=2 const mindestzahl=14 const Ersterbuchstabe=97 const Letzterbuchstabe=122 For a=0 To Namenanzahl If Laengenauswahl=0 Then Laenge(a)=Rand(Mindestzahl,Hoechstzahl) End If Next Function Namensgenerierung() For a=0 To Namenanzahl For b=0 To Laenge(a) Namen$(a)=Namen$(a)+Chr$(Rand(Ersterbuchstabe,Letzterbuchstabe)) Next Next End Function Function Anfangsbuchstabegross() For a=0 To Namenanzahl Anfangsbuchstabe(a)=Asc(Upper$(Left$(Namen$(a),1))) ;Der erste Buchstabe (von links) wird groß gemacht Namen$(a)=Chr$(Anfangsbuchstabe(a))+Right$(Namen$(a),Laenge(a)-1) Next End Function repeat if Generieren=1 then Generieren Anfangsbuchstabegross Generieren=0 end if until keyhit(1) |
||
Am Sonntag sind die Autobahnen leer, so kann man ruhig in Urlaub fahren.
Würden alle so denken, wären die Autobahnen am Sonntag voll. Warum sind sie es trotzdem nicht? Weil der Großteil der Bevölkerung gar nicht denken KANN. |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da der Code nichtmal ansatzweise Komplett ist (eine ganze Ladung Dims fehlen, Syntaxfehler drin etc.) wird dir so kaum jemand helfen können.
Beispiele: generieren alleinstehend. Compiler meckert (zurecht) dass er die Funktion Generieren nicht kennt. Zweimal Mindestanzahl als Konstante definiert. und und und... |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Woody the woodiest |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hier ist der ganze Code, die Images müsst ihr noch in den richtigen Folder kopieren:
Die Images: http://www.sucox.art-fx.org/Bl...APTISM.png http://www.sucox.art-fx.org/Bl...APTISM.png http://www.sucox.art-fx.org/Bl...e_JLTW.png http://www.sucox.art-fx.org/Bl...APTISM.png Code: [AUSKLAPPEN] Graphics 800,600,32,1 ;Vollbild mit Auflösung 800x600x32 SetBuffer BackBuffer() AppTitle "BAPTISM" ;Hintergrundfarbe ClsColor 60,130,255 Color 0,0,0 SeedRnd MilliSecs() ;Saat basiert auf vergangener Zeit seit PC-Start ;Font laden Buttonbeschriftung=LoadFont("Franklin Gothic Medium",18,1,0,0) Namenfont=LoadFont("Franklin Gothic Medium",16,0,0,0) ;---------------- ;Images laden | ;---------------- Mauszeiger=LoadImage("Mauszeiger_BAPTISM.png") Anzeigeflaeche=LoadImage("Anzeigefläche_JLTW.png") Namenanzeigeflaeche=LoadImage("Namenanzeigefläche_BAPTISM.png") Buttonvorlage=LoadImage("Buttonvorlage_BAPTISM.png") ;------------- ;Arrays | ;------------- Dim Namen$(Namenanzahl) ;Array für die zufällig generierten Namen (80 Stück) Dim Laenge(Namenanzahl) ;Array für die Länge jedes Namens Dim Vokale(4) ;ASCII-Codes für die Vokale "a,e,i,o,u" Dim Konsonanten(20) ;ASCII-Codes für die Konsonanten Dim Anfangsbuchstabe(Namenanzahl) ;ASCII-Code für den ersten Buchstaben jedes Namens ;-------------------- ;Arrays füllen | ;-------------------- ;Array "Vokale" füllen Vokale(0)=97 Vokale(1)=101 Vokale(2)=105 Vokale(3)=112 Vokale(4)=117 ;Array "Konsonanten" füllen Konsonanten(0)=98 Konsonanten(1)=99 Konsonanten(2)=100 Konsonanten(3)=102 Konsonanten(4)=103 Konsonanten(5)=104 For a=6 To 11 For b=106 To 111 Konsonanten(a)=b Next Next Konsonanten(12)=113 Konsonanten(13)=114 Konsonanten(14)=115 Konsonanten(15)=116 Konsonanten(16)=118 Konsonanten(17)=119 Konsonanten(18)=120 Konsonanten(19)=121 Konsonanten(20)=122 ;-------------------------- ;Variablen/Konstanten | ;-------------------------- ;Konstanten Const Namenanzahl=176 ;Anzahl der Namen im Array "Namen" Const Mindestzahl=2 ;Mindestanzahl der Buchstaben in einem Namen Const Hoechstzahl=12 ;Höchstzahl von Buchstaben in einem Namen Const Ersterbuchstabe=97 ;ASCII-Code für den ersten Buchstaben "a" Const Letzterbuchstabe=122 ;ASCII-Code für den letzten Buchstaben "z" ;Positionen Buttons, Anzeigeflächen etc. ;Anzeigeflächen Const NamenanzeigeflaecheX=190 Const NamenanzeigeflaecheY=70 Const AnzeigeflaecheX=35 Const AnzeigeflaecheY=40 ;Buttons Const GenerierenbuttonX=57 Const GenerierenbuttonY=88 Const SpeichernbuttonX=57 Const SpeichernbuttonY=122 Const EinstellungenbuttonX=57 Const EinstellungenbuttonY=158 Const EndbuttonX=57 Const EndbuttonY=498 ;Variablen ;-------------------- ;Funktionen | ;------------------- ;Funktion zur zufälligen Bestimmung der Länge der Namen Function Laengenbestimmung() For a=0 To Namenanzahl If Laengenauswahl=0 Then Laenge(a)=Rand(Mindestzahl,Hoechstzahl) End If Next End Function ;Funktion zum Generieren der Namen Function Namensgenerierung() For a=0 To Namenanzahl For b=0 To Laenge(a) Namen$(a)=Namen$(a)+Chr$(Rand(Ersterbuchstabe,Letzterbuchstabe)) Next Next End Function ;Funktion zum großmachen der Anfangsbuchstaben der Namen Function Anfangsbuchstabegross() For a=0 To Namenanzahl Anfangsbuchstabe(a)=Asc(Upper$(Left$(Namen$(a),1))) ;Der erste Buchstabe (von links) wird groß gemacht Namen$(a)=Chr$(Anfangsbuchstabe(a))+Right$(Namen$(a),Laenge(a)-1) Next End Function ;Funktion zum Speichern ;Standardpfad und -dateiname Benutzerdefiniert=1 Global Pfad$="C:\Programme\" Global Dateiname$="Namen" Function Speichern() Daten=WriteFile(Pfad + Dateiname + ".txt") For a=0 To Namenanzahl WriteLine Daten,Namen$(a) Next CloseFile Daten End Function ;Funktion zum Optimieren der Namen (Verhindert, dass mehr als zwei Konsonanten/Vokale hintereinander stehen) Function Optimierung() For a=0 To Namenanzahl For b=0 To 4 For c=0 To Hoechstzahl If Mid$(Namen$(a),1,1)=Vokale(b) And Mid$(Namen$(a),2,1)=Vokale(b) And Mid$(Namen$(a),3,1)=Vokale(b) Then Abschnitt=Rand(4) If Abschnitt=0 Then Namen$(a)=Replace(Namen$(a),Mid$(Namen$(a),3,1),Rand(98,100)) End If If Abschnittg=1 Then Namen$(a)=Replace(Namen$(a),Mid$(Namen$(a),3,1),Rand(102,104)) End If If Abschnitt=2 Then Namen$(a)=Replace(Namen$(a),Mid$(Namen$(a),3,1),Rand(106,111)) End If If Abschnitt=3 Then Namen$(a)=Replace(Namen$(a),Mid$(Namen$(a),3,1),Rand(113,116)) End If If Abschnitt=4 Then Namen$(a)=Replace(Namen$(a),Mid$(Namen$(a),3,1),Rand(118,122)) End If End If Next Next Next End Function ;-------------------- ;Hauptschleife | ;-------------------- Repeat Cls ;-------|------------| ;-------|------------| ;BENUTZEROBERFLÄCHE--| ;-------|------------| ;-------|------------| ;---------------------- ;Buttons etc. malen | ;---------------------- ;Anzeigefläche DrawImage Anzeigeflaeche,AnzeigeflaecheX,AnzeigeflaecheY ;Namenanzeigeflaeche DrawImage Namenanzeigeflaeche,NamenanzeigeflaecheX,NamenanzeigeflaecheY ;Generierenbutton DrawImage Buttonvorlage,GenerierenbuttonX,GenerierenbuttonY ;Speichernbutton DrawImage Buttonvorlage,SpeichernbuttonX,SpeichernbuttonY ;Einstellungenbutton DrawImage Buttonvorlage,EinstellungenbuttonX,EinstellungenbuttonY ;Endebutton DrawImage Buttonvorlage,EndbuttonX,EndbuttonY ;------------------------ ;Buttons beschriften | ;------------------------ SetFont Buttonbeschriftung ;Font für die Beschriftung der Buttons setzen ;Generierenbutton Text GenerierenbuttonX+13,GenerierenbuttonY+3,"Generieren",0,0 ;Speichernbutton Text SpeichernbuttonX+15,SpeichernbuttonY+3,"Speichern",0,0 ;Einstellungenbutton Text EinstellungenbuttonX+5,EinstellungenbuttonY+2,"Einstellungen",0,0 ;Endebutton Text EndbuttonX+32,EndbuttonY+2,"Ende",0,0 ;------------------------------------ ;Kollisionsabfragen und die Folgen | ;------------------------------------ ;----------- ;Hotkeys | ;----------- ;Hotkey zum Generieren If KeyDown(34) Then Generieren=1 End If ;Hotkey zum Speichern If KeyDown(31) Then Speichern=1 End If ;Hotkey zum Einstellen If KeyDown(18) Then Einstellungen=1 End If ;--------------------- ;Gedrückte Buttons | ;--------------------- ;Beim Drücken des Endebuttons If ImagesCollide(Mauszeiger,MauszeigerX,MauszeigerY,0,Buttonvorlage,EndbuttonX,EndbuttonY,0) And MouseDown(1) Then Beenden=1 End If ;Beim Drücken des Generierenbuttons If ImagesCollide(Mauszeiger,MauszeigerX,MauszeigerY,0,Buttonvorlage,GenerierenbuttonX,GenerierenbuttonY,0) And MouseDown(1) Then Generieren=1 End If If Generieren=1 Then Einstellungen=0 Speichern=0 ;Funktionen aufrufen Laengenbestimmung ;Länge wird für jeden Namen zufällig bestimmt Namensgenerierung ;Namen werden generiert ;Optimierung ;Namen werden optimiet Anfangsbuchstabegross ;Anfangsbuchstaben werden groß gemacht Generieren=0 End If ;Beim Drücken des Speichernbuttons If ImagesCollide(Mauszeiger,MauszeigerX,MauszeigerY,0,Buttonvorlage,SpeichernbuttonX,SpeichernbuttonY,0) And MouseHit(1) Then Speichern=1 End If If Speichern=1 Then Generieren=0 Einstellungen=0 ;Funktion zum Speichern aufrufen Speichern End If ;Beim Drücken des Einstellungenbuttons If ImagesCollide(Mauszeiger,MauszeigerX,MauszeigerY,0,Buttonvorlage,EinstellungenbuttonX,EinstellungenbuttonY,0) And MouseDown(1) Then Einstellungen=1 End If If Einstellungen=1 Then Generieren=0 Speichern=0 End If ;----------------------------------------- ;Namen auf Namenanzeigefläche anzeigen | ;----------------------------------------- SetFont Namenfont ;Erste Spalte For a=0 To 35 Text 197,89+a*12,Namen$(a),0,0 Next ;Zweite Spalte For a=35 To 70 Text 297,89+(a-35)*12,Namen$(a),0,0 Next ;Dritte Spalte For a=71 To 106 Text 397,89+(a-71)*12,Namen$(a),0,0 Next ;Vierte Spalte For a=106 To 141 Text 497,89+(a-106)*12,Namen$(a),0,0 Next ;Fünfte Spalte For a=141 To 176 Text 597,89+(a-141)*12,Namen$(a),0,0 Next ;--------------- ;Mauszeiger | ;--------------- MauszeigerX=MouseX() MauszeigerY=MouseY() DrawImage Mauszeiger,MauszeigerX,MauszeigerY Flip Until Beenden=1 Or KeyHit(1) End |
||
Am Sonntag sind die Autobahnen leer, so kann man ruhig in Urlaub fahren.
Würden alle so denken, wären die Autobahnen am Sonntag voll. Warum sind sie es trotzdem nicht? Weil der Großteil der Bevölkerung gar nicht denken KANN. |
![]() |
Ralf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
Code: [AUSKLAPPEN] Function Namensgenerierung()
For a=0 To Namenanzahl namen$(a)="" ; Diese Zeile musst Du einfügen, dann klappt es auch For b=0 To Laenge(a) Namen$(a)=Namen$(a)+Chr$(Rand(Ersterbuchstabe,Letzterbuchstabe)) Next Next End Function Vor dem 2. Aufruf der Funktion werden die Inhalte des Dim-Feldes Namen$ nicht gelöscht. Darum bleibt der ertste Buchtstabe immer gleich. Ralf |
||
Woody the woodiest |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Thx
hab jetzt aber wieder ein Problem und da ich keinen neuen thread aufmachen will, post ich das einfach hierrein, weil es sich um das gleiche prog handelt. Also, ich hab jetzt ein Funktion geschrieben, die die Namen optimieren soll (sollen glaubwürdig klingen), die noch nciht fertig ist, aber schon einen Bug aufweist. Code: [AUSKLAPPEN] Function Optimierung() For a=0 To Namenanzahl For b=0 To 4 For c=0 To Laenge(a) If Chr$(Mid$(Namen$(a),c,1))=b Then Buchstabenarten(a,c)=0 Else Buchstabenarten(a,c)=1 End If Next Next Next End Function Es kommt die Fehlermeldung "Parameter must be greater than 0", wenn ich das Prog ausführe. Damit ihr den Bug bereinigen könnt, müsst ihr die Optimierungsfunktion des obenstehenden Programms(die einfaach nur bullshit ist) von mir einfach durch die hier im Post oben stehende Funktion ersetzen. Thx im Voraus |
||
Am Sonntag sind die Autobahnen leer, so kann man ruhig in Urlaub fahren.
Würden alle so denken, wären die Autobahnen am Sonntag voll. Warum sind sie es trotzdem nicht? Weil der Großteil der Bevölkerung gar nicht denken KANN. |
![]() |
Ralf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
Zitat: Von mir bekommst du SICHER keine Tipps mehr !
Denn wenn du dich nicht mal für etwas bedanken kannst, dann bleib wo der Pfeffer wächst ! Ich muss Hot-Bit Recht geben. Deinen Code durchzusehen, den Fehler finden, und dies auch noch verständlich zu schreiben kostet Zeit. Da kann man doch zumindest ein kleines Feedback erwarten, ob der Tipp nun gehofen hat oder nicht. So ist mir das auch zu einseitig! Ralf |
||
Woody the woodiest |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@hot bit
Ich bedank mich doch immer im Voraus, damit ich nacher nicht noch extra einen neuen Post machen muss und ihr euch dann beschwert, dass ich meinem postzähler durch Bedankungen erhöhe. Howgh! @Ralf denk doch mal ein bisschen nach! Wenn ich nichts mehr schreib, heißt das, dass es geholfen hat, ist das Prob aber immer noch nicht gelöst, schreib ichs dann auch (bei meinem post nach deiner Antowrt steht am Anfang sogar ein Thx) Thx im Voraus |
||
Am Sonntag sind die Autobahnen leer, so kann man ruhig in Urlaub fahren.
Würden alle so denken, wären die Autobahnen am Sonntag voll. Warum sind sie es trotzdem nicht? Weil der Großteil der Bevölkerung gar nicht denken KANN. |
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mir fiel als erstes mal ins Auge, daß du versuchst den nullten Buchstaben ausfindig zu machen. ![]() Bei MID mußt du immer mit 1 beginnen !!! Code: [AUSKLAPPEN] Function Optimierung()
For a=0 To Namenanzahl For b=0 To 4 For c=1 To Laenge(a) If Chr$(Mid$(Namen$(a),c,1))=b Then Buchstabenarten(a,c)=0 Else Buchstabenarten(a,c)=1 End If Next Next Next End Function So, und jetzt noch was generelles : Schau mal in die f..king Hilfe, da stehen solche Sachen schon mal drin ! 8) Weil das sind wirklich ziemlich einfache Bugs gewesen... |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group