Reversi KI
Übersicht

Gehe zu Seite Zurück 1, 2, 3, 4 Weiter
neolein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So, Wochenende vorbei, habe wieder etwas mehr Zeit.
Kurz zur letzten Antwort, ich habe nur gesehen, daß der rote Kreis bei den meisten Zügen von links nach rechts (und von oben nach unten) durchläuft, das SeedRnd habe ich aber noch nicht an den Anfang gestellt, mache ich bei Gelegenheit. Die Lektion über Types habe ich so einigermaßen durch, nun wie ich es verstanden habe sollten wir die RND gewählten Felder unter Fields festlegen und die schon besuchten (erfolglosen) Felder sterben lassen? |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das mit dem roten Kreis ist sicherlich ein Tippfehler. Ich hatte neulich auch sowas. Es lag dann an einer Variablen "MuasX" statt "MausX"
Type-Liste ja, es wird beim wechsel des spielers eine liste aller möglichen felder erstellt. Alle die gar keinen Nachbarn haben und alle bei denen er nichts umdrehen kann, werden erst gat nicht aufgenommen. Der Typ LeerTyp hat nur zwei Fields X% und Y%. die erlaubten Steine werden mit Neu.LeerTyp= New LeerTyp in die Liste aufgenommen und mit Neu\X...etc die Koordinaten vermerkt. Außerdem wird ein Zähler AnzahlLeere% um 1 hochgezählt. Dann kann man mit For Such.LeerTyp = Each LeerTyp...Next alle durchscannen. Der Zufallsgenerator arbeitet nur zwischen 1 und AnzahlLeere und nimmt dann das zufall-te Elemente aus dieser Liste. Ich habe übrigens die SpielerSetzt() und die ComputerSetzt() zu einer einzigen Function zusammengefasst. War ja eh fast das gleiche.... So ist es möglich Spieler gegen Spieler und Computer gegen Computer spielen zu lassen. Auch die KI hab ich schon in eine eigene Routine verfrachtet. Bisher enthält sie nur unsere 2 Methoden: "Spieler setzt mit Maus" und "Spieler setzt per Zufall" . In den Testspielen Computer-Computer hat sich jetzt schon rausgestellt, dass der, der "nicht beginnt" um 20% häufiger gewinnt! |
||
neolein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zum Letzteren, Zusammenfassen von Spieler und ComputerSetzen. Leider bleibt das Spiel hängen
Code: [AUSKLAPPEN] Repeat Setzen() MaleSpielFeld() Until KeyHit(1) End Function Setzen() If SpielerFertig = 2 And MouseHit (1) MausX=MouseX()/50 MausY=MouseY()/50 Ich%= 1 ElseIf SpielerFertig = 1 And Feld(Ebene,MausX,MausY)=0 MausX=Rand (1,8) MausY=Rand (1,8) Ich%= 2 EndIf If IstEsHierErlaubt%(MausX,MausY,Ich) Feld (Ebene,MausX,MausY)=Ich AllesDrehen (MausX,MausY,Ich) SpielerFertig=Ich% EndIf End Function |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Upps, die hättest du gar nicht schreiben müssen, weil ich sie ja schon fertig hatte...
Ich hätte zwei Vorschläge: 1. lass uns doch einen Worklog gründen für das Reversi-Spiel. Dass wird sich ja doch eine Zeit lang hinziehen und du kannst dort dann immer die neueste Gesamt-Version im ersten Beitrag bereitstellen. Ich kann ihn dort zwar dann nicht ändern, aber ich finde unter der immer gleichen Adresse den aktuellen Zustand. Den zweiten Eintrag mach einfach ich und dort findest du dann immer meine Änderungen und meine neuen fertigen Functionen. 2. Lass uns diese Worklog, bzw den Thread hier nicht mehr "Dim (60,8,8)" sondern "Reversi-KI" nennen. Der Titel past inzwischen gar nicht mehr, oder? die neue SpielerSetzt(): BlitzBasic: [AUSKLAPPEN] Function SpielerSetzt() sie benutzt schon die neue "KI-Funktion": BlitzBasic: [AUSKLAPPEN] Function ZugFestlegen(Methode%) Jeder Spieler bekommt ganz am anfang des Programms eine Methode zugeschrieben. BlitzBasic: [AUSKLAPPEN] Dim Methode%(2) Und diese Methode führt dann in der ZugFestlegen() zur Verwendung des dazugehörenden KI-Algo. und sie entält auch schon (auskommentiert) die neue FindeAlleLeeren(), die alle erlaubten Felder in die Liste aufnimmt und daher weiß, ob überhaupt mind. 1 mögliches Feld für den Gegner existiert. Diese Funktion wirst du ja noch schreiben. |
||
neolein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
OK, das mit dem Worklog ist gut, bevor es jedoch weitergeht muß ich mein Spiel wieder zum Laufen bringen, das scheint im Moment irgendwo zu hängen. die Hauptschleife lautet nun:
Repeat SpielerSetzt MaleSpielFeld() Until KeyHit(1) End Code: [AUSKLAPPEN] Graphics 640, 480, 16, 2 Dim Feld% (64,9,9) Dim Methode%(2) Methode(1)=2 Methode(2)=1 Global SpielerFertig%, MausX%, MausY% Global Schwarz Schwarz = CreateImage (36,36) SetBuffer ImageBuffer (Schwarz) Color 5,5,5 Oval 5,5,30,30 Global Weiss Weiss = CreateImage (36,36) SetBuffer ImageBuffer (Weiss) Color 223,223,223 Oval 5,5,30,30 Global Rot Rot = CreateImage (36,36) SetBuffer ImageBuffer (Rot) Color 223,3,3 Oval 5,5,30,30,0 Global RotX%,RotY% SetBuffer BackBuffer() FeldReset() SpielerFertig=2 SeedRnd MilliSecs() Repeat SpielerSetzt MaleSpielFeld() Until KeyHit(1) End Function SpielerSetzt() ZugFestlegen Methode(SpielerNext) MausX=ZufallX MausY=ZufallY If IstEsHierErlaubt(MausX,MausY,SpielerNext) Feld(Ebene,MausX,MausY)=SpielerNext DebugLog "Spieler " + SpielerNext + " setzt auf " + mausX + "/" + MausY AllesDrehen(MausX,MausY,SpielerNext) SpielerNext=3-SpielerNext DebugLog "bald ist Spieler " + SpielerNext + " dran" EndIf End Function Function ZugFestlegen(Methode%) Select Methode Case 0 ; ziehen durch MausKlick If MouseHit(1) Then ZufallX=MouseX()/50 ZufallY=MouseY()/50 Else ZufallX=0 EndIf Case 1 ; ziehen duch Zufall ZufallX=Rand(1,8) ZufallY=Rand(1,8) End Select End Function Function IstEsHierErlaubt%(X%,Y%,Ich%) Local Ergebnis%, Summe%, i%, j% If Feld(Ebene,X,Y)=0 Then For i=-1 To 1 For j=-1 To 1 Ergebnis = ScanneEineRichtung(X, Y, i, j, Ich) Summe =Summe + Ergebnis Next Next EndIf Return summe End Function Function ScanneEineRichtung%(X%, Y%, RichtungX%, RichtungY%, Ich%) Local Erfolg% Repeat X=X+RichtungX Y=Y+RichtungY If (X>8) Or (X<1) Or (Y>8) Or (Y<1) Then Return 0 EndIf If Feld(Ebene,X,Y)=0 Then ; leeres Feld gefunden Return 0 ElseIf Feld(Ebene,X,Y)<>Ich Then ; Gegner-Feld gefunden Erfolg=Erfolg+1 ElseIf Feld(Ebene,X,Y)=Ich Then ; eigenes Feld gefunden Return Erfolg EndIf Forever End Function Function DreheEineRichtung (X%, Y%, RichtungX%, RichtungY%, Ich%) Repeat X=X+RichtungX Y=Y+RichtungY If Feld (Ebene,X,Y)=Ich Then Return EndIf Feld(Ebene,X,Y)=Ich Forever End Function Function AllesDrehen(X%,Y%,Ich%) Local Ergebnis%, Summe%, i%, j% For i=-1 To 1 For j=-1 To 1 If ScanneEineRichtung(X, Y, i, j, Ich)>0 Then DreheEineRichtung (X%, Y%, i, j, Ich%) EndIf Next Next End Function Function MaleSpielFeld() Local X%, Y% Cls Color 50, 100, 50 ;grün Rect 0,0,640,480,1 ;grüner Hintergrund Color 255, 255, 255 For x = 1 To 8 For y = 1 To 8 Rect x*50, Y*50, 50, 50, 0 If feld (Ebene,X,Y) = 1 Then DrawImage Schwarz, X*50+2,Y*50+2 ElseIf feld (Ebene,X,Y) = 2 Then DrawImage Weiss, X*50+2, Y*50+2 EndIf Next Next DrawImage Rot, MausX*50+2, MausY*50+2 Flip 1 End Function Function FeldReset() Local E%, X%, Y% For E = 1 To 60 For X = 1 To 8 For Y = 1 To 8 Feld (E,X,Y)= 0 Next Next Next ; 4 Start-Steine Feld(0,4,5)=1 Feld(0,5,4)=1 Feld(0,4,4)=2 Feld(0,5,5)=2 End Function |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
zu "läuft nicht..."
du hast mit der Übernahme meiner Funktionen einige neue Variablen verwendet. Aber du hast sie aber ganz oben im Code nicht GLOBAL definiert. Ich sende dir hier mal meinen "Global-Block", der auch schon ein paar zulünftige Veriablen enthält: BlitzBasic: [AUSKLAPPEN] Global GibtWasZuMalen%, SpielerFertig%, AnzahlLeere%, ZufallX%, ZufallY%, RotX%, RotY% In den Zusammenhang fällt mir auf, dass wir die Variable, die den aktuellen Spieler beschreibt, immer noch SpielerFertig% nennen. Lass sie uns überall in Spieler% umbenennen. Das trifft es besser! Außerdem musst du jetzt bei der Strategie-Auswahl vor Spielstart festlegen, welcher Spieler welche Methode verfolgt. Es gibt momentan nur 0 und 1: BlitzBasic: [AUSKLAPPEN] Dim Methode%(2) Ich hatte dir hier Methode(1)=2 geschrieben, weil ich schon an einer ersten KI bastle... Wenn Du gegen jemanden spielen willst dann nimm: BlitzBasic: [AUSKLAPPEN] Dim Methode%(2) Um den roten Kreis richtig zu sehen, ist diese Änderung nötig: BlitzBasic: [AUSKLAPPEN] Function ZugFestlegen(Methode%) und in der MaleSpielFeld() BlitzBasic: [AUSKLAPPEN] ... Das Flip 0 mit dem Delay 50 dient dazu, den Prozessor nicht so zu stressen! |
||
neolein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Der rote Kreis läuft mit, aber es dreht sich Nix um, auch wenn ich die Werte unter Methode ändere:
Code: [AUSKLAPPEN] Graphics 640, 480, 16, 2 Dim Feld% (64,9,9) Dim Methode%(2) Methode(1)=0 Methode(2)=1 Global GibtWasZuMalen%, Spieler%, AnzahlLeere%, ZufallX%, ZufallY%, RotX%, RotY% Global MausX%, MausY%, SpielerKonnteNicht%, Immer%, Zeit%, SpielEnde%, WieOft% Global AnzahlSchwarze%, AnzahlWeisse%, SchwarzGewinnt%, WeissGewinnt% Global SchwarzBeginntGewinnt%, WeissBeginntGewinnt%, WerBeginnt% Global Schwarz Schwarz = CreateImage (36,36) SetBuffer ImageBuffer (Schwarz) Color 5,5,5 Oval 5,5,30,30 Global Weiss Weiss = CreateImage (36,36) SetBuffer ImageBuffer (Weiss) Color 223,223,223 Oval 5,5,30,30 Global Rot Rot = CreateImage (36,36) SetBuffer ImageBuffer (Rot) Color 223,3,3 Oval 5,5,30,30,0 SetBuffer BackBuffer() FeldReset() ;Spieler=2 SeedRnd MilliSecs() Repeat SpielerSetzt() MaleSpielFeld() Until KeyHit(1) End Function SpielerSetzt() ZugFestlegen Methode(SpielerNext) MausX=ZufallX MausY=ZufallY If IstEsHierErlaubt(MausX,MausY,SpielerNext) Feld(Ebene,MausX,MausY)=SpielerNext DebugLog "Spieler " + SpielerNext + " setzt auf " + MausX + "/" + MausY AllesDrehen(MausX,MausY,SpielerNext) SpielerNext=3-SpielerNext DebugLog "bald ist Spieler " + SpielerNext + " dran" EndIf End Function Function ZugFestlegen(Methode%) Select Methode Case 0 ; ziehen durch MausKlick RotX=MouseX()/50 RotY=MouseY()/50 If MouseHit(1) Then ZufallX=RotX ZufallY=RotY Else ZufallX=0 EndIf Case 1 RotX=Rand(1,8) RotY=Rand(1,8) ZufallX=RotX ZufallY=RotY End Select End Function Function IstEsHierErlaubt%(X%,Y%,Ich%) Local Ergebnis%, Summe%, i%, j% If Feld(Ebene,X,Y)=0 Then For i=-1 To 1 For j=-1 To 1 Ergebnis = ScanneEineRichtung(X, Y, i, j, Ich) Summe =Summe + Ergebnis Next Next EndIf Return summe End Function Function ScanneEineRichtung%(X%, Y%, RichtungX%, RichtungY%, Ich%) Local Erfolg% Repeat X=X+RichtungX Y=Y+RichtungY If (X>8) Or (X<1) Or (Y>8) Or (Y<1) Then Return 0 EndIf If Feld(Ebene,X,Y)=0 Then ; leeres Feld gefunden Return 0 ElseIf Feld(Ebene,X,Y)<>Ich Then ; Gegner-Feld gefunden Erfolg=Erfolg+1 ElseIf Feld(Ebene,X,Y)=Ich Then ; eigenes Feld gefunden Return Erfolg EndIf Forever End Function Function DreheEineRichtung (X%, Y%, RichtungX%, RichtungY%, Ich%) Repeat X=X+RichtungX Y=Y+RichtungY If Feld (Ebene,X,Y)=Ich Then Return EndIf Feld(Ebene,X,Y)=Ich Forever End Function Function AllesDrehen(X%,Y%,Ich%) Local Ergebnis%, Summe%, i%, j% For i=-1 To 1 For j=-1 To 1 If ScanneEineRichtung(X, Y, i, j, Ich)>0 Then DreheEineRichtung (X%, Y%, i, j, Ich%) EndIf Next Next End Function Function MaleSpielFeld() Local X%, Y% Cls Color 50, 100, 50 ;grün Rect 0,0,640,480,1 ;grüner Hintergrund Color 255, 255, 255 For x = 1 To 8 For y = 1 To 8 Rect x*50, Y*50, 50, 50, 0 If Feld (Ebene,X,Y) = 1 Then DrawImage Schwarz, X*50+2,Y*50+2 ElseIf Feld (Ebene,X,Y) = 2 Then DrawImage Weiss, X*50+2, Y*50+2 EndIf Next Next DrawImage Rot, rotX*50+2, rotY*50+2 Flip 0 Delay 50 End Function Function FeldReset() Local E%, X%, Y% For E = 1 To 60 For X = 1 To 8 For Y = 1 To 8 Feld (E,X,Y)= 0 Next Next Next ; 4 Start-Steine Feld(0,4,5)=1 Feld(0,5,4)=1 Feld(0,4,4)=2 Feld(0,5,5)=2 End Function |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bitte nicht immer den gesamten quelltext neu reinstellen! wir bekommen sinst ärger mit den moderatoren!
Mach einen Worklog auf. das ist das gleiche wie normaler post, aber unter der rubrik worklog. Dort kopiertst du dann (auch wenn wir schon dutzende beiträge geschrieben haben werden), den aktuellen code immer in den ältesten post! Fehler I: Spieler auskommentiert das ist sicher falsch: Zitat: ...
SetBuffer BackBuffer() FeldReset() ;Spieler=2 SeedRnd MilliSecs() Repeat ... Einer der beiden Spieler muss anfangen. Also BlitzBasic: [AUSKLAPPEN] Spieler=2
oder BlitzBasic: [AUSKLAPPEN] Spieler=1
aber auf keinen Fall wegkommentieren! Fehler II: SpielerNext Du hast nicht alle SpielerNext umgewandelt! 8 Stück vergessen! Am besten machst du das mit dem Menü "Edit...Replace...Alle ersetzen..." |
||
- Zuletzt bearbeitet von Midimaster am Di, Feb 09, 2010 14:14, insgesamt 2-mal bearbeitet
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Solange er Codeboxen nimmt soll es mir recht sein. Soviel traffic macht das nun nicht ![]() |
||
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 |
neolein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
OK, Worklog wurde erstellt, 2 Mitglieder, ich habe jetzt den Code geändert und er läuft, aus Versehen habe ich 2 Worklogs erstellt, den ersten würde ich gerne löschen "Reversi-KI", und den 2. behalten aber umbenennen (Rversi-KI). | ||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Einspruch!
Wir werden ganz bestimmt nicht die Portalsfunktion zur Veröffentlichung von Entwicklertagebüchern für derlei Codesupport missbrauchen. Ich hab ehrlich gesagt nicht den Überblick über diesen Thread hier, aber ich bezweifle, das solche Maßnahmen nötig sind, wo es Jahre lang vorher auch nur mit dem Forum ging. ~Worklog gelöscht~ |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
neolein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmm, kann ich ja nicht bestimmen, aber sollte der Woklog nicht gerade dazu dienen, die Flut von Postings einzugrenzen?
Dem wäre damit gedient, wenn Midimaster und ich an einem Code herumbasteln können, ohne ihn ständig neu zu veröffentlichen. Oder geht die Vergabe von Editierungsrechten an Dritte auch im Forum? |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, dazu ist der Worklog nicht da. Im Gegenteil: Als Worklog würdet ihr damit eine ganze Menge Leute belästigen, die mit dem Problem nichts anfangen können. Hier in diesem Thread seid ihr zwei unter euch, da könnt ihr noch viele Seiten schreiben.
Wenn ihr effektivere Methoden zum Austausch benötigt, so könnt ihr das ja selbst organisieren. Sei es per E-Mail, in nem privaten Forum oder sonstwie. Da ihr zwei die einzigen seid, die sich hier austauschen, hat das Thema eh den für ein Forum typischen öffentlichen Charakter verloren. Nicht falsch verstehen: Ihr könnt den Thread gerne weiter so nutzen, aber bitte nicht andere Portalsfunktionen missbrauchen. |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
- Zuletzt bearbeitet von D2006 am Di, Feb 09, 2010 15:23, insgesamt einmal bearbeitet
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
@d2006
oh, sorry, hab ich da was falsch verstanden? Ich dachte echt, der Worklog wäre genau für sowas... Wir entwickeln zusammen eine KI für Reversi und wollten uns auf diesem Weg unsere täglichen Fortschritte mitteilen, ohne eben das Forum zu belästigen. Wann genau darf man denn dan einen Worklog gründen? |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
In einem Worklog präsentiert ein Entwicklerteam die Fortschritte eines Projekts einer interessierten Öffentlichkeit, nicht anderen Teammitgliedern. Ihr wollt ja mehr oder minder ne gute Möglichkeit haben, gemeinsam an einer Codebasis zu arbeiten. Ich empfehle dafür SVN. | ||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok! Da scheine ich wohl eine ganz falsche Vorstellung von diesem Portal-Bereich zu haben. Ich muss zugeben, ich weiß so gut wie gar nicht, was der Unterschied zwischen Forum und Worklog ist.
@D2006 Zitat: ...Als Worklog würdet ihr damit eine ganze Menge Leute belästigen, die mit dem Problem nichts anfangen können...
versteh' ich nicht? Wie soll das belästigen? Werden die Beiträge dort irgendwie automatisch versendet? Ab wieviel Lesern besteht denn ein "öffentliches Interesse"? @neolein dann bleiben wir bei dem alten Thread. Ganz privat per Email ist mir zu umständlich und auch zu persönlich. außerdem sagen mir die 1000 Aufrufe, dass das Ganze nicht ganz ohne öffentliches Interesse zu sein scheint. Vielleicht können wir uns ja darauf einigen, dass du dort den Thread-Titel mal änderst und den Gesamtcode immer im ersten Beitrag vom 29.Jan durch EDIT einfügst? |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie ich bereits erwähnt habe, werden in den Worklogs Projekte beschreibend vorgestellt. Eine Codebox ist keine beschreibende Vorstellung. Insgesamt ist das, was ihr vorhabt, nicht dass, was hier landläufig unter einem Worklog verstanden wird. Und "Belästigung" wäre es, da Leute in den Worklogs eben genau eine solche Vorstellung erwarten, die ihr nicht erfüllen würdet. Es besteht somit auch kein öffentliches Interesse an einen Worklog, der keiner ist. | ||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
neolein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
OK, also ich werde dann den Code im ersten Posting eben immer ändern, er ist jetzt auf dem letzten Stand, die Funktion FindeAlleLeeren() ist noch nicht implementiert, bin mir aber fast sicher, daß die Variable "Erfolg" eingebaut werden muss.
Titel wurde auch geändert. Also das mit dem öffentlichen Interesse halte ich auch für.... ![]() Das fehlende Interesse hat eindeutig einzig und allein Moderator D2006, und die Entscheidung beruht auf seiner sehr subjektiven Argumentationsweise, ich kann mir auch sonst nicht erklären, warum wir mehr als 1000 Aufrufe haben, warum manch Autor in den Worklogs auch nur Monologe in seinen Postings führt... aber gut ist. Zurück zum Code, ich würde gerne noch beim Layout des Spielfeldes die 8 Spalten mit Buchstaben beziffern (a-h oben) und alle Reihen mit Zahlen (1-8 links). Das wäre erstens später bei der Beschreibung einzelner Züge wichtig und 2. ist regulär jedes Othello Spielfeld mit dieser Beschriftung versehen. Wenn es stört können wir es später auch noch einbinden. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die tausend Aufrufe habt ihr sicher auch deswegen weil man alle neue Posts bei BBP-Live angezeigt bekommt und viele User einfach alles anklicken was neu kommt. Dann habe ich bislang noch jeden neuen Post extra gesehen, allein weil ich als Moderator gucken muss ob ein Thread irgendwo aus dem Ruder läuft.
Also werden allein schon durch 57 Posts * 5-9 aktive Moderatoren hunderte von Aufrufen erzeugt. Soviel dazu. Ein Worklog dient der Beschreibung der Entstehung eines Projektes (deswegen auch die Monologe der Entwickler, neolein). Es ist keine Plattform zur Problemlösung, wofür ihr es ja benutzen wollt. Dafür gibt es das Forum, beziehungsweise wenn man eine 'Partnerschaft' eingegangen ist die Wege Privatnachricht, ICQ, Email ... Daher teile ich D2006 Sichtweise vollkommen und kann deinen Unmut auch nicht wirklich verstehen- niemand hindert dich und Midimaster am Austausch, nur gestatten wir halt nicht das Hijacking eines Worklogs für diesen Zweck. |
||
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 |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die 1000 Aufrufe müssen nicht zwingend bedeuten, dass an dem Thread auch hohes Interesse besteht. 1000 Aufrufe heisst nicht, dass hier schon tausend User reingeguckt hätten, sondern, dass der Thread seit der Erstellung tausendmal aufgerufen wurde - durchaus kein Kunststück bei einem dreiseitigen Thread ![]() Der Sinn von Worklogs ist, wie Dee schon sagte, der Öffentlichkeit mitzuteilen, wie es mit der Arbeit vorangeht. Was ihr hier aber tut ist ja einfach zu zweit einen Code erarbeiten. Es gibt nirgends eine Regel, die verbietet, dass in einem Thread nur zwei Leute aktiv mitmachen dürften. Ausserdem besteht ja auch die Möglichkeit, dass plötzlich einer dazwischen funken will (im Sinne von guter Einwand oder Vorschlag), dafür ist eigentlich ein Forum gemacht. Falls ihr mal einen Abend zusammensitzen wollt um den Code gemeinsam zur Perfektion zu bringen, könnte unter Umständen auch das Codepasting hilfreich sein für euch. Bedenkt aber, dass Codes nicht ewig dort bleiben und nach einer Weile automatisch gelöscht werden. Edit Ach, da war mal wieder einer schneller als ich =/ |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
Gehe zu Seite Zurück 1, 2, 3, 4 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group