Ergebnis 1 bis 20 von 30

Thema: [Programmvorstellung] ~FM 4.1~

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Also ich finds voll geil, dass man nicht vorhandene Spieler trainieren, und mit ihnen auch noch Spiele gewinnt
    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.

  2. #2
    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?

  3. #3
    Ich würde eine in das Spiel integrierte Hilfe über Tooltips oder sowas bevorzugen, denke ich.

  4. #4
    Ich würde dir auch noch empfehlen, ein paar Grafiken und Animationen einzubauen. Nur Text ist dann doch ein wenig fad.

  5. #5
    Zitat Zitat
    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...




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

    Geändert von Manuel (24.09.2007 um 02:01 Uhr)

  6. #6
    @ Jensma: Animationen beherrsche ich in Delphi leider nicht.

    @ Manuel:

    Zitat Zitat
    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.

    Zitat Zitat
    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.

    Zitat Zitat
    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.

    Zitat Zitat
    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.



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


    Zitat Zitat
    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 ) ein paar Fragen aufkommen können, etwa:
    Na gut, weiß bietet sich als Farbe sicher gut an (auf blau).

    Zitat Zitat
    • 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ß.

    Zitat Zitat
    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.^^

    Zitat Zitat
    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.

    Zitat Zitat
    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.
    Zitat Zitat
    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.

  7. #7
    Zitat Zitat von P-Games Beitrag anzeigen
    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.

  8. #8
    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.

  9. #9
    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.

  10. #10
    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

  11. #11
    Zitat Zitat von P-Games Beitrag anzeigen
    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).

    Code:
    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.

    Code:
    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.

  12. #12
    Wegen der Schrift: jeder PC hat Arial.

  13. #13
    Vielleicht jeder Windows PC Aber gut, nachdem dein Programm eh nur für Windows ist, sollte das kein Hindernis darstellen.

  14. #14
    Auch wenn's komisch aussieht: Es heisst "FUSSBALL" und nicht FUßBALL.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •