AGB  ·  Datenschutz  ·  Impressum  







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

Vier gewinnt

Ein Thema von VerdammtVerzweifelt · begonnen am 19. Jan 2010 · letzter Beitrag vom 23. Feb 2010
Thema geschlossen
Seite 1 von 4  1 23     Letzte »    
VerdammtVerzweifelt

Registriert seit: 19. Jan 2010
14 Beiträge
 
#1

Vier gewinnt

  Alt 19. Jan 2010, 13:23
Hallo ihr Computerfanatiker!

Wir (Sarah und Julia) müssen im Rahmen unseres Informatikunterrichts mit Hilfe des Delphi-Programms (Delphi5) ein Spiel programmieren. Ausgewählt haben wir "Vier gewinnt". Wir beide haben leider absolut keine Ahnung von Programmiersprache, StringGrid und Co. und werden wohl nie ganz hinter den Sinn der Informatik steigen. Deshalb hoffen wir auf eure Hilfe!
Folgendes Problem:

Mittlerweile haben wir (zugegebenermaßen nicht ganz ohne die Hilfe unseres Informatiklehrers!) es geschafft, die Zellen in die wir klicken mit einem farbigen Kreis zu füllen. Doch wie ist es möglich das 2 Spieler immer abwechselnd an der Reihe sind. Bitte antwortet im Quelltext, da es uns nicht gelingt Anweisungen in "unserer" Sprache in Programiersprache zu übersetzen!

Wir hoffen auf eure Hilfe und Antwort!

Mit freundlichen Grüßen
Sarah und Julia
H I L F E !
 
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Vier gewinnt

  Alt 19. Jan 2010, 13:27
Einfach merken, wer als letztes geklickt hat. Wenn das Spieler eins war, ist jetzt Spieler zwei dran und der Kreis muss blau sein. War es Spieler zwei, ist jetzt Spieler eins dran und der Kreis muss rot sein.
Michael
Ein Teil meines Codes würde euch verunsichern.
 
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Vier gewinnt

  Alt 19. Jan 2010, 13:29
Hallo,

falsche Rubrik.
es müßte ja heißen "Macht bitte meine Hausaufgaben".

Zeigt mal per Code, was ihr schon habt.

Das 2Merken", wer dran ist,
könnte man per Boolean

bPlayer1 = True -> Spieler 1 ist dran
bPlayer1 = False -> Spieler 2 ist dran

in FormCreate kommt

bPlayer1:= True; Nach jedem Spielzug (gültiger Klick auf Grid)

bPlayer1:= not bPlayer1; Das schaltet immer zwischen True und False um.

Man könnte auch schreiben

Delphi-Quellcode:
if bPlayer1 then
begin
  bPlayer1:= False;
end
else
begin
  bPlayer1:= True;
end;


Zitat:
Sinn der Informatik
Im Handy / MP3-Player / TV ist auch ein bisschen Informatik drin ..


Heiko
Heiko
 
VerdammtVerzweifelt

Registriert seit: 19. Jan 2010
14 Beiträge
 
#4

Re: Vier gewinnt

  Alt 19. Jan 2010, 13:37
Das ist unser bisheriger Quelltext .. wie gesagt noch ziemlich am Anfang:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Grids;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
{==============================================================================}
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  // wenn in der gerade gezeichneten Zelle eine 1 steht, dann zeichne dort einen grünen Kreis
  if StringGrid1.Cells[ACol,ARow] = '1then
    begin
      StringGrid1.Canvas.Brush.Color := clGreen;
      StringGrid1.Canvas.Ellipse (Rect);
    end;
  // wenn in der gerade gezeichneten Zelle eine 2 steht, dann zeichne dort einen blauen Kreis
  if StringGrid1.Cells[ACol,ARow] = '2then
    begin
      StringGrid1.Canvas.Brush.Color := clBlue;
      StringGrid1.Canvas.Ellipse (Rect);
    end;

end;
{==============================================================================}
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  //wenn spieler 1 dannn schreibe 1
  // StringGrid1.Cells[ACol,ARow] := '1';
  // sonst schreibe 2

KEINE AHNUNG WIE DIE SPIELER ABWECHSELND ZUM ZUG KOMMEN!
HELFT UNS BITTE.
end;
{==============================================================================}
end.
[edit=Luckie]Delphi-Tags gesetzt. Beim nächsten mal bitte selber machen. Mfg, Luckie[/edit]
H I L F E !
 
Benutzerbild von Corpsman
Corpsman

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

Re: Vier gewinnt

  Alt 19. Jan 2010, 13:44
In Der Hoffnung, dass ihr das nicht einfach nur Kopiert, möchte ich euch mal auf dieses 4 Gewinnt ( Inclusive Source / KI ) Hinweisen.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
 
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Vier gewinnt

  Alt 19. Jan 2010, 13:52
Hallo,

Delphi-Quellcode:
TForm1 ..
  private
    { Private-Deklarationen }
    bPlayer1: Boolean;
  public
  end;
Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  if StringGrid1.Cells[ACol,ARow] <> 'then
  begin

   // es steht was drin
   // also lassen wir von dieser Zelle mal die Finder
   // und verschwinden

    Exit;
  end;

  if bPlayer1 then
  begin
   // es ist Spieler 1
    StringGrid1.Cells[ACol,ARow] := '1';
  end
  else
  begin
   // es ist Spieler 2
    StringGrid1.Cells[ACol,ARow] := '2 ';
  end;

 // Spieler umschalten
  if bPlayer1 then
  begin
    bPlayer1:= False;
  end
  else
  begin
    bPlayer1:= True;
  end;
end;
Und jetzt nur noch das "wer hat gewonnen" schreiben ...

Vergesst mein FormCeate nicht
- freie Form-Fläche suchen
- Doppelklick



Heiko
Heiko
 
VerdammtVerzweifelt

Registriert seit: 19. Jan 2010
14 Beiträge
 
#7

Re: Vier gewinnt

  Alt 19. Jan 2010, 13:54
Vielen Dank, Corpsman! Wir werden mal schauen was wir damit bewerkstelligen können.
Natürlich auch vielen Dank an die anderen netten "Informatiker", die bereit waren uns zu helfen!
H I L F E !
 
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Vier gewinnt

  Alt 19. Jan 2010, 13:56
Delphi-Quellcode:
// Spieler umschalten
  if bPlayer1 then
  begin
    bPlayer1:= False;
  end
  else
  begin
    bPlayer1:= True;
  end;
end;
Umständlicher geht es nicht oder?
Wie wäre es mit:
bPlayer1 := not bPlayer1;
Michael
Ein Teil meines Codes würde euch verunsichern.
 
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Vier gewinnt

  Alt 19. Jan 2010, 13:59
LUCKIE !!!

Es sind Rookies !!!

Wie du in #3 siehst, hatte ich das dort auch so schon gehabt,
aber es dann vereinfacht


Zitat:
Natürlich auch vielen Dank an die anderen netten "Informatiker", die bereit waren uns zu helfen! Wink
Das war leider keine Hilfe,
wenn ihr den Code nicht versteht.


Heiko
Heiko
 
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Vier gewinnt

  Alt 19. Jan 2010, 17:19
[OT]
@corpsman

leider komm ich an den Link nicht heran
mein Admin schickt mir so etwas:

Access Denied (content_filter_denied)


Your request was denied because of its content categorization: "Games"

Gibt es da vielleicht auch "saubere" Quellen?
ja ich will einfach abschreiben vor allem die KI, dann muß ich nicht mehr selber denken!!

[/OT]
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
 
Thema geschlossen
Seite 1 von 4  1 23     Letzte »    


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 19:03 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