Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Programmvorstellung] ~FM 4.1~



Expresseon
08.09.2007, 19:42
Hallo!

Vorwort und Grundlegendes

Ich möchte der Community mein neustes Endprodukt mit Borland Delphi (6) zeigen. Es ist ein launemachender Fußballmanager! Zum Download gibts die aktuelle Version, v4.1, welche reibungslos funktioniert.

Grundlegende Daten:
Dateiname: FM 4.1.exe
Größe: 480 KB
Erstellungsprogramm: B. Delphi 6
Version 4.1

Der Manager müsste auf jedem Computer funktionieren, ab Win95.

Programminformationen

Man spielt in der italienischen Serie A, was die 1. Liga ist. Die Mannschaften und Spieler sind etwa 8 Monate alt, also nicht mehr ganz aktuell. Das liegt daran, dass das Programm schon vor einem Jahr fertiggestellt wurde, aber noch nie vorgestellt. Eine neue Version wird es evtl. bald geben.

Umfang:
- alle 20 Mannschaften der Liga (in der Demo nur 17 vorhanden!)
- ca. 250 Spieler (etwa 30 Spieler des Transfermarktes fehlen in der Demoversion!)

Features:
- gesamte Saison mit 40 Spieltagen spielbar
- Mannschaftsstärke ansehen, bestimmt die Ergebnisse mit
- Geldvermögen des Vereins eingebaut
- aktuellen Tabellenplatz ansehen
- aktuelle Punktzahl ansehen
- Teamfitness ansehen und auffrischen
- Team trainieren
- viele Statistiken ansehen
- spezieller Transfermarkt mit Top-Spielern aus aller Welt (nicht in der Demo!)
- eigenes Team ansehen, alle Spieler und ihre Stärke (Stärke=Marktwert) (nicht in der Demo!)
- Spieler verkaufen und einkaufen (nicht in der Demo!)
- Hilfemenü mit eingebaut (nicht in der Demo!)

Screenshot

http://img266.imageshack.us/img266/6070/fm41px6.png

Download (http://npshare.de//files/35/1286/Fussballmanager 4.1 Demoversion.exe)

Das Programm ist sehr klein, was ein netter Vorteil sein sollte.

Schlusswort

Der Fußballmanager ist mein erstes komplexes Delphiprogramm, ich bin sehr stolz darauf. Deshalb wollte ich ihn hier mal vorstellen. Denen, die ihn sich runterladen, wünsche ich viel Spaß!

Grüße, P-Games

Edit: Leider ist ab jetzt nur noch eine Demoversion vorhanden! Das Programm wird mit anderen Personen fortgeschritten weiterentwickelt und eine dazugehörige Vollversion wird nicht mehr Freeware sein. Das Programm wird außerdem auch für MAC und Linux entwickelt.

Mani
08.09.2007, 20:16
In meinen Ohren hört es sich eigentlich ganz gut an, werds mir mal laden und ausprobieren.
Ich denke, dass war harte Arbeit.
Obowhl ich nicht so der Programmierer bin...:/

jensma
21.09.2007, 04:45
Ei..ei..ei...

http://www.ewetel.net/~heiko.martens/temp/3.png

http://www.ewetel.net/~heiko.martens/temp/2.png

http://www.ewetel.net/~heiko.martens/temp/01.png

UND SO ETWAS SCHIMPFT SICH VERSION 4.1.

Expresseon
21.09.2007, 16:45
1. Wenn man einen Spieler verkauft, ist an seiner Stelle ja im Moment gar nichts im Kader. Also wird "---" richtigerweise angezeigt! Du kannst so auch weiterspielen, wenn du willst.

2. Du musst 50 Geldeinheiten haben, nicht vergessen. Ansonsten weiß ich nicht, was du hast, es funktioniert 100% immer, zu trainieren.

3. Das kann nicht sein. Dazu muss man das Programm sehr nichtvollziebar steuern, damit es sowas ausspuckt.

4. Auch das ist nach etlichen Tests von verschiedenen Leuten nie passiert. Was hast du bloß gemacht?!

5. Passt entsprechend zu 4.

6. 2 = 2. Spieltag, SP = Spielertore, PC = Gegnerpunkte. Also das Ergebnis. Ist doch nicht so schwer zu verstehen!

7. Lesbar ist es immerhin...

8. Schrift über Fahne? Entweder du hast das Programm total geschrottet oder es ist eine Fotomontage.

9. <>-Button: Nach der letzetn Mannschaft kommt wieder die 1.

Fazit: Du übertreibst es ordentlich!^^

treeghost
21.09.2007, 22:19
Wow o.o ist das dein erstes Programm mit Delphi?
Und wie lang hasst du daran gearbeitet?

Expresseon
22.09.2007, 10:18
Das ist mein erstes fertiges Programm, die anderen waren nur Versuche. Es hat etwa 3 Monate gebraucht.
Ich mache jetzt eine geupdatete Version:
- aktuelle Spieler
- Mannschaftsstärke bei der Startauswahl ansehen

Eventuell werde ich auch noch genau den selben Manager mit der Bundesliga machen.

jensma
22.09.2007, 17:15
Ich VERLANGE, dass du auf meinem Bericht entsprechend reagierst und alle Fehler in der nächsten Version korrigierst!

Expresseon
22.09.2007, 19:33
Ich VERLANGE, dass du auf meinem Bericht entsprechend reagierst und alle Fehler in der nächsten Version korrigierst!

Alle deine Fehler sind nicht normal, wer das Programm richtig bedient, der hat diese Fehler auch nicht. Schon gar nicht diesen Fehler mit der Schrift über der Fahne. Also gibts nix zu verbessern.

NPC Fighter
22.09.2007, 20:14
Alle deine Fehler sind nicht normal, wer das Programm richtig bedient, der hat diese Fehler auch nicht.

Es darf in keinster Weise zu solchen Bugs kommen, selbst wenn der Benutzer es rausfordert. *kopfschüttel*

FF
22.09.2007, 23:33
Alle deine Fehler sind nicht normal, wer das Programm richtig bedient, der hat diese Fehler auch nicht. Schon gar nicht diesen Fehler mit der Schrift über der Fahne. Also gibts nix zu verbessern.

o_O

Wenns die fehler gibt, musst du sie ausbessern, und ned sagen: pech, bist halt zu blöd für das programm.
du hast es halt ned DAU sicher geschrieben.
Ansonsten brauchst du es ned in nem Forum vorzustellen, wenn du nicht kritikkfähig bist.

Manuel
23.09.2007, 01:27
Uhm... Das wär das Gleiche, als wenn man ein Schachspiel vorstellen würde, bei dem man die Figuren auf JEDES Feld ziehen könnte... Wenn man da einfach sagen würde:
Alle deine Fehler sind nicht normal, wer das Programm richtig bedient, der hat diese Fehler auch nicht.
[...]
Also gibts nix zu verbessern.Da würde es (berechtigte!) Kritik wohl nur so hageln... Nicht übelnehmen, aber jedes noch so gutes Programm (völlig egal ob kommerziell oder kostenlos) würde KEINE weite Verbreitung erfahren, wenn man DAU*-Fehler einfach so abweisen würde...

Dann noch eine kleine Nebensache, die jensma mit der Versionsnummer meint: Normalerweise finden solche Versionssprünge, wie du sie mit deinem Programm gemacht hast, in einem wesentlich kleinerem Maße statt. Das soll jetzt keine Kritik an sich sein, schließlich wird es jedem freien Programmierer überlassen, sein Programm selbst zu "Versionieren"... Trotzdem halten sich geschätzte 90% aller Programmierer an Regeln, wie sie mit Versionsnummern verfahren und die werden in der Regel deswegen eingehalten, weil durch eine Versionsnummer (möglicherweise auch mit "Alpha/Beta/RC/Final"-Zusatz) ersichtlich wird, in welchem Maße das Programm bereits fertig ist und ob man es bereits sinnvoll nutzen kann. Falls ich das Interesse geweckt habe, empfehle ich den Wikipedia-Eintrag unter "Versionsnummer". (http://de.wikipedia.org/wiki/Versionsnummer) Hier mal ein kleiner Ausschnitt, wie die Mehrzahl aller Programmierer mit Versionsnummern umgeht:
Eine Versionsnummer setzt sich häufig wie folgt zusammen:

Hauptversionsnummer.Nebenversionsnummer.Revisionsnummer-Buildnummer
[...]
Eine Hauptversionsnummer (major release) indiziert meist äußerst signifikante Änderung am Programm – z. B. wenn das Programm komplett neu geschrieben wurde (z. B. GIMP 1.x nach 2.x).
Eine Nebenversionsnummer (minor release) bezeichnet meistens die funktionelle Erweiterung des Programms.
Eine Revisionsnummer (patch level) enthält meist Fehlerbehebungen.
Die Buildnummer (build number) kennzeichnet in der Regel den Fortschritt der Entwicklungsarbeit in Einzelschritten, wird also z. B. bei 0001 beginnend mit jedem Kompilieren des Codes um 1 erhöht. Version 5.0.0-3242 stünde also für das 3242. Kompilationsprodukt einer Software.
[...]
Oftmals ist es – vor allem bei Open-Source-Lösungen – der Fall, dass sich die Versionsnummern von Programmen oder Systemen noch vor der Version 1.x befinden. Dies deutet jedoch nicht zwingend darauf hin, dass die Entwicklung noch nicht weit fortgeschritten ist, sondern eher, dass die Version noch nicht das von den Entwicklern gesteckte Ziel erreicht hat und sich weiterhin in der Entwicklung befindet. Teilweise gibt es sogar Open-Source-Programme, die, obwohl sie den Alpha- und Beta-Status längst verlassen haben, weiterhin noch unterhalb der Version 1.x versioniert sind.Natürlich muss die Versionsnummer nicht gleich durch vier (oder mehr) Zahlenreihen bestehen, viele Programmierer beinhalten lediglich zwei Reihen, was auch völlig in Ordnung ist. Der Knackpunkt ist folgender: Wenn du die allererste Zahl in deiner Version schon mit einer "vier" beschreibst, geht - gemäß der groben Richtlinien - jeder davon aus, dass dein Programm schon enorm weiterentwickelt wurde und zig Verbesserungen gegenüber einer "1.0"-Version enthält. Wenn du allerdings - das ist ernst gemeint, keine Beleidigung o.Ä. - noch nichtmal DAU-Fehler ausgebessert hast, wäre eine Version kleiner 0 eher angebracht (ich verweise nochmal auf den Wikipedia-Artikel)...

EDIT:
@dead_orc: Ich hab mich falsch ausgedrückt, ich meinte eine Versionsnummer, bei dem die erste Zahl der Zahlenreihe auf 0 steht :P

* DAU = Dümmster anzunehmender User. In der Regel wird einem beim Programmieren beibebracht, dass derjenige, der das Programm bedient, ein möglicher DAU sein kann (das ist NICHT derjenige, der das Programm programmiert!) und man das Programm möglichst DAU-Sicher machen sollte... Nicht umsonst bringt das Durchtesten des Programms auf Fehler einen nicht unterschätzenden Zeitaufwand mit sich...

dead_orc
23.09.2007, 10:31
wäre eine Version kleiner 0 eher angebracht
Wer zur Hölle benutzt negative Versionsnummern? (scnr)

Ich finde, jensma übertreibt kein bisschen. Er drückt sich zwar nicht sehr freundlich aus, aber er hat einfach nur Recht.

Zu 1. bis 5. sag ich mal nichts, weil ich das Problem nicht reproduzieren kann (da ich kein Windows habe)


6. 2 = 2. Spieltag, SP = Spielertore, PC = Gegnerpunkte. Also das Ergebnis. Ist doch nicht so schwer zu verstehen!
Ist es nicht, WENNS IRGENDWO ERKLÄRT WIRD. Sonst gibts nichts, was man verstehen könnte, und demnach weiß man nicht, was da steht.


7. Lesbar ist es immerhin...
Findest du? Also ich lese lieber kontrastreichere Sachen, weil ich meine Augen noch n bisschen brauche und die Krankenkasse irgendwann die Brillen net mehr zahlt


8. Schrift über Fahne? Entweder du hast das Programm total geschrottet oder es ist eine Fotomontage.
Klar. Ne Fotomontage. Nur um dich zu ärgern.


9. <>-Button: Nach der letzetn Mannschaft kommt wieder die 1.
Ich weiß ja nicht wie viele es gibt, aber bei mehr als 3 Mannschaften sollte man auch die vorherige wählen können.

WeTa
23.09.2007, 11:20
Also ich finds voll geil, dass man nicht vorhandene Spieler trainieren, und mit ihnen auch noch Spiele gewinnt :A
Ich mein, hey, das bietet mir kein anderer Fußballmanager :)

Mal im Ernst, da gibs noch VIEL zu verbessern. ALs ichs dass erste Mal probiert hab, wusste ich überhaupt nicht was ich tun sollte. Und unübersichtlich isses imo auch. Mach mal ne ausführlichere Hilfedatei.

Expresseon
23.09.2007, 13:05
Danke Manuel, das mit den Versionsnummern war doch ganz hilfreich.
Ich werde es also DAU-sicher machen müssen, also muss ich mal herausfinden, wie es zu den Fehlern gekommen ist. Übersichtlicher machen kann ich es auch, aber eigentlich hielt ich es für recht übersichtlich. Die Hilfe werde ich also auch erweitern, damit man es gut versteht. Ich denke, da wird aber auch ein PDF-Dokument mit beschrifteten Bildern ausreichen, oder?

dead_orc
23.09.2007, 14:15
Ich würde eine in das Spiel integrierte Hilfe über Tooltips oder sowas bevorzugen, denke ich.

jensma
23.09.2007, 21:17
Ich würde dir auch noch empfehlen, ein paar Grafiken und Animationen einzubauen. Nur Text ist dann doch ein wenig fad.

Manuel
24.09.2007, 01:43
8. Schrift über Fahne? Entweder du hast das Programm total geschrottet oder es ist eine Fotomontage.Leider nicht, es ist KEINE Fotomontage. Unter Windows XP ist bei mir die Schrift ebenfalls über die Fahne... Woran das liegt, weiß ich leider nicht (vielleicht hast du eine Schriftart benutzt, die Vista besitzt aber XP nicht, oder du hast sie in irgend einer Weise formatiert, mit der XP nichts anfangen kann...?) Ansonsten sind bei mir leider auch genau die Bugs aufgetreten, die jensma beschrieben hat, er hat nicht gelogen...

Ansonsten finde ich es schade, dass sich das Programm einfach so beendet, wenn man irgendein Ziel erreicht bzw. nicht erreicht hat... Direkt zurück ins Hauptmenü wäre evtl. schöner...

Etwas verwirrend ist mMn auch, dass man beim Geld nie einen Wert von 0 erreichen kann. Ich wollte beispielsweise meine Mannschaft trainieren zu je 50 Euro(?), und obwohl ich im voreingestellten Wert 100 Euro hatte, konnte ich nur einmal trainieren... In die "Feature-Liste" würde ich vielleicht auch sowas wie einen Kredit einbauen, bei dem man den Mindestbetrag zu Scheitern auf einen niedrigeren Wert stellt o.Ä. *so spontan in den Raum wirft*

Auch etwas komisch ist, dass nach einem Spiel verlorenen quasi erst der Betrag angezeigt wird und man auf "Weiter" klicken muss... Das seltsame darin ist, dass man das allerdings auch dann tun muss, wenn der Betrag wg. eines verlorenen Spiels ins Minus gegangen ist...

http://img229.imageshack.us/img229/7683/unbenanntop6.png (http://imageshack.us)


Ansonsten wäre eine ausführlichere (und lesbarere, wg. blau ;) ) Beschreibung innerhalb der Hilfe wirklich angebracht, da für einen Unwissenden (oder einen DAU, je nachdem :p ) ein paar Fragen aufkommen können, etwa:

Welchen Unterschied haben die Mannschaften, oder unterscheiden die sich nur nach Namen? Falls ja: Gäbe es eine Möglichkeit, den Teamnamen zu ändern oder ein komplett eigenes Team zu erstellen?
Warum werden die "Verkauf"-Buttons für ein paar Mitspieler ausgeblendet, wenn ich einen einzigen verkaufe? (Ich beherrsche bei Fussball nur die Grundregeln, werden da irgendwelche Regeln verletzt, wenn man mehr Spieler verkaufen würde?)
Nach einem Spiel: Wieviele Euro beträgt die Belohnung/Bestrafung? Ein Zufallswert mit Mindest- und Maximalwert?
Nach welchem Kriterium werden Spiele gewonnen/verloren?


Alles in allem ist das Spiel für einen kleinen Hunger zwischendurch wirklich sehr nett geraten... Wie gesagt, leider stören Bugs doch sehr... Fehlerfrei, wie du es eigentlich auch im Anfangspost geschrieben hast, wäre das Ganze viel besser...

EDIT: Dann noch ein Bug, der mit aufgefallen ist: Ist die Teamfitness bereits komplett im Keller (die Leiste ist komplett schwarz), kann man - genügend Geld vorausgesetzt - die Leute bis in alle Ewigkeit trainieren lassen. Man muss nur, BEVOR man auf "Weiter"/"Anpfiff" klickt, den Button "Auffrischung" anklicken...

EDIT²: Ein kleiner Motivationsschub wäre es vielleicht, wenn man eine Art "Eigenes Spiel" machen kann, bei der man die Grenze von 40 Tagen aushebeln kann... Ich finds schade, das alles nach 40 Tagen vorbei ist...

EDIT³: Noch etwas, was mir nebenbei auffällt: Was haben die Werte "S", "U", "N", "HT" und "GT" im Spiel zu suchen? Ich habe keine Ahnung, was in denen gezählt wird...

Expresseon
24.09.2007, 19:56
@ Jensma: Animationen beherrsche ich in Delphi leider nicht.

@ Manuel:


Leider nicht, es ist KEINE Fotomontage. Unter Windows XP ist bei mir die Schrift ebenfalls über die Fahne... Woran das liegt, weiß ich leider nicht (vielleicht hast du eine Schriftart benutzt, die Vista besitzt aber XP nicht, oder du hast sie in irgend einer Weise formatiert, mit der XP nichts anfangen kann...?) Ansonsten sind bei mir leider auch genau die Bugs aufgetreten, die jensma beschrieben hat, er hat nicht gelogen...

Ich habe WinXP als Betriebssystem, das war auch noch der Fall, als das Programm fertig wurde, seit 2 Monaten benutze ich das Vista-DESIGN, was aber keine Rolle spielen sollte. Ist für mich unerklärlich.


Ansonsten finde ich es schade, dass sich das Programm einfach so beendet, wenn man irgendein Ziel erreicht bzw. nicht erreicht hat... Direkt zurück ins Hauptmenü wäre evtl. schöner...

Ich möchte eigentlich auch eine Speicherfunktion einbauen, das habe ich aber noch nicht mit dem Programm gelernt.


Etwas verwirrend ist mMn auch, dass man beim Geld nie einen Wert von 0 erreichen kann. Ich wollte beispielsweise meine Mannschaft trainieren zu je 50 Euro(?), und obwohl ich im voreingestellten Wert 100 Euro hatte, konnte ich nur einmal trainieren... In die "Feature-Liste" würde ich vielleicht auch sowas wie einen Kredit einbauen, bei dem man den Mindestbetrag zu Scheitern auf einen niedrigeren Wert stellt o.Ä. *so spontan in den Raum wirft*

Wenn man den Trainings-Button anklickt, wird jedesmal trainiert, bei dir etwa nicht? Das mit dem Mindestbetrag habe ich nicht so ganz verstanden.


Auch etwas komisch ist, dass nach einem Spiel verlorenen quasi erst der Betrag angezeigt wird und man auf "Weiter" klicken muss... Das seltsame darin ist, dass man das allerdings auch dann tun muss, wenn der Betrag wg. eines verlorenen Spiels ins Minus gegangen ist...

Wie gesagt bin ich noch ein ziemlicher Anfänger und habe dafür keine andere Lösung gefunden.

http://img229.imageshack.us/img229/7683/unbenanntop6.png (http://imageshack.us)

Zum Bild: Wenn du das mal mit meinem Screen vergleichst, merkst du, dass irgendwie alle Farben völlig verschieden sind. Wieso?



Ansonsten wäre eine ausführlichere (und lesbarere, wg. blau ;) ) Beschreibung innerhalb der Hilfe wirklich angebracht, da für einen Unwissenden (oder einen DAU, je nachdem :p ) ein paar Fragen aufkommen können, etwa:

Na gut, weiß bietet sich als Farbe sicher gut an (auf blau).



Welchen Unterschied haben die Mannschaften, oder unterscheiden die sich nur nach Namen? Falls ja: Gäbe es eine Möglichkeit, den Teamnamen zu ändern oder ein komplett eigenes Team zu erstellen?
Warum werden die "Verkauf"-Buttons für ein paar Mitspieler ausgeblendet, wenn ich einen einzigen verkaufe? (Ich beherrsche bei Fussball nur die Grundregeln, werden da irgendwelche Regeln verletzt, wenn man mehr Spieler verkaufen würde?)
Nach einem Spiel: Wieviele Euro beträgt die Belohnung/Bestrafung? Ein Zufallswert mit Mindest- und Maximalwert?
Nach welchem Kriterium werden Spiele gewonnen/verloren?


1. Wenn ich mich anstrenge wird das alles sicher möglich. Im Moment ist sind nur die Namen der Unterschied (und eben die Stärken).

2. Nun, das ist eine eigene Regel von mir, um "Megareichtum" zu verhindern. Verkauft man einen Spieler einer Position, kann man erst in der nächsten Runde wieder einen Spieler dieser Position verkaufen.

3. Nein. Die Belohnung/Bestrafung wird über die Stärke der gegnerischen Mannschaft festgelegt, hinzu kommt die Tordifferenz des Ergebnisses.

4. Das ist ein komplizierter Berechnungsvorgang. Also: Die STÄRKE deines Teams entscheidet darüber. Diese wird über die Einzelwerte der Spieler festgelegt. Das Ergebnis wird zu 75% auf der Stärke basierend berechnet, hinzu kommen 25% Zufallseinfluß.


Alles in allem ist das Spiel für einen kleinen Hunger zwischendurch wirklich sehr nett geraten... Wie gesagt, leider stören Bugs doch sehr... Fehlerfrei, wie du es eigentlich auch im Anfangspost geschrieben hast, wäre das Ganze viel besser...

Du sagst es.^^


EDIT: Dann noch ein Bug, der mit aufgefallen ist: Ist die Teamfitness bereits komplett im Keller (die Leiste ist komplett schwarz), kann man - genügend Geld vorausgesetzt - die Leute bis in alle Ewigkeit trainieren lassen. Man muss nur, BEVOR man auf "Weiter"/"Anpfiff" klickt, den Button "Auffrischung" anklicken...

Ist mir unklar. Es gilt schließlich immer die Bedingung, dass man 50 Geldeinheiten braucht.


EDIT²: Ein kleiner Motivationsschub wäre es vielleicht, wenn man eine Art "Eigenes Spiel" machen kann, bei der man die Grenze von 40 Tagen aushebeln kann... Ich finds schade, das alles nach 40 Tagen vorbei ist...

Werde mal sehen, was sich machn lässt.


EDIT³: Noch etwas, was mir nebenbei auffällt: Was haben die Werte "S", "U", "N", "HT" und "GT" im Spiel zu suchen? Ich habe keine Ahnung, was in denen gezählt wird...

S = Gesamtzahl der Siege in allen Spielen
U = Unentschieden
N = Niederlagen
HT = alle gemachten Tore deines Teams in der Saison
GT = alle Gegentore
Dies dient nur als kleine Statistik.

Crash-Override
24.09.2007, 22:16
Ich möchte eigentlich auch eine Speicherfunktion einbauen, das habe ich aber noch nicht mit dem Programm gelernt.

Wie verwaltest du den die Daten im Moment (habs noch nicht runtergeladen)? Wenn du Fragen zu Delphi hast kannst du mich übrigens ansprechen, da ich schon seit Jahren einer der wenigen aktiven Delphi-Verfechter dieses Boards bin und meine das Meiste zu wissen.
Wenn du es mit Records machst dürfte es ja billig mit var f: File of Record; gehen, wenn du das Programm in Klassen unterteilt hast bieten sich XML und INI an.

Expresseon
25.09.2007, 20:14
Ja also das Projekt besteht aus mehreren Forms (und Units dementsprechend). Speichern kann man es überhaupt nicht. Es ist eben ein ausführendes Programm, dessen "Spielaufgabe" in einem gelöst werden muss. Danach beedet man alles.

Moyaccercchi
27.09.2007, 16:11
Ich hab mir weder das Spiel heruntergeladen, noch mir großartig Gedanken gemacht (ja, ich weiß, ich bin schlimm - aber ich mag einfach keinen Fußball und hab auch nicht wirklich Zeit ^^), bloß ist mir aufgefallen, wieso deine Schriftart oben über die Fahne gehen könnte. Die anderen, auf deren Computern das Spiel ausgeführt wird, scheinen einfach die Schriftart nicht zu besitzen, die du für die Überschrift eingestellt hast, weswegen automatisch eine Standardschriftart eingesetzt wird, die breiter ist - und den Text rüberragen lässt. ;)

FF
27.09.2007, 21:05
das ist ziemlich benutzer unfreundlich. du brauchst doch nur ein paar werte in eine datei zu schreiben, und die wieder einzulesen, das ist ned sonderlich schwer, würde dem spiel aber viel benutzercomfort verleihen o.O

Crash-Override
27.09.2007, 21:16
Ja also das Projekt besteht aus mehreren Forms (und Units dementsprechend). Speichern kann man es überhaupt nicht. Es ist eben ein ausführendes Programm, dessen "Spielaufgabe" in einem gelöst werden muss. Danach beedet man alles.

Versuchs mal mit OOP, damit dürftest du dein Projekt übersichtlicher halten können. Dafür legst du einfach neue Units an (ohne Formular!) und definierst dort Klassen für alle möglichen Objekte. Hier beispielsweise ein Auszug aus der Unit "Football.pas" eines meiner Projekte (Football = American Football).


unit Football;

interface

uses
SysUtils, Classes;

type
TFieldSide = (fsTeam1, fsTeam2, fs50Yard);
TWeather = (weSunny, weRain, weHot);
TBallOwner = (boTeam1, boTeam2);
TGameState = (gsPlaying, gsKickOff, gsPunt);

TFootballGame = Class
private
fgLogStrings: TStrings;
fgTeam1Name : String;
fgTeam2Name : String;
// --------------------
fgBallOnYard: Integer;
fgBallOnSide: TFieldSide;
fgBallOwner : TBallOwner;
fgPlay : Integer;
fgGameState : TGameState;
// --------------------
fgWeather: TWeather;
// ####################
procedure AddToLog(S: String);
procedure PrintStatus;
public
constructor Create(Log: TStrings);
destructor Free;
procedure Toss;
[...]
// ####################
property Team1: String read fgTeam1Name write fgTeam1Name;
property Team2: String read fgTeam2Name write fgTeam2Name;
end;

implementation

constructor TFootballGame.Create(Log: TStrings);
begin
fgLogStrings := Log;
fgBallOnSide := fs50Yard;
fgBallOnYard := 50;

// Calculate Weather
case (Random(11)) of
0..6 : fgWeather := weSunny; // 60% Sunny
7..8 : fgWeather := weHot; // 20% Hot
9..10 : fgWeather := weRain; // 20% Rain
end;
[...]
end;

destructor TFootballGame.Free;
begin
AddToLog('And off we go...');
end;

procedure TFootballGame.Toss;
begin
AddToLog('Well I guess it''s time for a toss.');
case Random(2) of
0: begin
fgBallOwner := boTeam1;
fgBallOnSide := fsTeam1;
fgBallOnYard := 20; // Just always place it on 20
AddToLog('The ' + fgTeam1Name + ' are kicking.');
end;
1: begin
fgBallOwner := boTeam2;
fgBallOnSide := fsTeam2;
fgBallOnYard := 20; // Just always place it on 20
AddToLog('The ' + fgTeam2Name + ' are kicking.');
end;
end;
fgPlay := 1;
fgGameState := gsKickOff;
PrintStatus();
end;

procedure TFootballGame.PrintStatus;
var
BallSide: String;
begin
case fgBallOnSide of
fsTeam1 : BallSide := fgTeam1Name + ' ' + IntToStr(fgBallOnYard);
fsTeam2 : BallSide := fgTeam2Name + ' ' + IntToStr(fgBallOnYard);
fs50Yard: BallSide := 'the 50 Yard Line'
end;
AddToLog('');
AddToLog('----------------------------------------');
AddToLog('Ball''s on ' + BallSide);
AddToLog('----------------------------------------');
if fgGameState = gsPlaying then
case fgBallOwner of
boTeam1: AddToLog(fgTeam1Name + ' ' + IntToStr(fgPlay));
boTeam2: AddToLog(fgTeam2Name + ' ' + IntToStr(fgPlay));
end;
end;

procedure TFootballGame.AddToLog(S: String);
begin
fgLogStrings.Add(S);
end;

[...]

end.

Dann bindest du das ganze in deinem Formular per uses ein und kannst dann bequem die Klasse wie jede andere nutzen. Also bei mir z.B.


var
Football: TFootballGame;
begin
Frame1.Visible := False;
Frame2.Visible := True;
try
Football := TFootballGame.Create(Log.Lines);
Football.Team1 := Team1.Text;
Football.Team2 := Team2.Text;
Football.Toss;
finally
Football.Free;
end;

Wenn du das für Spieler, Teams und das Spiel an sich jeweils einzeln regelst und die Daten für Teams etc. aus ini/xml ausliest (nicht im Code festlegst) ist das Spiel schonmal viel dynamischer zu meistern.

Expresseon
28.09.2007, 14:07
Wegen der Schrift: jeder PC hat Arial. :p

DFYX
28.09.2007, 14:25
Vielleicht jeder Windows PC :rolleyes: Aber gut, nachdem dein Programm eh nur für Windows ist, sollte das kein Hindernis darstellen.

jensma
29.09.2007, 08:13
Auch wenn's komisch aussieht: Es heisst "FUSSBALL" und nicht FUßBALL.

WeTa
03.10.2007, 19:35
Auch wenn's komisch aussieht: Es heisst "FUSSBALL" und nicht FUßBALL.

Nope. Fußball ist auch korrekt.

edit: damn, ich dachte er würde auf die lustigen FIFA-Regelungen anspielen. klar, jens hat Recht.

The Best Isaac
03.10.2007, 19:39
Nope. Fußball ist auch korrekt.

Nein, Jensma hat schon recht. Wenn man komplett in Versalien (Großbuchstaben) schreibt, wird das Eszett durch zwei S ersetzt.
Ansonsten heißt es aber IMMER Fußball. Und nicht Fussball. Auch nach der Rechtschreibreform nicht.

Wieder schlauer geworden. ;)

Drakes
03.10.2007, 19:48
Nein, Jensma hat schon recht. Wenn man komplett in Versalien (Großbuchstaben) schreibt, wird das Eszett durch zwei S ersetzt.
Ansonsten heißt es aber IMMER Fußball. Und nicht Fussball. Auch nach der Rechtschreibreform nicht.

Wieder schlauer geworden. ;)

Also, bei uns in der Schweiz gibt es das Eszett zum Glück nicht. :p

Expresseon
12.10.2007, 17:27
Um nochmal auf das Thema zu kommen:
Fussball schreibe ich also mit zwei s - gut. Ich habe allerdings gemerkt, dass ein Programm aus bunten Panels und Feldern nichts im Vergleich zu einem schönen Programm mit Windowsoberfläche ist - also Buttons, etc. Ich werde wohl lieber einen Fussballmanager erstellen, in dem man nur seine eigene Mannschaft haben kann, das ist auch sehr beliebt. Da ich jetzt ein Jahr älter bin als bei meinem letzten großen Programm und wieder Informatik habe, lerne ich dazu und kann ein mittelgroßes, ordentliches Fussballprogramm schreiben. Und dank MMX gibt es Leute, die mich auf Fehler etc. hinweisen. Sehr schön. :)