Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-10-2005, 13:31   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 90
Array auswerten! nur wie?

Hallo,

ich habe 4 Werte (Zahlen aus Texteigabefeld) diese möchte ich mit einem Ergenis-Wert vergleichen. Der Wert der dem Ergebniswert am nächsten ist soll 4 Punkte erhalten der zweite 3 Punkte der dritte 2 Punkte und der vierte 1Punkt.
Sind 2 oder mehr Werte gleich entfernt sollten diese die selbe Punktzahl erhalten.

als Bsp.1 Ergebnis-Wert = 100
Wert 1 = 101 = 4 Punkte
Wert 2 = 98 = 3 Punkte
Wert 3 = 95 = 2 Punkte
Wert 4 = 106 = 1 Punkt

als Bsp.2 Ergebnis-Wert = 100
Wert 1 = 101 = 4 Punkte
Wert 2 = 98 = 3 Punkte
Wert 3 = 95 = 2 Punkte
Wert 4 = 99 = 4 Punkte

Wie macht mann sowas in AS?
Vielen Dank für eure Hilfe!
rainman ist offline   Mit Zitat antworten
Alt 01-10-2005, 13:47   #2 (permalink)
Banned
 
Registriert seit: Jun 2003
Beiträge: 1.276
if(ergebnis==wert1) {
punkte=4;
}
so? wäre es das einfachste
Magnuss ist offline   Mit Zitat antworten
Alt 01-10-2005, 15:56   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 90
Nun leider findet da aber keine Auswertung statt. und alles mit IF wäre bestimmt ewig lang und viel zu kompliziert. Ich dachte man kann mit Hilfe von Arrays Werte besser vergleichen usw.?
rainman ist offline   Mit Zitat antworten
Alt 01-10-2005, 16:11   #4 (permalink)
Banned
 
Registriert seit: Jun 2003
Beiträge: 1.276
auslesen=[106,95,98,101];

und dann halt durchsuchen mit for und dann je nach position haste deinen punkt
Magnuss ist offline   Mit Zitat antworten
Alt 01-10-2005, 18:35   #5 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Vielleicht so:
ActionScript:
  1. results = [101, 98, 95, 106];
  2. compare = 100;
  3.  
  4. function evaluate(results, compare) {
  5.     var diffs = new Array();
  6.     var len = results.length;
  7.     var i;
  8.    
  9.     // Abweichungen zusammen mit dem Index abspeichern
  10.     for (i = 0; i < len; i++) {
  11.         diffs.push({id: i, diff: Math.abs(results[i] - compare)});
  12.     }
  13.    
  14.     // sortieren
  15.     diffs.sortOn("diff");
  16.    
  17.     var points = new Array();
  18.    
  19.     // und wieder in einem einfachen Array abspeichern
  20.     for (i = 0; i < len; i++) {
  21.         points[diffs[i].id] = len - i;
  22.     }
  23.    
  24.     return points;
  25. }
  26.  
  27. trace(evaluate(results, compare));
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 03-10-2005, 09:12   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 90
Funktioniert super. Nur wenn 2 oder mehrere Spieler die selbe Antwort geben, werden die Punkte nicht gleich vergeben ( gleiche Antwort gleiche Punktzahl).
Dann noch eine dumme Frage. Wie weise ich das Ergebnis-Array einzelnen Textfeldern zu?
Habe mal die fla angehängt.
Danke für eure Feiertagsarbeit
Angehängte Dateien
Dateityp: rar test.rar (47,4 KB, 4x aufgerufen)

Geändert von rainman (03-10-2005 um 09:13 Uhr)
rainman ist offline   Mit Zitat antworten
Alt 03-10-2005, 11:56   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 90
Array in Variablen wandeln

bin jetzt bald fix unf fertig. Wie erhalte ich aus dem Array das Ergebnis in einzelne variablen.
z.B. Ergebnis[4, 2, 3, 1] -> punkte1 = die 4 aus dem Array usw.
Bitte Bitte antworten Vielen Dank
rainman ist offline   Mit Zitat antworten
Alt 03-10-2005, 16:27   #8 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 90
Hat keiner eine Idee wie man das script so abändern kann,dass die Punkte bei gleicher differenz gleich vergeben werden?
Das Problem mit den variablen habe ich so lösen können:
ActionScript:
  1. _level0.punktepl1 = Number(evaluate(results, compare)[0]);
hoffe das ist so richtig der wert stimmt jeden falls.
Danke für eure Hilfe
rainman ist offline   Mit Zitat antworten
Alt 04-10-2005, 19:04   #9 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 90
Wie kann ich im vorhinein überprüfen ob werte die selbe differenz haben und diese dann so abwerts sortieren damit ich die Punkte vergeben kann egal wie viele die gleiche antwort oder selbe differenz haben.
Wollt Ihr dass ich Musiker werde? Bitte Helft mir
rainman ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele