Zum Inhalt springen
Malarkey

Coder-Stübchen

Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von PFLO
Link zu diesem Kommentar
Auf anderen Seiten teilen

Poste mal den Code auf Pastebin, damit die Zeilennummern mit dabei sind.

Bearbeitet von Cyborg11
Link zu diesem Kommentar
Auf anderen Seiten teilen

pastebin.com/3LtDmCHn

Einen Fehler habe ich gefunden, dafür hat er mir tausend andere ausgespruckt :o

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 :o

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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ß,

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden


  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.