Programmieraufgabe zur Nacht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • wann ist denn nochmal "Einsendeschluss"?

    Kommentar


    • Absicht, das deine check-Funktion keinen Funktionskörper besitzt?

      Kommentar


      • nagut, ich hab nochmal bei 0 Angefangen, da ich das grad so wollt und promt ist noch ein (meiner Meinung nach) besserer, flexibler und besser anzupassender Code dabei rausgekommen.

        Die Wortliste ist in "wortliste.php" gespeichert.
        Es werden die Parameter "search", der Eingabestring und
        "mode" der Arbeitsmodus ('dev' für das var_dump des arrays, wa in der entwicklung nützlich und 'contest', der Modus indem es nur das Wort ausgibt)

        Ein Beispielaufru wäre also: http://tools-box.net/dym/scanword.ph...e&mode=contest


        Den Code gibts hier: http://clipboard.4webmaster.net/79

        Lg,
        Bueddl
        Zuletzt geändert von ; 15.07.2008, 11:05.

        Kommentar


        • Die Wortliste kommt mir komisch vor. Keine Umlaute? EreignisErderwrmung?
          Welche Absicht steckt dahinter?

          Kommentar


          • Du hättest das Testscript nicht posten dürfen. Ich habe es gerade überflogen und es scheint reversibel zu sein.
            Die Basis ist fix (Wortliste, Alphabet), die max. Anzahl und die Art der Fehler ist bekannt. Der Zufall bestimmt nur die letztliche Ausprägung der Verunstaltung.

            Meine Lösung würde den Edit-Abstand zu jedem Wort aus der Liste berechnen. Das Minimum wird als Vorschlag ausgegeben. Das ist quasi das Inverse deiner Art, die Rechtschreibfehler zu erzeugen. Imho sollte das immer eine korrekte Ausgabe liefern.

            Es sieht auch so aus, als könne man die Aufgabe nur bei geeigneter Wortliste eindeutig korrekt lösen. Sobald sich zwei Wörter in der Liste so sehr ähneln, dass sie in Reichweite der zufälligen Änderungen liegen, gibt es mehrere korrekte Lösungen.

            Ein Beispiel: In der Liste stehen Sack und Socke. Dein Testscript gibt Lack vor. Das kann aus beiden Wörtern generiert worden sein. Aus dem L ein S, schon hat man Sack. Aus dem a ein o und hinten ein e dran ergibt Socke.
            Zuletzt geändert von onemorenerd; 09.07.2008, 00:39.

            Kommentar


            • Übrigens habe ich gerade nicht die Zeit habe, eine eigene Lösung zu erstellen. Aber es sieht so aus, als könne man die Aufgabe nur bei geeigneter Wortliste eindeutig korrekt lösen. Sobald sich zwei Wörter in der Liste so sehr ähneln, dass sie in Reichweite der zufälligen Änderungen liegen, gibt es mehrere korrekte Lösungen.
              Genau das ist das von mir angesprochene Verhalten bei den Funktionen levenshtein und metaphone. Da ist das gleiche Verhalten zu erkennen.

              Kommentar


              • habe gerade mal auf blauen dunst etwas ausprobiert - liefert zu deiner funktion gute ergebnisse.

                PHP-Code:
                function getBestWord($unsets_word)
                {
                    
                // Wortliste - eventuell als Funktions-Parameter mitgeben
                    
                global $words;
                    
                    
                $best_word null;
                    
                $best_sum 0;

                    
                $unsets_word_chars count_chars($unsets_word);

                    foreach(
                $words as $original_word)
                    {
                        
                $orginal_word_chars count_chars($original_word);
                        
                $tmp_sum array_sum(array_intersect_assoc($orginal_word_chars$unsets_word_chars));
                        
                        if(
                $tmp_sum $best_sum)
                        {
                            
                $best_word $original_word;
                            
                $best_sum $tmp_sum;
                        }
                    }
                    
                    return 
                $best_word;

                braucht aber irgendwie ewig: Maximum execution time of 30 seconds exceeded
                falls du es mit testest, executiontime hochsetzen - dafür ist die funktion aber kurz

                Kommentar


                • Wenn ihr super langen Code postet, dann nehmt doch http://clipboard.4webmaster.net/
                  Dann muss man wenigstens nicht ewig nach unten scrollen, nur um den nächsten Beitrag zu finden.
                  Sunshine CMS
                  BannerAdManagement
                  Borlabs - because we make IT easier
                  Formulargenerator [color=red]Neu![/color]
                  Herkunftsstatistik [color=red]Neu![/color]

                  Kommentar


                  • @unset, ich hab noch n zusätzliches Programm geschrieben, dass meine Variablen anpasst, muss ich das auch posten, weil eigentlich macht das programm das ja nur einmal und ich setzte die meiner Meinugn nach besten Variablen dann fest. Will nur nicht deswegen Punkte abgezogen bekommen


                    ___________
                    edit:
                    ok, meine funktion hätt zulange gedauert, mein code bleibt jetzt so, wie er ist

                    Lg,
                    Bueddl
                    Zuletzt geändert von ; 09.07.2008, 21:13.

                    Kommentar


                    • nachdem jetzt bestimmts unset's ganzer rechner (nicht nur die platte) den geist aufgegeben hat , wollte ich mal eine idee für eine ganz anderes programmier-spiel in das forum schmeißen.

                      ich stelle mir ein turnier von programmen die z.b. Tic Tac Toe (bestimmt zu simpel) oder schach (bestimmt zu schwer ) können - natürlich selbst programmiert und in php. jedes programm eines jeden mitspielers spielt dann gegen alle anderen und dem gewinner wird ruhm und ehre zuteil könnte später auch eine liga werden

                      ich habe nur so keine richtige idee, welches spiel - es müsste relativ simple regeln haben aber doch recht komplex sein, damit man auch an der strategie feilen kann. jeder teilnehmer müsste dann eine klasse programmieren, die ein regel-interface implementiert und dann könnte es auch schon losgehen.

                      was haltet ihr davon?

                      Kommentar


                      • Ne Poker-Enginge wäre bockstark. Und dazu steuert jeder seine Klasse bei, die entsprechend mitspielen kann. Da könnte man mal ordentlich an der Strategie feilen - der Langzeitspaßfaktor würde da nicht zu kurz kommen.

                        Ja gut - der Aufwand wäre vielleicht eine kleine Hürde

                        EDIT:

                        Gerade gefunden: gibt sogar ne PHP-Poker-Enginge:
                        http://www.phpclasses.org/browse/package/3149.html

                        Zuletzt geändert von eintrachtemil; 10.07.2008, 08:54.
                        Simploo CMS - das einfache Webseiten-Bearbeitungsprogramm

                        Kommentar


                        • Ich kenne mich mit Poker nicht aus, aber ist es nicht so, dass da sehr viel vom Glück abhängt (welche Karten man bekommt)? Dann fände ich Poker nicht gut.
                          Bei Schach ist es nicht so. Da ist die Anfangssituation immer gleich, es gibt keinen Zufall, selbst die nächsten gegnerischen Züge kann man versuchen zu berechnen. Schach wäre mein Favorit. Dumm nur, dass man im Netz viele Papers und sogar fertige Algorithmen findet.

                          Ich würde aber generell sagen, dass dieser Thread/Contest so weiterleben sollte wie er ist. Für den Spiele-Contest sollte ein eigener Thread aufgemacht werden.
                          Das schöne hier ist nämlich, dass die Aufgaben hier bunt gemischt sind und eine gewisse Praxisnähe haben. Ich hätte z.B. noch zwei Ideen, die nichts mit Kryptographie oder Mathematik zu tun haben sondern direkt in einer Webseite eingebaut werden könnten. Andere haben vielleicht auch was in petto oder werden später noch vom einem Geistesblitz getroffen. Es wäre schade, wenn hier wegen einer Spielliga kein Raum mehr dafür wäre.

                          Kommentar


                          • OffTopic:
                            Bei der Texas Hold'em Poker-Variante hängt sehr viel von der Strategie ab. Etwas Glück (welche Hände bekomme ich) ist natürlich immer dabei, auf die Dauer setzt sich aber die bessere Strategie durch. So müsste die Poker-Engine den Besten immer über mehrere Durchläufe mitteln.

                            Da gibt es auch verschiedene Berechnungsverfahren, die die Chancen in bestimmten Situationen ermitteln, die man gut einbauen könnte - kombiniert dann mit der eigenen Spielweise und Taktik.

                            Da ich selber hin und wieder privat Poker spiele, würde mich das voll reizen. Aber wahrscheinlich für mal kurz so nebenher etwas zu aufwendig.

                            Dessen ungeachtet sollte der bestehende Thread natürlich weiterbestehen.
                            Simploo CMS - das einfache Webseiten-Bearbeitungsprogramm

                            Kommentar


                            • Also ich finde diese Idee auch wirklich gut...

                              Nur Poker wäre meiner Meinung nach nicht das Richtige.

                              Es gibt beim Poker natürlich schon strategien etc. allerdings hat es trotzdem immer noch viel mit Glück zu tun und die Strategien so zu verfeinern ist vielleicht (für den Anfang) etwas zu komplex.

                              TicTacToe ist natürlich prädestiniert. Nur ist hier das Problem, dass die Logik so einfach ist, dass wenn 2 Klassen gegeneinander spielen es nach 1000 Spielen 500:500 stehen wird.

                              Natürlich muss vor Anfang der KI-Programmierung schon der "Spielmaster" (so nenne ich ihn einfach mal) geschrieben werden.

                              Mein Vorschlag: 4 gewinnt.

                              Und falls ich die Tage mal Zeit habe werde ich den Spielmaster schreiben
                              signed oder unsigned... das ist hier die Frage

                              Kommentar


                              • So einen Wettbewerb finde ich auch ziemlich interessant. Allerdings sollte es in einem solchen Rahmen sein, dass auch Leute mitspielen können, die weniger Zeit haben (Arbeit, Studium, Reallife). Damit meine ich, die Basisfunktion ist recht schnell implementiert und es kann dann viel Zeit in die Strategie gesetzt werden.
                                Schach könnte vielleicht sogar so ein Spiel sein. Poker gefällt mir persönlich aber auch nicht, liegt wohl am trotzdem noch vorhandenen Glücksfaktor und einige schon professionell spielen und andere - so wie ich - noch nicht mal die Regeln kennen. 4 gewinnt ist aber auch cool!
                                Wie schon gesagt, sollte aber in einen anderen Thread, dieser Thread sollte so bestehen bleiben.

                                Kommentar

                                Lädt...
                                X