Love Rechner

Moinsn,
also ich habe mir mal so als kleines Gimmick überlegt, man könnte doch sowas wie einen 'Love Rechner' bauen. man gibt 2 Namen ein.... und das Php Skript berechnet aus den beiden Namen eine prozentuale Zahl die angibt wie gut 2 leute zusammen passen...

sprich ich müsste jedem Buchstaben eine Zahl zu ordnen... und den String dann auseinander nehmen in zahlen umwandeln... addieren % ausrechnen.

Jedoch hab ich kA wie ich sowas realisieren könnte... kennt da wer vllt eine gute Variante oder eventuell ne bessere als das Zahlenaddieren?!
 
Man könnte ja in einem Telefonbuch nachschlagen, wie oft das "Pärchen" vorkommt ;)
http://www.dasoertliche.de/ und dann verrechnen. Allerdings sollte man dann entweder eine eigene Datenbank dafür nutzen oder sich die Nutzungsbedingungen der Anbieter durchlesen.
 
aber beispiels weise den Buchstaben zahlen zu weisen geht mit einem array ne? und dann str_replace dann mach ich daraus einen Zahlenstring... aber wie kann ich die zahlen zerlegen und zusammen addieren?!
 
naja du könntest dir mit sub_str() aus dem string jeden buchstaben einzeln holen und dann mit ord() den Index in ASCII-Tabelle besorgen.
Mit dem kannst du dann rechnen...
damit groß/keinschreibung keine Rolle spielt kannst du vorher strtoupper() / strtolower() benutzen, damit alles einheitlich ist.

ich hab grad sowieso nix zu tun, ich bastel ma bissel was...
Ma sehn ob ich noch was fertig bekomm bevor ich weg muss ^^


[ EDIT: ]
Hab mal was gebastelt...
PS: ich kenn die Regeln für diese "Berechnung" allerdings nicht...
Desswegen hab ich mir ma was aus den Fingern gesaugt ^^
PHP:
<?php

## Namen angeben
$name[1] = 'abc123';
$name[2] = 'abc123';

## initialisieren
$match   = 0;
$matches = "";

for($ii=0; $ii < strlen($name[1]); $ii++){
  for($i=0; $i < strlen($name[2]); $i++){
    ## namen vergleichen
    if(substr($name[2],$i,1) == substr($name[1],$ii,1))
      ## pruefen buchstabe schoneinmal vorhanden
      if(strstr($matches,(substr($name[2],$i,1))) == false){
        ## treffer zaehlen
        $match = $match + 1;
        ## buchstabe zur liste hinzufuegen
        $matches = $matches.substr($name[2],$i,1);
      }
  }
}

## prozent ausrechnen / ausgeben
echo $percent = (100 / strlen($name[1]) * $match);

?>
 
@keksinat0r warum denn so umständlich mit substr() ?
PHP:
$string = "beispieltext";
echo $string[0];
//Ausgabe: b
echo $string[5];
//Ausgabe: i
//usw...
 
naja ich mag diese schreibweise irgendwie lieber... kA
$name[1][$i] hätte es auch getan, ich finde die substr-schreibweise nur irgendwie überschtlicher ^^

desweiteren ist die substr-variante ausbaufähiger :P
man kann zB buchstabenpaare miteinander vergleiche lassen ^^
(wenn das ma net ne geniale ausrede is... :P)
 
Kann man so wie ich es geschrieben habe doch auch?
"$string = $name[0].$name[1]"
Oder halt gleich in einer Schleife.
Und ich vermute sogar, dass bei mir die Performance besser wäre. Sicher bin ich mir aber nicht.
 
war ja auch nur ne ausrede xD
ich bevorzuge die andere schreibweise einfach, und bei so einem kleinen script kommts auf performance auch ent wirklich an...
jeder hat seine eigene schreibweise, und ich bevorzuge eben diese mit substr :)
 
Hallöchen,

genau diese Aufgabe durfte ich in der Berufsschule auch schonmal lösen. Das ganze sieht so aus. Quellen habe ich als ZIP dem Beitrag angehangen.

EDIT: Ich habe übrigens nie wieder ein Programm ähnlich gut dokumentiert, wie dies *fg*
 
Hey boppy
dein LoveCalc ist echt cool =)
nur aus dem Quelltext ist mir kaum, bzw. garnicht ersichtlich was du gemacht hast um die % auszurechen.
Was ich auch sehr cool finde ist das in dem Eingabefeld die Schriftart anders ist, wie hast du denn das realisiert?

Edit: fehler gefunden xD hatte inner For_Schleife anstatt $i nur i stehen
Edit 2: Ich find keinen Guten Algorithmus :( der auch gute ergebnisse ausgibt alles immer kleiner als 30%
 
Original von Abstauber
nur aus dem Quelltext ist mir kaum, bzw. garnicht ersichtlich was du gemacht hast um die % auszurechen.
Der Algorithmus wird im Script selbst dokumentiert. klickst du unter dem ergebnis auf 'mehr details..." siehst du den algorithmus arbeiten. Zum Beispiel:
http://habo.eigenfabrik.at/lovecalc/?name1=Karl-Heinz&name2=Clothilde&details=show

bei genauem betrachten wird der algo klar.
Kurzes beispiel:

-------- Step 1 --------
Klim+Bim
Alle Buchstaben werden gezählt:
K 1
L 1
I 2
M 2
B 1
Die Zahlen des Buchstabenvorkommens werden als eine große Zahl geschrieben:
11221
-------- Step 2 --------
Gehen wir mal davon aus, dass die Zahl aus Step 1 folgende ist: 12345.
Dummerweise eignet sich diese zahl nicht für eine Ausgabe, da sie > 100 ist.
Gut, basteln wir uns eine neue Zahl:
Wir nehmen die je außen liegenden Zahlen und addieren diese:
1+5 = 6
2+4 = 6
3 = 3
Neue Zahl: 663
Das durchlaufen wir nun, bis die Zahl <= 100 ist:
6+3 = 9
6 = 6
Neue Zahl: 96
-------- Step 3 --------
Unglaublich, aber wahr: 96% quote. Beim obrigen Beispiel wären es 43%. Eigentlich nicht schwer, oder? ;)

Original von Abstauber
Was ich auch sehr cool finde ist das in dem Eingabefeld die Schriftart anders ist, wie hast du denn das realisiert?
CSS ist hier mein Freund. Der nötige Code ist einfach:
Code:
/* Ein Auszug: */
input {
  font: bold 26px Brush Script MT,Brush, BrushScript,BruschScriptMT;
}
 
also der Algorithmus ist logisch ^^
nur mir stellen sich jetzt 2 Problem, ich bin net so der "Hardcore-PHP-Coder" dies vorweg, also ich versuche schon seit std. den Step 1... aber ich kom zu keinem Erfolg... also ich habs bisher so versucht.... die Buchstaben die doppelt vorkommen die zählt er schon also wenigstens etwas aber kA wie weiter...

i-wie bekomm ich nix gescheites hin.... :(
 
Zurück
Oben