Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

26.01.2015, 23:25

Hab alles gemacht. Die exe läuft ohne Fehlermeldung - wie vorher auch. Wenn ich jetzt aber #include "SDL.h" in die main Funktion meines Projekts schreibe kommt die bekannte Fehlermeldung.
Muss ich eine Headerdatei erzeugen?

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

12

26.01.2015, 23:35

Du musts denm include Pfad angeben, also dort wo deine SDL.h liegt. Die hast du (oder solltest du) nämlich heruntergeladen haben.
Wenn du den Pfad eingegeben hast, includest du die SDL per #include <SDL.h>
Die Einrichtung des include path wird unter #3 beschrieben.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

13

26.01.2015, 23:43

:thumbsup: es klappt. Wusste nicht das ich das auch in dem neuen Projekt machen muss.

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

14

26.01.2015, 23:49

Du kannst es auch global einstellen afaik, aber pro Projekt macht schon mehr Sinn. ;)
Schön das es geklappt hat. :)
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

15

28.01.2015, 20:35

Hallo zusammen, stecke wieder fest:
Ich habe folgende Funktion zur Ergebnisberechnung:

float fergebnis(int steileranstieg, int leichteranstieg, int flach, int abfahrt, int selbstvertrauen, int frische, int ehrgeiz, int taktik, int anteilsteil, int anteilleicht, int anteilflach, int anteilabfahrt, int genauliegend, int genaustehend, int bestzeit)
{
int zufallszahl, schuss;
int treffer = 0;
strafrunden = 0;
float steilmalus, leichtmalus, flachmalus, abfahrtmalus, malus;

steilmalus = (100 - steileranstieg - selbstvertrauen - frische - ehrgeiz - taktik) * 0.3 / 100. * anteilsteil;
leichtmalus = (100 - leichteranstieg - selbstvertrauen - frische - ehrgeiz - taktik) * 0.3 / 100 * anteilleicht;
flachmalus = (100 - flach - selbstvertrauen - frische - ehrgeiz - taktik) * 0.3 / 100 * anteilflach;
abfahrtmalus = (100 - abfahrt - selbstvertrauen - frische - ehrgeiz - taktik) * 0.3 / 100 * anteilabfahrt;
malus = steilmalus + leichtmalus + flachmalus + abfahrtmalus;

schuss = (genauliegend - selbstvertrauen - frische - taktik);
for (int i = 0; i < 5; i++)
{
zufallszahl = (rand() % 100) + 1;
if (zufallszahl <= schuss)
treffer = treffer + 1;
}
strafrunden = strafrunden + 5 - treffer;

treffer = 0;

schuss = (genaustehend - selbstvertrauen - frische - taktik);
for (int i = 0; i < 5; i++)
{
zufallszahl = (rand() % 100) + 1;
if (zufallszahl <= schuss)
treffer = treffer + 1;
}
strafrunden = strafrunden + 5 - treffer;

malus = malus + strafrunden * 25;

ergebnis = bestzeit + malus;

return 0;
}

Ich bekomme folgende Fehlermeldung in der Zeile des Funktionsaufrufes:
warning C4244: 'Argument': Konvertierung von 'float' in 'int', möglicher Datenverlust
Der ausgegebene Wert "ergebnis" ist richtig, aber als 'int' halt ohne Nachkommastellen.

Was mache ich falsch, möchte auch Zehntelsekunden anzeigen lassen

16

28.01.2015, 21:05

Du must halt mit float Werten rechnen, bzw nach float casten wen nötig.
Kann auch nicht erkennen ob Ergebnis float oder int ist.

Code tags wären nicht schlecht.

Gruß koschi.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

17

28.01.2015, 22:19

:dash: :dash: :dash: Ich google mich wund nach Lösungen, versuchs mit casten, poste hier um jetzt festzustellen, dass mein Ergebnis gar keine Nachkommastelle hat. Ich habe ein Athletenattribut verändert und schon hatte ich Nachkommastellen.

Tut mir leid...

Danke aber für deine Antwort, läuft bei mir alles sehr zäh und will nicht wegen jedem pups fragen. Stück für Stück gehts vorwärts.

Jetzt versuche ich die Klasse "csportler" zu erstellen. Wenn ich z.B. 100 Athleten habe mit ca. 20 Attributen. Wie lese ich diese am besten ein?
Habe eine ini-Vorlage, wo ich Werte auslesen lassen kann, allerdings bisher nur einzeln:
ini:
[kategorie1]
variable1=73
variable2=42

[kategorie2]
variable=usw


char pfad[256] = "C:\\Beispiel.ini"; //der absolute Pfad zur INI
int variable; //Die Variable die mit einem Wert belegt werden soll

variable = GetPrivateProfileInt("kategorie1",
"variable1");

//'variable' wird hier nach dem obigen Beispiel mit 73 (int) belegt 1

Die ini könnte später auch eine Art Editor sein. Macht diese Lösung Sinn, bzw. gibt es eine Möglichkeit die ini komplett einzulesen und den Athleten zuzuordnen?

18

29.01.2015, 06:40

Schau dir mal std::fstream und EOF an.

Das hier könnte auch noch interessant sein.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Koschi« (29.01.2015, 06:49)


19

29.01.2015, 20:43

Ok, danke.
Habe jetzt mit ifstream die Datei ausgelesen und zum test in eine neue Datei geschrieben -passt.

Aber irgendwie komme ich mit meinem eigentlichen Problem nicht weiter:

Ich habe die Klasse csportler erstellt

[sportler001]
Name
Attribut 1
Attribut 2
usw

Wie kann ich jetzt für alle Athleten (ca. 100) Instanzen der Klasse anlegen ohne jeden Wert einzeln in eine Variable zu speichern (Würden dann ca. 1500 Zeilen werden)
Gibt es keine Funktion die 100 Athleten in einem Rutsch zu erstellen?

20

29.01.2015, 21:06


Gibt es keine Funktion die 100 Athleten in einem Rutsch zu erstellen?


Ich weiß nicht genau ob ich dein Problem Verstanden habe.

Schreibe dir eine Funktion die dir ein Sportler per Zufall erstellt.
Schreibe dir eine Funktion die dir ein Sportler in eine Datei speichert.
Schreibe dir eine Funktion die dir das 100 mal macht und gut.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

Werbeanzeige