AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hänge bei units und umsetzung fest

Ein Thema von finalmaster2k · begonnen am 2. Feb 2008 · letzter Beitrag vom 5. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
finalmaster2k

Registriert seit: 11. Nov 2006
14 Beiträge
 
#1

Hänge bei units und umsetzung fest

  Alt 2. Feb 2008, 09:30
hey,

ich bin am das Spiel Böse eins am Programieren und habe einige Probleme

Das Spiel

Man würfelt so lange, bis man die Zahl eins erreicht hat oder vorher die summierten würfeln Zahlen gespeichert hat. Wer ne eins Würfelt bekommt seinen Aktuellen Spielstand gelöscht, sofern er sie nicht vorher gespeichert hat.

Problem

Ich versuche grade die Spiele zum laufen zu bringen, habe einen Unit würfel und einen unit gamer.
ICh weiß aber nicht wie ich den Spielstand auf dem Hauptfenster ändern soll ?.

Für euer hilfe wäre ich dankbar.
Angehängte Dateien
Dateityp: rar spielen_342.rar (175,9 KB, 7x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Hänge bei units und umsetzung fest

  Alt 2. Feb 2008, 11:32
Ui Ui du hast noch nicht viel programmiert, was.

Also
Delphi-Quellcode:
Procedure dice();
Begin
  randomize;
  Zahl := trunc(random(6)) + 1;
  Case Zahl Of
    1: fenster_frm.Image1.Picture.LoadFromFile('one.bmp');
    2: fenster_frm.Image1.Picture.LoadFromFile('two.bmp');
    3: fenster_frm.Image1.Picture.LoadFromFile('tree.bmp');
    4: fenster_frm.Image1.Picture.LoadFromFile('four.bmp');
    5: fenster_frm.Image1.Picture.LoadFromFile('five.bmp');
    6: fenster_frm.Image1.Picture.LoadFromFile('six.bmp');
  End;

End;
ist man ganz Böse

Du greifst auf eine Andere Unit und deren Objekte und überhaupt und böse zu.

Delphi-Quellcode:
function dice():integer;
Begin

  result := random(6) + 1;
End;
und in unit1

Delphi-Quellcode:
Procedure Tfenster_frm.dice_btnClick(Sender: TObject);
Begin

  Case dice Of
    1: Image1.Picture.LoadFromFile('one.bmp');
    2: Image1.Picture.LoadFromFile('two.bmp');
    3: Image1.Picture.LoadFromFile('tree.bmp');
    4: Image1.Picture.LoadFromFile('four.bmp');
    5: Image1.Picture.LoadFromFile('five.bmp');
    6: Image1.Picture.LoadFromFile('six.bmp');
  End;

End;
Wenn du das schon unbedingt so kompliziert machen willst.

Allerdings gäbe es da noch ettliche Verbesserungen ..

Mir scheint das sind 4 Spieler also baust du dir eine Spieler Klasse und machst 4 instanzen davon, KEINE globalen Variablen und dann eine Vernünftige Spielsteuerung von Unit1 aus.

Ich hoffe ich habe dir nicht all zu viele Fremdwörter um die Ohren gehaun.

[Edit]

Ach ja Randomize wird nur 1 mal aufgerufen, und nicht jedesmal in Dice.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
finalmaster2k

Registriert seit: 11. Nov 2006
14 Beiträge
 
#3

Re: Hänge bei units und umsetzung fest

  Alt 3. Feb 2008, 10:38
danke für den tipp mit dem würfeln ^^..

Habe jetzt mal weiter gebastelt und habe ein Problem

Jedesmal wenn ich würfle zählt es die summen nicht richtig zusammen !? ..
Laut bilder würfel zeigt es ne 3 und dann ne 5 an ! aber als SUmme kommt da zb 7 raus oder so ...



Anhang habe ich hochgeladen
Angehängte Dateien
Dateityp: rar spielen_164.rar (175,8 KB, 1x aufgerufen)
Dateityp: rar spielen_472.rar (176,6 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Hänge bei units und umsetzung fest

  Alt 3. Feb 2008, 11:14
Lol,

Du rufst dice auf, jeder Aufruf erzeugt einen neuen Zufallswert, willst du mit dem Wert noch mehr machen, so must du ihn zwischenspeichern.

In etwa so :
Delphi-Quellcode:
Procedure Tfenster_frm.dice_btnClick(Sender: TObject);
Var
  Dice_result: Integer;
Begin
  Dice_result := dice;
  Case Dice_result Of
    1: Image1.Picture.LoadFromFile('one.bmp');
    2: Image1.Picture.LoadFromFile('two.bmp');
    3: Image1.Picture.LoadFromFile('tree.bmp');
    4: Image1.Picture.LoadFromFile('four.bmp');
    5: Image1.Picture.LoadFromFile('five.bmp');
    6: Image1.Picture.LoadFromFile('six.bmp');
  End;
  If Dice_result = 1 Then Begin
    If spieler = 1 Then Begin
      punkte_1 := 0;
      summe_edt.Text := floattostr(punkte_1);
      spieler := 2;
      gamer_label.Caption := 'Spieler 2 ist am Zug'
    End
    Else Begin
      punkte_2 := 0;
      summe_edt.text := floattostr(punkte_2);
      spieler := 1;
      gamer_label.Caption := 'Spieler 1 ist am Zug'
    End;
  End
  Else Begin
    If spieler = 1 Then Begin
      punkte_1 := punkte_1 + Dice_result;
      summe_edt.text := floattostr(punkte_1);
    End
    Else Begin
      punkte_2 := punkte_2 + Dice_result;
      summe_edt.Text := floattostr(punkte_2);
    End;
  End;
End;
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
finalmaster2k

Registriert seit: 11. Nov 2006
14 Beiträge
 
#5

Re: Hänge bei units und umsetzung fest

  Alt 5. Feb 2008, 11:02
Dankee für die hilfe jetzt hänge ich an einem weiteren problem xD !!..


Ich habe versucht im Spiel einen Limit berreich zu erstellen das ich zb bei eingabe im edit fel 500 Punkte dann die MSG kommt das Spiele XYZ gewonnnen hat..

es kommt aber folgende fehler meldeung ..


[Warnung] ufenster.pas(126): Variable 'limit' ist möglicherweise nicht initialisiert worden
[Fehler] ufenster.pas(134): Deklaration erwartet, aber 'ELSE' gefunden
[Fehler] ufenster.pas(135): '.' erwartet, aber ';' gefunden
[Fataler Fehler] Badone.dpr(6): Verwendete Unit 'ufenster.pas' kann nicht compiliert werden
Angehängte Dateien
Dateityp: rar spielen_2_553.rar (177,8 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Hänge bei units und umsetzung fest

  Alt 5. Feb 2008, 11:35
Hallo,

was machst du denn da?
Delphi-Quellcode:
procedure Tfenster_frm.limit_radiobtnClick(Sender: TObject);
var
   limit : integer;
begin
  IF limit_radiobtn.Checked = true THEN
  limit := StrToInt(limit_edt.Text);{wenn der Code hier nicht ausgeführt wurde dann
  ist die Variable 'limit' möglicherweise nicht initialisiert worden}
 

        IF limit = punkte_2 THEN
        ShowMessage('Winner ist (game2_edt.Text)')
        ELSE

            IF limit = punkte_1 THEN
            ShowMessage('Winner ist (game1_edt.Text)')
            ELSE
            END;//<-- hier ist die Prozedur schon zu Ende
  Else.//was soll denn der Punkt hier bringen?
  END;
  limit := 0;


end.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
finalmaster2k

Registriert seit: 11. Nov 2006
14 Beiträge
 
#7

Re: Hänge bei units und umsetzung fest

  Alt 5. Feb 2008, 12:06
ich verusch halt die limit grenze zu bestimmen und , dejenige der sie erreicht hat, soll halt als gewinner angezeigt werden,


Delphi-Quellcode:


procedure Tfenster_frm.limit_radiobtnClick(Sender: TObject);
var
   limit : integer;
begin
  IF limit_radiobtn.Checked = true THEN
  limit := StrToInt(limit_edt.Text);{hier habe ich versucht halt im limit edt von str in integer umzuwandeln}

        IF limit = punkte_2 THEN
        ShowMessage('Winner ist (game2_edt.Text)')
        ELSE

            IF limit = punkte_1 THEN
            ShowMessage('Winner ist (game1_edt.Text)')
            ELSE
            END;//hier soll eigentlich nix passieren hmm mus noch mal ändern :(..
  Else//hier soll eigentlich nix passieren hmm mus noch mal ändern :(..
  END;
  limit := 0;


end.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Hänge bei units und umsetzung fest

  Alt 5. Feb 2008, 12:46
wenn Du den Abschnitt nur behandeln willst wenn Limit gewählt ist:
Delphi-Quellcode:
procedure Tfenster_frm.limit_radiobtnClick(Sender: TObject);
var
   limit : integer;
begin
  IF limit_radiobtn.Checked THEN
  begin
    limit := StrToInt(limit_edt.Text);
    IF limit = punkte_2 THEN
      ShowMessage('Winner ist (game2_edt.Text)')
    ELSE
    begin // hier muss kein begin+end, ist aber übersichtlicher nach dem else
      IF limit = punkte_1 THEN
        ShowMessage('Winner ist (game1_edt.Text)');
    end;
  END;
  limit := 0;
end;
Wenn der Abschnitt immer durchlaufen werden soll:
Delphi-Quellcode:
procedure Tfenster_frm.limit_radiobtnClick(Sender: TObject);
var
   limit : integer;
begin
  IF limit_radiobtn.Checked THEN
    limit := StrToInt(limit_edt.Text);
  else
    limit := 12345; // sonst inst unklar, welcher Wert in Limit steht!
   IF limit = punkte_2 THEN
...

stahli
  Mit Zitat antworten Zitat
finalmaster2k

Registriert seit: 11. Nov 2006
14 Beiträge
 
#9

Re: Hänge bei units und umsetzung fest

  Alt 5. Feb 2008, 15:46
ich habe jetzt 2 würfeln und will das bei einer 1 den spieler wechselt !? ..

habe das mit

Delphi-Quellcode:
If (Dice_result = 1 or Dice2_result = 1) Then Begin
    If spieler = 1 Then Begin
      punkte_1 := 0;
      summe_edt.Text := floattostr(punkte_1);
      spieler := 2;
      gamer_label.Caption := game2_edt.Text
    End
    Else Begin
      punkte_2 := 0;
      summe_edt.text := floattostr(punkte_2);
      spieler := 1;
      gamer_label.Caption := game1_edt.Text
    End;
  End
  Else Begin
    If spieler = 1 Then Begin
      punkte_1 := punkte_1 + Dice_result;
      summe_edt.text := floattostr(punkte_1);
    End
    Else Begin
      punkte_2 := punkte_2 + Dice_result;
      summe_edt.Text := floattostr(punkte_2);
    End;
  End;
klappt aber irgendwie nicht
Angehängte Dateien
Dateityp: rar spielen_2_160.rar (184,4 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#10

Re: Hänge bei units und umsetzung fest

  Alt 5. Feb 2008, 15:52
Was heißt "klappt nicht"? Ändere die erste Zeile erst einmal.If (Dice_result = 1) or (Dice2_result = 1) Then Begin
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz