Dayjay 796 Melden Geschrieben 14. März 2012 Als IDE empfehle ich Aptana Studio, das basiert sogar auf Eclipse. Um das Browser Debugging wirst du aber nicht drum herum kommen. Das sollte als File Open Dialog reichen: <input type="file" id="input" multiple onchange="handleFiles(this.files)"> Ohne multiple kannst du nur eine Datei auswählen.
LurchiDerLurch 0 Melden Geschrieben 14. März 2012 wow danke werd mich da wohl mal einlesen und einarbeiten müssen ich meld mich wenns ne frage gibt
Malarkey 1 Autor Melden Geschrieben 14. März 2012 Frage: Kann man das Überladen von Operatoren irgendwie zur Laufzeit ändern? Also, im Programmabschnitt 1 so und so und im Abschnitt 2 anders läuft?
PFLO 167 Melden Geschrieben 16. März 2012 (bearbeitet) Aufgabe: myfind programmieren... myfind.c /** * @file myfind.c * * @author * @author * @author * * */ #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <sys/stat.h> #include <dirent.h> #include <fnmatch.h> #include <time.h> #include <pwd.h> #include <grp.h> void do_file(char *path, int argc, char *argv[]); void do_dir(char *path, int argc, char *argv[]); void analyse_file(char *path, int argc, char *argv[]); int main(int argc, char *argv[]) { if (argc < 2) { printf("Der Suchpfad fehlt!\n"); return 1; } do_file(argv[1], argc, argv); return 0; } void do_file(char *path, int argc, char *argv[]) { struct stat fstat; errno = 0; if (lstat(path, &fstat) == -1) { fprintf(stderr, "Fehler: %s\n", strerror(errno)); return; } analyse_file(path, argc, argv); if (S_ISDIR(fstat.st_mode)) { do_dir(path, argc, argv); } } void do_dir(char *path, int argc, char *argv[]) { DIR *dir; struct dirent *dent = NULL; char tmp[1024]; if ((dir = opendir(path)) == NULL) { fprintf(stderr, "Fehler: %s\n", strerror(errno)); return; } while ((dent = readdir(dir)) != NULL) { if(strcmp(dent->d_name, ".") != 0 && strcmp(dent->d_name, "..") != 0) { sprintf(tmp, "%s/%s", path, dent->d_name); do_file(tmp, argc, argv); } } closedir(dir); } /** * \brief analyse a file and print it out * * \param path file path * \param argc number of command line arguments * \param argv command line arguments */ void analyse_file(char *path, int argc, char *argv[]) { int i = 0; int do_ls = 0; int mask = 0; struct stat fstat; struct passwd *user = NULL; struct group *group = NULL; char time_output[200]; char link_dest[1024]; if (lstat(path, &fstat) == -1) { fprintf(stderr, "Fehler: %s\n", strerror(errno)); return; } user = getpwuid(fstat.st_uid); group = getgrgid(fstat.st_gid); if (argc > 2) { i = 2; /* 0 = program name, 1 = path to search, 2 = first option */ while (i < argc) { char *first_argument = argv[i]; if (strcmp(first_argument, "-print") == 0) { do_ls = 0; i += 1; } else if (strcmp(first_argument, "-ls") == 0) { do_ls = 1; i += 1; } else if (strcmp(first_argument, "-type") == 0) { char *second_argument = NULL; if (argc > i+1) second_argument = argv[i + 1]; if (second_argument == NULL || strlen(second_argument) > 1) { fprintf(stderr, "Fehler bei -type\n"); return; } switch (second_argument[0]) { case 'b': if ( ! S_ISBLK(fstat.st_mode)) return; break; case 'c': if ( ! S_ISCHR(fstat.st_mode)) return; break; case 'd': if ( ! S_ISDIR(fstat.st_mode)) return; break; case 'f': if ( ! S_ISREG(fstat.st_mode)) return; break; case 'p': if ( ! S_ISFIFO(fstat.st_mode)) return; break; case 's': if ( ! S_ISSOCK(fstat.st_mode)) return; break; case 'l': if ( ! S_ISLNK(fstat.st_mode)) return; break; default: fprintf(stderr, "Fehler nach -type\n"); return; } i += 2; } else if (strcmp(first_argument, "-user") == 0) { long int uid = 0; char *strtol_end = NULL; char *second_argument = NULL; if (i + 1 < argc) second_argument = argv[i + 1]; if (second_argument == NULL) { fprintf(stderr, "Benutzername fehlt\n"); return; } uid = strtol(second_argument, &strtol_end, 10); if (user == NULL || strcmp(second_argument, user->pw_name) != 0) if (strtol_end == second_argument || uid != fstat.st_uid) return; i += 2; } else if (strcmp(first_argument, "-nouser") == 0) { if (user != NULL) return; i += 1; } else if (strcmp(first_argument, "-name") == 0) { char *second_argument = NULL; if (argc > i+1) second_argument = argv[i + 1]; if (second_argument == NULL) { fprintf(stderr, "Fehler bei -name\n"); return; } if (fnmatch(second_argument, path, 0) == FNM_NOMATCH) { return; } i += 2; } else if (strcmp(first_argument, "-path")) { char *second_argument = NULL; if (argc > i+1) second_argument = argv[i + 1]; if (second_argument == NULL) { fprintf(stderr, "Fehler bei -path\n"); return; } if (fnmatch(second_argument, path, FNM_PATHNAME) == FNM_NOMATCH) { return; } i += 2; } else { fprintf(stderr, "Die Funktion existiert nicht\n"); return; i += 1; } } } if (do_ls == 0) { printf("%s\n", path); } else { if (strftime(time_output, sizeof(time_output), "%d %b %H:%M", localtime(&fstat.st_mtime)) == 0) { fprintf(stderr, "Fehler beim Untersuchen der letzten Modifikation von %s\n", path); } printf("%c", S_ISDIR(fstat.st_mode) ? 'd' : '-'); printf("%c", (S_IRUSR & fstat.st_mode) ? 'r' : '-'); printf("%c", (S_IWUSR & fstat.st_mode) ? 's' : '-'); mask = S_ISUID & fstat.st_mode; printf("%c", (S_IXUSR & fstat.st_mode) ? (mask ? 's' : 'x') : (mask ? 'S' : '-')); printf("%c", (S_IRGRP & fstat.st_mode) ? 'r' : '-'); printf("%c", (S_IWGRP & fstat.st_mode) ? 'w' : '-'); mask = S_ISGID & fstat.st_mode; printf("%c", (S_IXGRP & fstat.st_mode) ? (mask ? 's' : 'x') : (mask ? 'S' : '-')); printf("%c", (S_IROTH & fstat.st_mode) ? 'r' : '-'); printf("%c", (S_IWOTH & fstat.st_mode) ? 'w' : '-'); mask = S_ISVTX & fstat.st_mode; printf("%c", (S_IXOTH & fstat.st_mode) ? (mask ? 't' : 'x') : (mask ? 'T' : '-')); printf("%5i ", (int) fstat.st_nlink); if(user != NULL) { printf("%-8s", user->pw_name); } else { printf("%-8i", (int) fstat.st_uid); } if (group != NULL) { [b]printf("%-8s", fstat.gr_name);[/b] else { printf("%-8d", (int) fstat.st_gid); } printf("%8i ", (int)fstat.st_size); printf("%12s", time_output); printf("%s", path); if (S_ISLNK(fstat.st_mode)) { [b]ssize_t link_len = readlink(path, link_dest, sizeof(link_dest) - 1)[/b]; if (link_len == -1) { fprintf(stderr, "Fehler\n"); return; } else { link_dest[link_len] = '\0'; printf(" -> %s", link_dest); } } printf("\n"); } } Kann es aber nicht kompilieren, da gcc -DEBUG -Wall -Wextra -Werror -pedantic -g -O3 -c myfind.c myfind.c: In function ‘analyse_file’: myfind.c:313: error: ‘struct stat’ has no member named ‘gr_name’ cc1: warnings being treated as errors myfind.c:328: error: implicit declaration of function ‘readlink’ make: *** [myfind.o] Fehler 1 Findet da jemand von euch einen Fehler? Bearbeitet 16. März 2012 von PFLO
Cyborg11 186 Melden Geschrieben 16. März 2012 (bearbeitet) Poste mal den Code auf Pastebin, damit die Zeilennummern mit dabei sind. Bearbeitet 16. März 2012 von Cyborg11
PFLO 167 Melden Geschrieben 16. März 2012 pastebin.com/3LtDmCHn Einen Fehler habe ich gefunden, dafür hat er mir tausend andere ausgespruckt Habe jetzt auf anraten eines Studienkollegens alle #include <> die er auch hat hinein kopiert, deswegen sind die jetzt alle doppelt und die Zeilenanzahl stimmt natürlich auch nicht mehr Fehlermeldung: 2 florian@Debian ~/git/myfind % cat tmp | grep myfind.c gcc -DEBUG -Wall -Wextra -Werror -pedantic -g -O3 -c myfind.c from myfind.c:12: from myfind.c:12: In file included from myfind.c:12: In file included from myfind.c:13: In file included from myfind.c:13: from myfind.c:13: In file included from myfind.c:13: In file included from myfind.c:15: In file included from myfind.c:15: from myfind.c:15: In file included from myfind.c:17: In file included from myfind.c:19: In file included from myfind.c:20: In file included from myfind.c:21: In file included from myfind.c:21: myfind.c: In function ‘do_dir’: myfind.c:76: error: ‘size_t’ undeclared (first use in this function) myfind.c:76: error: expected ‘;’ before ‘__s1_len’ myfind.c:76: error: ‘__s1_len’ undeclared (first use in this function) myfind.c:76: error: ‘__s2_len’ undeclared (first use in this function) myfind.c:76: error: left-hand operand of comma expression has no effect myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: left-hand operand of comma expression has no effect myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: left-hand operand of comma expression has no effect myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: left-hand operand of comma expression has no effect myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected ‘;’ before ‘__s1_len’ myfind.c:76: error: left-hand operand of comma expression has no effect myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: left-hand operand of comma expression has no effect myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: left-hand operand of comma expression has no effect myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: left-hand operand of comma expression has no effect myfind.c:76: error: expected expression before ‘const’ myfind.c:76: error: expected expression before ‘const’ myfind.c: In function ‘analyse_file’: myfind.c:120: error: ‘size_t’ undeclared (first use in this function) myfind.c:120: error: expected ‘;’ before ‘__s1_len’ myfind.c:120: error: ‘__s1_len’ undeclared (first use in this function) myfind.c:120: error: ‘__s2_len’ undeclared (first use in this function) myfind.c:120: error: left-hand operand of comma expression has no effect myfind.c:120: error: expected expression before ‘const’ myfind.c:120: error: expected expression before ‘const’ myfind.c:120: error: expected expression before ‘const’ myfind.c:120: error: expected expression before ‘const’ myfind.c:120: error: left-hand operand of comma expression has no effect myfind.c:120: error: expected expression before ‘const’ myfind.c:120: error: expected expression before ‘const’ myfind.c:120: error: left-hand operand of comma expression has no effect myfind.c:120: error: expected expression before ‘const’ myfind.c:120: error: expected expression before ‘const’ myfind.c:120: error: expected expression before ‘const’ myfind.c:120: error: expected expression before ‘const’ myfind.c:120: error: left-hand operand of comma expression has no effect myfind.c:120: error: expected expression before ‘const’ myfind.c:120: error: expected expression before ‘const’ myfind.c:126: error: expected ‘;’ before ‘__s1_len’ myfind.c:126: error: left-hand operand of comma expression has no effect myfind.c:126: error: expected expression before ‘const’ myfind.c:126: error: expected expression before ‘const’ myfind.c:126: error: expected expression before ‘const’ myfind.c:126: error: expected expression before ‘const’ myfind.c:126: error: left-hand operand of comma expression has no effect myfind.c:126: error: expected expression before ‘const’ myfind.c:126: error: expected expression before ‘const’ myfind.c:126: error: left-hand operand of comma expression has no effect myfind.c:126: error: expected expression before ‘const’ myfind.c:126: error: expected expression before ‘const’ myfind.c:126: error: expected expression before ‘const’ myfind.c:126: error: expected expression before ‘const’ myfind.c:126: error: left-hand operand of comma expression has no effect myfind.c:126: error: expected expression before ‘const’ myfind.c:126: error: expected expression before ‘const’ myfind.c:132: error: expected ‘;’ before ‘__s1_len’ myfind.c:132: error: left-hand operand of comma expression has no effect myfind.c:132: error: expected expression before ‘const’ myfind.c:132: error: expected expression before ‘const’ myfind.c:132: error: expected expression before ‘const’ myfind.c:132: error: expected expression before ‘const’ myfind.c:132: error: left-hand operand of comma expression has no effect myfind.c:132: error: expected expression before ‘const’ myfind.c:132: error: expected expression before ‘const’ myfind.c:132: error: left-hand operand of comma expression has no effect myfind.c:132: error: expected expression before ‘const’ myfind.c:132: error: expected expression before ‘const’ myfind.c:132: error: expected expression before ‘const’ myfind.c:132: error: expected expression before ‘const’ myfind.c:132: error: left-hand operand of comma expression has no effect myfind.c:132: error: expected expression before ‘const’ myfind.c:132: error: expected expression before ‘const’ myfind.c:139: error: implicit declaration of function ‘strlen’ myfind.c:139: error: incompatible implicit declaration of built-in function ‘strlen’ myfind.c:190: error: expected ‘;’ before ‘__s1_len’ myfind.c:190: error: left-hand operand of comma expression has no effect myfind.c:190: error: expected expression before ‘const’ myfind.c:190: error: expected expression before ‘const’ myfind.c:190: error: expected expression before ‘const’ myfind.c:190: error: expected expression before ‘const’ myfind.c:190: error: left-hand operand of comma expression has no effect myfind.c:190: error: expected expression before ‘const’ myfind.c:190: error: expected expression before ‘const’ myfind.c:190: error: left-hand operand of comma expression has no effect myfind.c:190: error: expected expression before ‘const’ myfind.c:190: error: expected expression before ‘const’ myfind.c:190: error: expected expression before ‘const’ myfind.c:190: error: expected expression before ‘const’ myfind.c:190: error: left-hand operand of comma expression has no effect myfind.c:190: error: expected expression before ‘const’ myfind.c:190: error: expected expression before ‘const’ myfind.c:207: error: expected ‘;’ before ‘__s1_len’ myfind.c:207: error: left-hand operand of comma expression has no effect myfind.c:207: error: expected expression before ‘const’ myfind.c:207: error: expected expression before ‘const’ myfind.c:207: error: expected expression before ‘const’ myfind.c:207: error: expected expression before ‘const’ myfind.c:207: error: left-hand operand of comma expression has no effect myfind.c:207: error: expected expression before ‘const’ myfind.c:207: error: expected expression before ‘const’ myfind.c:207: error: left-hand operand of comma expression has no effect myfind.c:207: error: expected expression before ‘const’ myfind.c:207: error: expected expression before ‘const’ myfind.c:207: error: expected expression before ‘const’ myfind.c:207: error: expected expression before ‘const’ myfind.c:207: error: left-hand operand of comma expression has no effect myfind.c:207: error: expected expression before ‘const’ myfind.c:207: error: expected expression before ‘const’ myfind.c:214: error: expected ‘;’ before ‘__s1_len’ myfind.c:214: error: left-hand operand of comma expression has no effect myfind.c:214: error: expected expression before ‘const’ myfind.c:214: error: expected expression before ‘const’ myfind.c:214: error: expected expression before ‘const’ myfind.c:214: error: expected expression before ‘const’ myfind.c:214: error: left-hand operand of comma expression has no effect myfind.c:214: error: expected expression before ‘const’ myfind.c:214: error: expected expression before ‘const’ myfind.c:214: error: left-hand operand of comma expression has no effect myfind.c:214: error: expected expression before ‘const’ myfind.c:214: error: expected expression before ‘const’ myfind.c:214: error: expected expression before ‘const’ myfind.c:214: error: expected expression before ‘const’ myfind.c:214: error: left-hand operand of comma expression has no effect myfind.c:214: error: expected expression before ‘const’ myfind.c:214: error: expected expression before ‘const’ myfind.c:222: error: expected ‘;’ before ‘__s1_len’ myfind.c:222: error: left-hand operand of comma expression has no effect myfind.c:222: error: expected expression before ‘const’ myfind.c:222: error: expected expression before ‘const’ myfind.c:222: error: expected expression before ‘const’ myfind.c:222: error: expected expression before ‘const’ myfind.c:222: error: left-hand operand of comma expression has no effect myfind.c:222: error: expected expression before ‘const’ myfind.c:222: error: expected expression before ‘const’ myfind.c:222: error: left-hand operand of comma expression has no effect myfind.c:222: error: expected expression before ‘const’ myfind.c:222: error: expected expression before ‘const’ myfind.c:222: error: expected expression before ‘const’ myfind.c:222: error: expected expression before ‘const’ myfind.c:222: error: left-hand operand of comma expression has no effect myfind.c:222: error: expected expression before ‘const’ myfind.c:222: error: expected expression before ‘const’ myfind.c:244: error: expected ‘;’ before ‘__s1_len’ myfind.c:244: error: left-hand operand of comma expression has no effect myfind.c:244: error: expected expression before ‘const’ myfind.c:244: error: expected expression before ‘const’ myfind.c:244: error: expected expression before ‘const’ myfind.c:244: error: expected expression before ‘const’ myfind.c:244: error: left-hand operand of comma expression has no effect myfind.c:244: error: expected expression before ‘const’ myfind.c:244: error: expected expression before ‘const’ myfind.c:244: error: left-hand operand of comma expression has no effect myfind.c:244: error: expected expression before ‘const’ myfind.c:244: error: expected expression before ‘const’ myfind.c:244: error: expected expression before ‘const’ myfind.c:244: error: expected expression before ‘const’ myfind.c:244: error: left-hand operand of comma expression has no effect myfind.c:244: error: expected expression before ‘const’ myfind.c:244: error: expected expression before ‘const’ myfind.c:280: error: implicit declaration of function ‘strftime’ myfind.c:280: error: incompatible implicit declaration of built-in function ‘strftime’ myfind.c:313: error: request for member ‘gr_name’ in something not a structure or union myfind.c:328: error: implicit declaration of function ‘readlink’ Wird also irgendwo ein Folgefehler sein, hoffe ich
Cyborg11 186 Melden Geschrieben 19. März 2012 Ich wollte auch mal dein Spiel testen, aber leider kann ich die .exe nicht runterladen. Ich hab gerade testweise einen XMLParser geschrieben, da ich schon lange keinen mehr geschrieben habe. Kann man diesen noch optimieren? Ausgelesen werden einige Daten zu den Spielern (Name, ID, Nummer, usw.) und die Teams. Daraus werden dann Player und Team Objekte erstellt, um mit diesen weiterzuarbeiten. player_data.xml: http://pastebin.com/xZJZ79Cb TeamParser.java: http://pastebin.com/HkEhx1NP Player.java: http://pastebin.com/iH23qThM Team.java: http://pastebin.com/TXzjC7dn Gibt es also noch bessere, effizientere Methoden als mit dem DOM Parser?
Dayjay 796 Melden Geschrieben 28. März 2012 iOS Entwickler hier? Ich brauch so einen background worker thread... Aber irgendwie können die beiden Möglichkeiten die ich gefunden habe nicht die einzige Lösung sein, oder? - (void)viewDidLoad { timer = [NSTimer scheduledTimerWithTimeInterval: 10.0 target:self selector:@selector(workerthread) userInfo:nil repeats: YES]; } -(void)workerthread { NSLog(@"Test"); } Log: 2012-03-28 10:10:29.922 app[10116:10703] Test 2012-03-28 10:10:37.506 app[10116:10703] Test 2012-03-28 10:10:39.922 app[10116:10703] Test Wie man sieht wird der Thread nicht wie gewollt alle 10 Sekunden aufgerufen. Nicht so optimal. -(void)workerthread { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; while(1) { NSLog(@"Test"); sleep(10); } [pool release]; } -(void)viewDidLoad { [super viewDidLoad]; [NSThread detachNewThreadSelector:@selector(workerthread) toTarget:self withObject:nil]; } [/codebox] Das läuft zwar bis auf einige Millisekunden genau alle 10 Sekunden aber das kanns ja wohl nicht sein? while und sleep?
PFLO 167 Melden Geschrieben 29. März 2012 Hat von euch schonmal jemand eine Codeinspection gemacht? Weiß überhaupt nicht, worauf ich da achten soll. Wir haben zwar Richtlinien, an die wir uns halten müssen (zB fgets() statt gets()) aber wie soll ich da feststellen, wie "gut" das programmiert ist. So gut kenn ich mich da wirklich nicht aus Irgendwelche Tipps? http://pastebin.com/WVCX5UrX
Buggy McDermit 165 Melden Geschrieben 29. März 2012 Nur paar Tipps auf was man da so u.a. achtet (bei OOP kommt da noch was zu) Schauen ob die Datentypen wirklich sinnvoll sind. Kann ein Pointer jemals (ungewolt) zum NULL-Pointer werden. Ist die Größe von allokierten Speicher richtig ? bzw. wird der angeforderte Speicher wieder freigegeben. Kann/Darf eine Variable nicht negativ werden unsigned drauß machen Hast du Variablen die sich nie verändern -> const drauß machen Müssen große Datentypen wirklich sein z.B. Gleitkomma vs. long int Scope (Lebenszeitraum) von Variablen, kann eine Variable falsche Werte annehmen da sie zu lange lebt. Hat nen switch nen default-Zweig ? Werden geöffnete Streams o.ä. wieder geschlossen ? (Beim Schreiben in Dateien etc.) u.s.w. Halt nachschauen ob irgendwo (wenn es dumm läuft) Fehler auftreten können und den Ressourcenaufwand des Programms reduzieren durch ggf. kleiner Datentypen. Und das Programm lesbarer machen für spätere Bearbeiter durch eindeutige Varaiblennamen und
PFLO 167 Melden Geschrieben 29. März 2012 Ok, danke für die Tipps. Habe jetzt nur noch ein kleines Problem, ich kann das Programm anscheinend nicht kompilieren. Bekomme, nachdem ich "make" eingegeben habe, immer nur "Für das Ziel "all" ist nichts zu tun". Ist da ein Fehler im make-file?
Malarkey 1 Autor Melden Geschrieben 6. April 2012 Mal ne Frage: Habe eine Art 'Die Staemme' für Arme geschrieben. Man verfügt also über Holz, Stein, Eisen, Gold, Nahrung etc. und kann damit Gebäude bauen, die dann wiederrum mehr Holz etc bringen oder es erlauben, mit virtuellen anderen 'Königreichen' zu handeln und sie anzugreifen, sich mit ihnen zu verbünden etc. Doch irgendwie fehlt mir in dem Spiel noch der Motivationsfaktor. Irgendetwas, was man erreichen möchte. Das Spiel läuft nur über Konsole. Wenn ich im Sommer meinen DX11-fähigen Laptop bekomme, werd ich mich an eine 2D umsetzung machen, wo dann aber auch immer noch hübsche Bilder mit Text auf dem Monitor zu sehen sind. Mir fehlt irgendwie etwas persönliches an dem Spiel... So, dass es nicht nur Ressourcenverwaltung ist. Ich hatte schon an sowas wie Quests gedacht, weiß aber nicht ob das was wäre... Auf Wunsch kann ich die neuste Version hochladen, welche aber vom Spielprinzip genau die Gleiche ist, wie die, die ich ein paar Seiten zuvor gepostet habe. Sind halt noch ein paar Features dazugekommen. Zudem hänge ich daran, einen guten und harmonischen Algorythmus für die wirtschaftliche Entwicklung der KI zu entwerfen. Die Gegner verfügen über die selben Ressorucen wie der Spieler. Doch wie binde ich ein möglichst reales Verhalten ein? Bisher gibt es nur ein prozentuales Wachstum, was aber dann auch immer nur sehr zufällig ist. Ich würde gerne eine Exponenz einbauen, dass wohlhabende Reiche, noch Reicher werden und dann den Spieler angreifen etc... Wenn jemand ein paar Ideen hat, wärs echt nett
Samsa 1 Melden Geschrieben 26. April 2012 Hi, weiß jemand wie man Mathematische Formeln in Java besser inplemetieren kann, als mit Math.* Befehlen? Ich bin in Java jetz nicht soo Firm, aber wir sollen von der Uni aus ein Bahnberechnungsmodell für Raumflugkörfer (SGP4) implemetieren. Mit den standard Java Befehlen werden die Berechnungen da aber wahnsinnig lang und unübersichtlich... mfg Samsa
Mc_Crowley 0 Melden Geschrieben 27. April 2012 Hallo, Hi, weiß jemand wie man Mathematische Formeln in Java besser inplemetieren kann, als mit Math.* Befehlen? Ich bin in Java jetz nicht soo Firm, aber wir sollen von der Uni aus ein Bahnberechnungsmodell für Raumflugkörfer (SGP4) implemetieren. Mit den standard Java Befehlen werden die Berechnungen da aber wahnsinnig lang und unübersichtlich... mfg Samsa Was sehr komplexe mathematische Problemlösungen angeht, wäre Java nicht die Sprache meiner Wahl. Java selbst liefert ja von Haus aus die Math Klasse auf Basis derer Funktionen man sich selbst Klassen/Funktionen für das jeweilige Problem zusammenschreiben kann. Auch kannst du dir eine der diversen Libraries herunterladen die es gibt. Zum Beispiel "Math" aus den Apache Commons: http://commons.apache.org/math/ Da gibt es einiges zu Algebra, Geometrie, Statistiken et cetera. Theoretisch brauchst du ja als Basis nicht mehr als die Grundrechenarten, Winkelfunktionen, Exponentialfunktionen, Logarithmen und so weiter. Gruß,
Samsa 1 Melden Geschrieben 30. April 2012 Nur leider müssen wir das ganze in Java machen. Und wir haben da eben Formeln die gedruckt schon 2 Zeilen lang sind und die bestehen dann aus so Sachen wie (sin²(x^4+e))/(1/k^4))+blablabla..... Etwas unangenehm also... Naja ist keine verpflichtende Aufgabe, war nur so interessehalber. gruß Samsa