Suche Code für folgende Frage ...

Blackhawk50000

Erfahrener Benutzer
Mitglied seit
02.12.2004
Beiträge
108
Reaktionspunkte
0
Suche Code für folgende Frage ...

Hi Leute.....

ich möchte sehr gerne ein kleines Programm schreiben welches.... so funktionieren soll....

ich habe eine zahlenfolge von 6 zahlen..... und will sie mit Hilfe von 3 Modifikatoren umwandeln....

Schlüssel: 53144354
Modifikator1: 55141555
Modifikator2: 11003001
Modifikator3: 05055555
Resultat: 52211133

Ziel: 52211133


die Rechnung soll so ablaufen das ich etwa 30 verschiede vorgegebene Zahlenfolgen habe und nur eine Kombination (reihenfolge egal) die richtige ist..... und das Programm soll zwischen den Kombinationen raussuchen welche die richtige ist.....

....

gerechnet wird so:
Beispiel an der letzten stelle:

4+5+1+5=15
15 ist eine zu große zahl, davon soll dann so oft 6 abgezogen werden bis eine zahl zwischen 0 und 5 raus kommt.... (0 und 5 sind auch erlaubt)
15 - 2*6 = 3


Also… wenn man das ganze umformt kommt man auf

Ziel – Schlüssel = Modi1 + Modi2 + Modi3

In meinem falle

5 – 5 = 0
Und nach meiner Rechnung ergeben sich dafür folgende Kombinationsmöglichkeiten:

0 = (5+5+2) (5+4+3) (5+0+1) (4+4+4) (4+2+0) (4+1+1) (3+3+0) (3+2+1) (2+2+2) (0+0+0)
Nach der oben angegeben Formel kommt hier immer 0 raus….
Was aber wenn 1,2,3,4 oder 5 raus kommt… diese Kombinationsmöglichkeiten will ich hier auch mal erläutern:

0= (5+5+2) (5+4+3) (5+0+1) (4+4+4) (4+2+0) (4+1+1) (3+3+0) (3+2+1) (2+2+2) (0+0+0) 1= (5+5+3) (5+4+4) (5+2+0) (5+1+1) (4+3+0) (4+2+1) (3+3+1) (3+2+2) (1+0+0)
2= (5+5+4) (5+3+0) (5+2+1) (4+4+0) (4+3+1) (4+2+2) (3+3+2) (2+0+0) (1+1+0)
3= (5+5+5) (5+4+0) (5+3+1) (5+2+2) (4+4+1) (4+3+2) (3+3+3) (3+0+0) (2+1+0) (1+1+1) 4= (5+5+0) (5+4+1) (5+3+2) (4+4+2) (4+3+3) (4+0+0) (3+1+0) (2+2+0) (2+1+1)
5= (5+5+1) (5+4+2) (5+3+3) (5+0+0) (4+4+3) (4+1+0) (3+2+0) (3+1+1) (2+2+1)
Das Programm soll nun daraus dir richtigen kombinationen finden und den Schlüssel aus 6 zahlen so umformen mit 3 Modifikatoren das der Zielschlüssel raus kommt….

Edit Rabowke:
Vllt. solltest du auch erwähnen in welcher Sprache du das Programmieren möchtest. %)
 
B

Beetlejuice666

Gast
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

ein absolutes Kinderspiel, wenn du sowas nicht selbst hinnbekommst lass es lieber direkt sein.... /ironie off
 

Worrel

Bekanntes Gesicht
Mitglied seit
22.03.2001
Beiträge
22.819
Reaktionspunkte
8.877
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Es wäre sehr hilfreich, wenn du schreibst, wozu das Ganze dienen soll und in welcher Art das Programm denn funktionieren soll - ua. wäre hierbei die gewünschte Programmiersprache und Plattform, unter der das Ganze laufen soll, erforderlich.

Aber erstmal zum grundsätzlichen Verständnisproblem:
Du schreibst, du hast als Ausgangswert eine Zahlenfolge von 6 Zahlen, gibst als Beispiel dann aber eine Zahl mit 8 Ziffern an :confused:

Dann soll das wohl so funktionieren, daß du quasi dreißig Versuche hast, aber nur eine Zahl ist quasi das richtige "Paßwort" - richtig?

Dann hast du in dem Prinzip einen Denkfehler, denn sobald die "Paßwort"-Zahl eine Ziffer <6 beinhaltet, gibt es mindestens eine weitere Kombination, die ebenfalls "passt".

Beispiel:
Angenommen, 458916 wäre deine sechsstellige richtige Zahl.
Dann würde 458976 genauso passen, da dann an der Stelle nur einmal mehr 6 abgezogen wird.

Ah, Moment, jetzt sehe ich erst, daß du ja nur Ziffern von 0-5 verwendest.
Wieso?

Bitte erklär dein Anliegen nochmal genauer unter Berücksichtigung der von mir gestellten Fragen und am besten mit folgenden Begrifflichkeiten, falls zutreffend:

Ziffern: einzelne Stellen einer Zahl
Zahlenmenge: die Zahlen, die man zur Zahlbildung verwenden darf (0-5?)
 
TE
B

Blackhawk50000

Erfahrener Benutzer
Mitglied seit
02.12.2004
Beiträge
108
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Beetlejuice666 am 13.02.2008 12:15 schrieb:
ein absolutes Kinderspiel, wenn du sowas nicht selbst hinnbekommst lass es lieber direkt sein.... /ironie off


hehe..... nein ehrlich....das ich wirklich wichtig und ich brauche n bisschen hilfe.... das prgramm muss im c# programmiert sein..... (denke da isses auch am einfachsten-..

ahh nee danke das war total der denkfehler von mir...

ich habe die zahlen 0 bis 5 (also 6 zeichen) zur verfügung..... und die länger der zahlenfolgen ist immer 8... so. :)
 
TE
B

Blackhawk50000

Erfahrener Benutzer
Mitglied seit
02.12.2004
Beiträge
108
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

okay, soweit passt alles..... nun folgendes..

ich habe 30 verschiedene modifikatoren die nach oben genannter rechnung funktionieren....

es müssen immer 3 modifikatoren verwendet werden... und nur die richtige kombination der 3 ergeben die zielzahlenfolge
 

Worrel

Bekanntes Gesicht
Mitglied seit
22.03.2001
Beiträge
22.819
Reaktionspunkte
8.877
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Wofür hast du denn 3 Modifikatoren?
Reicht da nicht einer? Oder ändern die sich irgendwann?

PS: C+ hab ich keine Ahnung von
 
TE
B

Blackhawk50000

Erfahrener Benutzer
Mitglied seit
02.12.2004
Beiträge
108
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Worrel am 13.02.2008 12:33 schrieb:
PS: C+ hab ich keine Ahnung von


nicht c+ conder c# (oder war n vertipper dann sorry)

es MÜSSEN 3 modifikatoren aus den 30 zur verfügung stehenden sein
 

Worrel

Bekanntes Gesicht
Mitglied seit
22.03.2001
Beiträge
22.819
Reaktionspunkte
8.877
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Blackhawk50000 am 13.02.2008 12:36 schrieb:
Worrel am 13.02.2008 12:33 schrieb:
PS: C+ hab ich keine Ahnung von
nicht c+ conder c# (oder war n vertipper dann sorry)
Egal, kann ich auch nicht :-D

es MÜSSEN 3 modifikatoren aus den 30 zur verfügung stehenden sein
Was genau soll denn passieren, wenn der Anwender das Programm nun startet?
gibt er eine Zahl ein oder 30?
Bestimmt das Programm, welche der 30 Zahlen als Modifikatoren verwendet werden oder der Anwender?
 
TE
B

Blackhawk50000

Erfahrener Benutzer
Mitglied seit
02.12.2004
Beiträge
108
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

http://img210.imageshack.us/img210/341/unbenanntua5.jpg

so soll es aussehen in etwa


das programm soll selbstständig alle möglich kombinationen durchgehen bis es die richtige gefunden hat... und die richige kombination aus 3 modifikatoren anzeigen

(die 30 modifikatoren sind festgeglegt bevor das programm gestartet wird
 

Worrel

Bekanntes Gesicht
Mitglied seit
22.03.2001
Beiträge
22.819
Reaktionspunkte
8.877
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Blackhawk50000 am 13.02.2008 12:45 schrieb:
http://img210.imageshack.us/img210/341/unbenanntua5.jpg
so soll es aussehen in etwa

das programm soll selbstständig alle möglich kombinationen durchgehen bis es die richtige gefunden hat... und die richige kombination aus 3 modifikatoren anzeigen

(die 30 modifikatoren sind festgelegt bevor das programm gestartet wird
Ach, die Modifikatoren sollen gefunden werden?
Hatte bisher angenommen, du suchst die Ziel-Zahl als Ausgabe.

Also ist die Aufgabenstellung:
Start- und Zielzahl sind gegeben, suchen sie die passenden Modifikatoren?
 
TE
B

Blackhawk50000

Erfahrener Benutzer
Mitglied seit
02.12.2004
Beiträge
108
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Worrel am 13.02.2008 12:53 schrieb:
Blackhawk50000 am 13.02.2008 12:45 schrieb:
http://img210.imageshack.us/img210/341/unbenanntua5.jpg
so soll es aussehen in etwa

das programm soll selbstständig alle möglich kombinationen durchgehen bis es die richtige gefunden hat... und die richige kombination aus 3 modifikatoren anzeigen

(die 30 modifikatoren sind festgelegt bevor das programm gestartet wird
Ach, die Modifikatoren sollen gefunden werden?
Hatte bisher angenommen, du suchst die Ziel-Zahl als Ausgabe.

Also ist die Aufgabenstellung:
Start- und Zielzahl sind gegeben, suchen sie die passenden Modifikatoren?


ja genau... ihr seht das bild meines entwurfes... das einzige was tu tust ist es... die vorgegebene zielfolge und die schlüsselfolge einzugeben... dann gibst du die ebenfalls vorgegebenen 30 modifikatoren ein, und das programm soll schnell und präziese die einzieg richtige möglichkeit finden.... (und das sind verflucht viele kombimöglichkeiten)
 

AchtBit

Bekanntes Gesicht
Mitglied seit
04.08.2004
Beiträge
732
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Blackhawk50000 am 13.02.2008 12:36 schrieb:
Worrel am 13.02.2008 12:33 schrieb:
PS: C+ hab ich keine Ahnung von


nicht c+ conder c# (oder war n vertipper dann sorry)

es MÜSSEN 3 modifikatoren aus den 30 zur verfügung stehenden sein

Jetzt mal ganz pauschal. Ich würde die 3 Modifikatoren + Schlüssel in ein 2 dimensionales Feld zerlegen, die Addition vornehmen, das Ergebnis an eine Fall Bedingung übergeben. Die Fall Bedingung besteht aus 6 Fällen die je 2 Kriterien erfüllen müssen.

Z.B. die ersten beiden Fälle
select
case ($ergebnis == 12 || $ergebnis == 6{
if($feld[$ziel][$anzahl der Aufrufe bzw. die aktuelle Stelle] != 0) die'falsche Kombi';
return true;
case ($ergebnis == 13 || $ergebnis == 7){
if($feld[$ziel][$anzahl der Aufrufe bzw. die aktuelle Stelle] != 1) die'falsche Kombi';
return true;
case else{die'falsche Kombi';}
.
.
.
end select;


die Syntax war jetzt nur mal frei Schnautze hingeklatscht aber vom Prinzip her würd ichs so versuchen.
 
TE
B

Blackhawk50000

Erfahrener Benutzer
Mitglied seit
02.12.2004
Beiträge
108
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

das ist nicht ganz das was ich mir vorgestellt hatte.. oder ich kann deinen gedanken jetzt net soganz folgen


dann müsschen noch die 30 anderen modifikatoren, jeder mit jedem durchprobiert werden... wie mach ich das in etwa?...
 

Worrel

Bekanntes Gesicht
Mitglied seit
22.03.2001
Beiträge
22.819
Reaktionspunkte
8.877
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

AchtBit am 13.02.2008 13:44 schrieb:
select
case ($ergebnis == 12 || $ergebnis == 6{
if($feld[$ziel][$anzahl der Aufrufe bzw. die aktuelle Stelle] != 0) die'falsche Kombi';
return true;
case ($ergebnis == 13 || $ergebnis == 7){
if($feld[$ziel][$anzahl der Aufrufe bzw. die aktuelle Stelle] != 1) die'falsche Kombi';
return true;
case else{die'falsche Kombi';}
.
.
.
end select;
Sieht gut aus, aber muß in dem else nicht "die richtige Kombi" stehen ?
Bzw natürlich nur "die richtige Stelle", die dann nochmal verglichen werden muß.

Könnte man derart einbauen:

Code:
zaehler = 0;

for k [1. Stelle bis letzte Stelle] {
  select 
    case ($ergebnis == 12 || $ergebnis == 6{
        if($feld[$ziel][$anzahl der Aufrufe bzw. die aktuelle Stelle] != 0) die'falsche Kombi';
    return true;
    case ($ergebnis == 13 || $ergebnis == 7){
        if($feld[$ziel][$anzahl der Aufrufe bzw. die aktuelle Stelle] != 1) die'falsche Kombi';
    return true;
    case else{
        $zaehler = $zaehler +1;
  }  
  .
  .
  .
  end select;
}  [Ende der for schleife]

if($zaehler == 8 ) die'richtige Kombi';

Bitte berücksichtigen, daß ich keine Ahnung von c# schreibweisen hab =)
 

Worrel

Bekanntes Gesicht
Mitglied seit
22.03.2001
Beiträge
22.819
Reaktionspunkte
8.877
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Blackhawk50000 am 13.02.2008 13:57 schrieb:
das ist nicht ganz das was ich mir vorgestellt hatte.. oder ich kann deinen gedanken jetzt net soganz folgen

dann müsschen noch die 30 anderen modifikatoren, jeder mit jedem durchprobiert werden... wie mach ich das in etwa?...
Noch eine for schleife drum basteln, die dann die 30 Modifikatoren der Reihe nach aus dem Feld liest.
 

N-Traxx

Bekanntes Gesicht
Mitglied seit
26.01.2004
Beiträge
1.688
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Für was soll den der Code sein ? Wird das ein Keygen ?
 
TE
B

Blackhawk50000

Erfahrener Benutzer
Mitglied seit
02.12.2004
Beiträge
108
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

N-Traxx am 13.02.2008 14:18 schrieb:
Für was soll den der Code sein ? Wird das ein Keygen ?

um gottey willen ein kaygen.. nein niemals.... sowas öffentlich fagen zu wollen wäre sehr blöd von mir.... sowas brauch ich nicht.....

nein das ist ein rätsel das ich von meinem informatik professor bekommen habe.... und ich wills in form eines programmes lösen....

BITTE HELFT MIR DABEI...... :)


ehm nochwas.... wie kommt ihr auf die zahlen 12 und 6 und 7?.....
 

Worrel

Bekanntes Gesicht
Mitglied seit
22.03.2001
Beiträge
22.819
Reaktionspunkte
8.877
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Blackhawk50000 am 13.02.2008 14:23 schrieb:
ehm nochwas.... wie kommt ihr auf die zahlen 12 und 6 und 7?.....
Na überleg doch mal, was die beiden einzelstellen-Summen-Ergebnisse 6 und 12 gemeinsam haben ...
 
TE
B

Blackhawk50000

Erfahrener Benutzer
Mitglied seit
02.12.2004
Beiträge
108
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Worrel am 13.02.2008 14:25 schrieb:
Blackhawk50000 am 13.02.2008 14:23 schrieb:
ehm nochwas.... wie kommt ihr auf die zahlen 12 und 6 und 7?.....
Na überleg doch mal, was die beiden einzelstellen-Summen-Ergebnisse 6 und 12 gemeinsam haben ...

sie sind beide durch 2 teilbar?!

ich weiß es nicht....

und in dem select werde da 3 modifikatoren bearbeitet?.... ich steig grade echt nicht durch..... scheiße ist das peinlich... ;(
 

Worrel

Bekanntes Gesicht
Mitglied seit
22.03.2001
Beiträge
22.819
Reaktionspunkte
8.877
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Blackhawk50000 am 13.02.2008 14:29 schrieb:
Worrel am 13.02.2008 14:25 schrieb:
Blackhawk50000 am 13.02.2008 14:23 schrieb:
ehm nochwas.... wie kommt ihr auf die zahlen 12 und 6 und 7?.....
Na überleg doch mal, was die beiden einzelstellen-Summen-Ergebnisse 6 und 12 gemeinsam haben ...

sie sind beide durch 2 teilbar?!

ich weiß es nicht....
Dann konzentrier dich mal ein bischen auf die Problematik.
Wir helfen dir ja gerne, aber mitdenken solltest du schon noch.

und in dem select werde da 3 modifikatoren bearbeitet?....
Nein, das ist die Überprüfung einer Stelle auf die möglichen Ergebnisse 0 und 1.
Wenn du den Rest der select Anweisung analog auffüllst, entspricht das der Summenprüfung einer Stelle auf die Ergebnisse 0-5.
 

AchtBit

Bekanntes Gesicht
Mitglied seit
04.08.2004
Beiträge
732
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Worrel am 13.02.2008 14:13 schrieb:
Sieht gut aus, aber muß in dem else nicht "die richtige Kombi" stehen ?
Bzw natürlich nur "die richtige Stelle", die dann nochmal verglichen werden muß.

die case else Bedingung war nur als primitive Exeption gedacht, falls irgend ein falscher Wert ankommen sollte.

Die letzte Prüfung mit dem Schlüssel würde ich ausserhalb der Fall Bedingung vornehmen. Die sollte quasi nur als grobes Auschluss Verfahren herhalten.
 
TE
B

Blackhawk50000

Erfahrener Benutzer
Mitglied seit
02.12.2004
Beiträge
108
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Code:
for (i=0; i<=8; i++)
{
  select arry
    case ($ergebnis == 12 || $ergebnis == 6
{
        if($feld[$ziel][$anzahl der Aufrufe bzw. die aktuelle Stelle] != 0) 
{
         die'falsche Kombi';
}
    return true;
breake;
}

    case ($ergebnis == 13 || $ergebnis == 7)
{
        if($feld[$ziel][$anzahl der Aufrufe bzw. die aktuelle Stelle] != 1) 
{
die'falsche Kombi';
}
    return true;
breake;
}
  .
  .
  .
}
}  //Ende der for schleife

if($zaehler == 8 ) 
{
die'richtige Kombi';
}

okay, soweit ich das richtig verstanden habe, wird die zählscleife für jede einzelne stelle in der zahlenfolge durchlaufen und bricht ab sobald 2 zahlen nicht stimme..... hat die schleife die zahl 8 erreicht sind ziel und resultat richtig

da hier nur ziel und resultat erst mal verglichen werden richig???
 

AchtBit

Bekanntes Gesicht
Mitglied seit
04.08.2004
Beiträge
732
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Blackhawk50000 am 13.02.2008 14:50 schrieb:
Code:
for (i=0; i<=8; i++)
{
  select arry
    case ($ergebnis == 12 || $ergebnis == 6
{
        if($feld[$ziel][$anzahl der Aufrufe bzw. die aktuelle Stelle] != 0) 
{
         die'falsche Kombi';
}
    return true;
breake;
}

    case ($ergebnis == 13 || $ergebnis == 7)
{
        if($feld[$ziel][$anzahl der Aufrufe bzw. die aktuelle Stelle] != 1) 
{
die'falsche Kombi';
}
    return true;
breake;
}
  .
  .
  .
}
}  //Ende der for schleife

if($zaehler == 8 ) 
{
die'richtige Kombi';
}

okay, soweit ich das richtig verstanden habe, wird die zählscleife für jede einzelne stelle in der zahlenfolge durchlaufen und bricht ab sobald 2 zahlen nicht stimme..... hat die schleife die zahl 8 erreicht sind ziel und resultat richtig

da hier nur ziel und resultat erst mal verglichen werden richig???


Die Anweisung bricht dann ab wenn das Ergebnis der geprüften Stelle nicht mehr auf die entsprechende Stelle im Resultat heruntergerechnet werden kann.

Du kannst das so eh nicht verwenden. Es war als pauschaler Lösungsansatz gedacht und nicht als pretty. Ganz zu schweigen von der grausamen php Syntax(ist zumindest C Sharp ähnlich) Denk doch mal logisch du musst alle 30 Zahlenketten Stelle für Stelle abarbeiten. Am schnellsten geht das wenn man den Schrott Stück für Stück zerlegt und ein Auschlussverfahren anwendet.

P.S. Das Return true ist nur in einer Funktion wirksam. Select case kann keine Parameter schreiben oder lesen. Wenn die Anweisung in einer Funktion steht, dann brauchst du kein break mehr, da die Funktion bereits mit return verlassen wird.
 

Worrel

Bekanntes Gesicht
Mitglied seit
22.03.2001
Beiträge
22.819
Reaktionspunkte
8.877
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Blackhawk50000 am 13.02.2008 14:50 schrieb:
Code:
for (i=0; i<=8; i++)
Wenn du von 0 bis 8 zählst, wird die Schleife dann nicht 9x durchlaufen? Weil bei "0" ja auch schon ein Durchlauf stattfindet.

Code:
  select arry
...
breake;
array und break

Ich kenn mich zwar - wie gesagt - nicht mit C# aus, denke aber, daß das array hinter dem select falsch ist.

Das Array $ergebnis müßtest du vorher definieren.

okay, soweit ich das richtig verstanden habe, wird die zählscleife für jede einzelne stelle in der zahlenfolge durchlaufen und bricht ab sobald 2 zahlen nicht stimme..... hat die schleife die zahl 8 erreicht sind ziel und resultat richtig

da hier nur ziel und resultat erst mal verglichen werden richig???
Die Schleife, um mehrere Stellen zu überprüfen, steht hier noch nicht.
Das ist nur die Schleife, die eine Stelle überprüft, und das im Moment nur auf die Ergebnisse 12 und 6.

Zur Veranschaulichung:
Das ist das, was in dem Code Schnispel gerade überprüft wird:

4
2
5
0
5

Es muß übrigens statt
Code:
 case ($ergebnis == 12 || $ergebnis == 6

 case ($ergebnis == 12 || $ergebnis == 6 || $ergebnis == 0
heißen, da ja auch alle Werte =0 sein können.


Es funktioniert also so, daß die Werte für die entsprechende Stelle zusammengerechnet und in $ergebnis geschrieben werden.
Dann wird geschaut, ob $ergebnis =12 ist.
In dem Fall müßte man laut Aufgabenstellung 6 abziehen, also ist das Ergebnis für 12 dasselbe wie das Ergebnis für 6 - und natürlich auch für 0.

Sowohl bei 12, 6 wie auch bei 0 als $ergebnis muß also 0 in dem Zielwert stehen.
Genau das vergleicht die Zeile
Code:
case ($ergebnis == 12 || $ergebnis == 6 || $ergebnis == 0
{
        if($feld[$ziel][$anzahl der Aufrufe bzw. die aktuelle Stelle] != 0)
... als Aktion muß jetzt irgendwo gespeichert werden, daß die Kombinatino falsch ist, zB:
Code:
$falsch=1;
Das mußt du natürlich vor dem Schleifendurchlauf auf 0 setzen.
Genauso funktioniert $zaehler, der quasi bei jeder richtigen Stelle um eins erhöht wird und bei 8stelligen Zahlenkombinationen dann im richtigen Fall den Wert 8 hat.
Du brauchst allerdings nur einen der beiden.
 

AchtBit

Bekanntes Gesicht
Mitglied seit
04.08.2004
Beiträge
732
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Worrel am 13.02.2008 15:51 schrieb:
Blackhawk50000 am 13.02.2008 14:50 schrieb:
Code:
for (i=0; i<=8; i++)
Wenn du von 0 bis 8 zählst, wird die Schleife dann nicht 9x durchlaufen? Weil bei "0" ja auch schon ein Durchlauf stattfindet.

Code:
  select arry
...
breake;
array und break

Ich kenn mich zwar - wie gesagt - nicht mit C# aus, denke aber, daß das array hinter dem select falsch ist.

Das Array $ergebnis müßtest du vorher definieren.

okay, soweit ich das richtig verstanden habe, wird die zählscleife für jede einzelne stelle in der zahlenfolge durchlaufen und bricht ab sobald 2 zahlen nicht stimme..... hat die schleife die zahl 8 erreicht sind ziel und resultat richtig

da hier nur ziel und resultat erst mal verglichen werden richig???
Die Schleife, um mehrere Stellen zu überprüfen, steht hier noch nicht.
Das ist nur die Schleife, die eine Stelle überprüft, und das im Moment nur auf die Ergebnisse 12 und 6.

Zur Veranschaulichung:
Das ist das, was in dem Code Schnispel gerade überprüft wird:

4
2
5
0
5

Es muß übrigens statt
Code:
 case ($ergebnis == 12 || $ergebnis == 6

 case ($ergebnis == 12 || $ergebnis == 6 || $ergebnis == 0
heißen, da ja auch alle Werte =0 sein können.


Es funktioniert also so, daß die Werte für die entsprechende Stelle zusammengerechnet und in $ergebnis geschrieben werden.
Dann wird geschaut, ob $ergebnis =12 ist.
In dem Fall müßte man laut Aufgabenstellung 6 abziehen, also ist das Ergebnis für 12 dasselbe wie das Ergebnis für 6 - und natürlich auch für 0.

Sowohl bei 12, 6 wie auch bei 0 als $ergebnis muß also 0 in dem Zielwert stehen.
Genau das vergleicht die Zeile
Code:
case ($ergebnis == 12 || $ergebnis == 6 || $ergebnis == 0
{
        if($feld[$ziel][$anzahl der Aufrufe bzw. die aktuelle Stelle] != 0)
... als Aktion muß jetzt irgendwo gespeichert werden, daß die Kombinatino falsch ist, zB:
Code:
$falsch=1;
Das mußt du natürlich vor dem Schleifendurchlauf auf 0 setzen.
Genauso funktioniert $zaehler, der quasi bei jeder richtigen Stelle um eins erhöht wird und bei 8stelligen Zahlenkombinationen dann im richtigen Fall den Wert 8 hat.
Du brauchst allerdings nur einen der beiden.

Ja, select array ist Quatsch und die For Schleife läuft 9x durch.

Ich würde die Bedingung in eine Funktion packen und diese dann in einer Schleife aufrufen.

Edit. Die Zahlen 0 - 5 hab ich absichtlich aussen vor gelassen. Die müssen nicht mehr runtergerechnet werden und können direkt geprüft werden.
 
TE
B

Blackhawk50000

Erfahrener Benutzer
Mitglied seit
02.12.2004
Beiträge
108
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Ich danke euch tausesendfach für euer angachement, aber.... seit mir nicht böse.... ich glaub ich bin zu blöd für euch... (sollte n kompliment an euch sein)

wenn ich versuche das zu verstehen, dann denk ich nur.... F wie Bahnhohf.... ich bekomm echt angst das niemals hinzubekommen.... ;( .. ;( ;( ;( ;( ;( :( :( :( :( :( :( :( ;( :( ;( :( ;( :( :( ;( :( ;( :( ;(


das probem bei der ganzen sache ist das ich ne noob im proggen bin.. ich programmiere noch nicht, ich programirre..... ich habe zwar ne ausbildung zum programmierer aber mich bildet keiner darin aus, ich muss alles selber lernen....
ich würde gerne meinen chef fragen wie ich das hier mache, aber da ich grade an nem anderen projekt sitzte (nebenbei) kann ich den nicht fragen.... deswegen bin ich auf euch angewiesen.....
 

AchtBit

Bekanntes Gesicht
Mitglied seit
04.08.2004
Beiträge
732
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Blackhawk50000 am 13.02.2008 16:32 schrieb:
Ich danke euch tausesendfach für euer angachement, aber.... seit mir nicht böse.... ich glaub ich bin zu blöd für euch... (sollte n kompliment an euch sein)

wenn ich versuche das zu verstehen, dann denk ich nur.... F wie Bahnhohf.... ich bekomm echt angst das niemals hinzubekommen.... ;( .. ;( ;( ;( ;( ;( :( :( :( :( :( :( :( ;( :( ;( :( ;( :( :( ;( :( ;( :( ;(


das probem bei der ganzen sache ist das ich ne noob im proggen bin.. ich programmiere noch nicht, ich programirre..... ich habe zwar ne ausbildung zum programmierer aber mich bildet keiner darin aus, ich muss alles selber lernen....
ich würde gerne meinen chef fragen wie ich das hier mache, aber da ich grade an nem anderen projekt sitzte (nebenbei) kann ich den nicht fragen.... deswegen bin ich auf euch angewiesen.....

Du musst diesen Lösungsweg auch nicht unbedingt verstehen. Viele Wege führen nach Rom. Das war nur eine Möglichkeit und da du gesagt hast, kurzes Programm, hab ich eben auch nach einer mir bekannten, kurzen und performanten Lösung gesucht.

Ich musst mir den Mist auch zum grössten Teil selber aneignen und frag nicht was da Anfangs dabei rauskam.

Wie gesagt probieren coden probieren coden...so läufts wenn du dich noch nicht auskennst. Ich würd an deiner Stelle auch mal ein Entwickler Forum aufsuchen, da werden sie immer geholfen ;)

PS: C Sharp im Alleingang ist schon heftig. Ich hab mal das Einsteiger Seminar mitgemacht. Die Sprache ist strikt ohne ende und verzeiht keine Fehler. Ich musst mir PHP beibringen, da kannst wenigsten am Anfang noch funktionierenden Spagetticode schreiben, das kannst bei C vergessen.
 
TE
B

Blackhawk50000

Erfahrener Benutzer
Mitglied seit
02.12.2004
Beiträge
108
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

jap genau... bei c# wirst du in das oop reingedrückt ob du willst oder nicht... und da oop nunmal die zukunft ist werde ich da eisern hinter bleiben...und wie heißt es so schön lerning bei doing.... mein erstes c# spiel habe ich fertig.. da habe ich einiges gelernt...

ich brauch aufgaben die ich löse und daraus lerne und gelernt vielleicht widerverwende..... deswegen jetzt DIESES programm... es soll nur funktionieren..... mehr nicht..... auch wenns spaghetti codee ist.... es soll gehen weil ichs erst mal brauch, dannach wirds schön gemacht und midifiziert.... so das es ein echtes schönes professionelles programm ist.... bei meinem spiel habe ich das so ähnlich gemacht..... (aber da hatte ich wenigstens einen denkansatz)...

meist du dieses programm hier kann man auch einfach lösen?..... oder bzw. so das ichs als kacknoob verstehe
 

AchtBit

Bekanntes Gesicht
Mitglied seit
04.08.2004
Beiträge
732
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

Blackhawk50000 am 13.02.2008 17:31 schrieb:
meist du dieses programm hier kann man auch einfach lösen?..... oder bzw. so das ichs als kacknoob verstehe

Das Problem an sich ist mehr mathematischer Natur. Wenn du den Schlüssel hast, dann weist du ja auch automatische welches Ergebnis die 3 Modifier haben müssen, um mit dem Resultat überein zu stimmen. Also bleibt das Hauptproblem, alle Kombinationen auszuprobieren. Das sind bei 3 Modis und 30 Zahlenketten 3^30 Möglichkeiten. Du wirst wahrscheinlich nicht drum rum kommen die alle durchzuprobieren. Es sei denn hier findet sich ein Mathegenie, der einen besseren Lösungsweg kennt.
 
TE
B

Blackhawk50000

Erfahrener Benutzer
Mitglied seit
02.12.2004
Beiträge
108
Reaktionspunkte
0
AW: Eine wirklich große Herrausforderung... BITTE HELFT MIR BITTE BITTE

was denn 3^30? ich dachte es wären nur 30^3..... so ein misst....

und genau deswegen brauch ich ja das ganze in nem programm um nicht alle milliarden kombimöglichkeiten von hand durch testen zu müssen....

n programm austüfteln... schleife rein, und fertig.....

das programm muss nur... im laufe der nächsten woche fertig werden... bis spätestens....hmmm......dem 22.
 
Oben Unten