AGB  ·  Datenschutz  ·  Impressum  







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

Solitär - Schule!

Ein Thema von Phallic · begonnen am 13. Mär 2005 · letzter Beitrag vom 16. Mär 2005
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von Luckie
Luckie

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

Re: Solitär - Schule!

  Alt 14. Mär 2005, 04:33
Mal eine Zwischenfrage an den Threadersteller Phallic: Soll das ganze mit dem .NET Framework gelöst werden oder warum steht das hier in der .NET Sparte?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Phallic

Registriert seit: 13. Mär 2005
Ort: Frankfurt am Main
11 Beiträge
 
#22

Re: Solitär - Schule!

  Alt 14. Mär 2005, 15:52
Ich habe halt Delphi 8 also die .NET version...die durften wir uns von der Schule nehmen..
Selbsterkennung führt zu Verbesserung!
  Mit Zitat antworten Zitat
Phallic

Registriert seit: 13. Mär 2005
Ort: Frankfurt am Main
11 Beiträge
 
#23

Re: Solitär - Schule!

  Alt 14. Mär 2005, 18:37
Also...ich hab mich wieder umentschieden...auf 3 Blöcke, da ich angst hatte mit zwei blöcken aufeinander würde es vielleicht fehler geben...also:

Delphi-Quellcode:
var
  Form1: TForm1;
  z,zr,a,x1,x2,y1,y2,s : integer;

.
.
.
procedure TForm1.Button1Click(Sender: TObject);
  begin
    spielfeld.Canvas.Brush.Color:= clRed;
    zr:=10;
    a:=30;
    For z:=0 to 1 do
      begin
        For s:=0 to 2 do
          begin
            x1:=zr+3*(a+zr)+(a+zr)*s;
            y1:=zr+(a+zr)*z;
            spielfeld.Canvas.Ellipse(x1,y1,x1+15,y1+15);
          end;
      end;
    For z:=0 to 2 do
      begin
        For s:=0 to 6 do
          begin
            x1:=zr+(a+zr)+(a+zr)*s;
            y1:=9*zr+(a+zr)*z;
            spielfeld.Canvas.Ellipse(x1,y1,x1+15,y1+15);
          end;
      end;
    For z:=0 to 1 do
      begin
        For s:=0 to 2 do
          begin
            x1:=zr+3*(a+zr)+(a+zr)*s;
            y1:=21*zr+(a+zr)*z;
            spielfeld.Canvas.Ellipse(x1,y1,x1+15,y1+15);
          end;
      end;
  end;
Danke atreju2oo0 für deinen Quellcode...Leider kann ich mit ihm nicht viel anfangen, besser gesagt, gar nichts, denn das alles, was da drinnen steht, hab ich kaum im Unterricht besprochen.

ich habe immer noch nicht den passenden Befehl gefunden, um eine Bestimmte Koordinate auszufüllen, und ich habe das Problem, dass ich nicht weiß, wie ich die Koordinate herausfinde...Vielleicht könntet ihr mir da hlefen?

Danke!

--Phallic
Selbsterkennung führt zu Verbesserung!
  Mit Zitat antworten Zitat
noch_ein_hannes

Registriert seit: 18. Sep 2003
130 Beiträge
 
#24

Re: Solitär - Schule!

  Alt 14. Mär 2005, 18:55
Du musst doch in Deinem mittleren "Block" nur s und z vergleichen ....
... den Rest solltest Du jetzt aber selbst erledigen
- everything is possible -
  Mit Zitat antworten Zitat
Phallic

Registriert seit: 13. Mär 2005
Ort: Frankfurt am Main
11 Beiträge
 
#25

Re: Solitär - Schule!

  Alt 14. Mär 2005, 21:02
Ich kenne halt den Befehl nicht...um einen kreis ausmalen zu könne...und da dieses Delphi auf Englisch ist, hilft die Hilfe auch nicht weiter...

Ich habe die Prozedur OnMouseDown genommen...weiß ujetzt allerdings nicht weiter..:/
Selbsterkennung führt zu Verbesserung!
  Mit Zitat antworten Zitat
Benutzerbild von Boombuler
Boombuler

Registriert seit: 14. Mär 2003
Ort: Osnabrück
244 Beiträge
 
Delphi 2009 Professional
 
#26

Re: Solitär - Schule!

  Alt 15. Mär 2005, 08:42
Hi,

wenns nich umbedingt Kreise sein müssen kannst du dir auch mal das Stringgrid bzw das Drawgrid ansehen damit sollte es relativ einfach sein die kästchen zu füllen... Allerdings halte ich die Einteilung in 3 Blöcke für nicht so sinnvoll! Ein Array wäre da schon angebrachter!

ps Kurzer ablauf tipp:

1. Realisieren welcher zug gemacht werden soll!
2. Prüfen ob dies ein gültiger Zug ist (Innerhalb des Feldes und freies feld sowie Reichweite)
3. Zug umsetzen (Werte im Array ändern)
4. Feld neu zeichnen.

eigentlich relativ einfach dabei denke ich das punkt 2 mit abstand das schwerste sein sollte!

So nun viel Spass beim umsetzten und lass dir nich von jemanden einreden VB wäre besser!!

Greetz
Boombuler

Edit:
Ich habs mal gerade selber noch geschrieben! Quellcode is im anhang! allerdings dürfe meine art die Shapes zu positionieren dich nich weiter bringen (es sei denn du kennst dich mit Bitshifting aus)
Aber evtl findest du ja noch ein bis zwei brauchbare ideen darin!
Angehängte Dateien
Dateityp: zip solit_r_166.zip (2,6 KB, 10x aufgerufen)
"Look at you, Hacker. A pathetic creature of meat and bone, panting and sweating as you run through my corridors. How can you challenge a perfect, immortal machine?"
SwapIt Highscore:
  Mit Zitat antworten Zitat
noch_ein_hannes

Registriert seit: 18. Sep 2003
130 Beiträge
 
#27

Re: Solitär - Schule!

  Alt 15. Mär 2005, 10:18
Zitat:
Ich kenne halt den Befehl nicht...um einen kreis ausmalen zu können
Komisch, in Deinem bisherigen Script "malst" Du doch Kreise aus ...
Jetzt musst Du nur noch weisse statt rote erzeugen.
- everything is possible -
  Mit Zitat antworten Zitat
Phallic

Registriert seit: 13. Mär 2005
Ort: Frankfurt am Main
11 Beiträge
 
#28

Re: Solitär - Schule!

  Alt 15. Mär 2005, 19:27
Also wir hatten heute Informatik...und er hat uns gesagt wie man die Farbe ändern kann...also habe ich das mal probiert...

Schwachsinn!

Delphi-Quellcode:
procedure TForm1.spielfeldMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
    begin
      if spielfeld.Canvas.Pixels[x,y]= clRed then
        begin
          spielfeld.Canvas.Brush.Color:= clBlack;
          spielfeld.Canvas.FloodFill(x1,y1,clRed,FsSurface);
        end;
      if spielfeld.Canvas.Pixels[x,y]= clBlack then
        begin
          spielfeld.Canvas.Brush.Color:= clRed;
          spielfeld.Canvas.FloodFill(x1,y1,clBlack,FsSurface);
        end;
    end;
So hat er es an die tafel angeschrieben..

Hat irgendjemand einen Vorschlag?
Selbsterkennung führt zu Verbesserung!
  Mit Zitat antworten Zitat
FanFailure

Registriert seit: 13. Mär 2005
Ort: Lübeck
1 Beiträge
 
#29

Re: Solitär - Schule!

  Alt 16. Mär 2005, 03:15
Zitat von Phallic:
Schwachsinn!
Wieso Schwachsinn? Ändert sich die Farbe Deiner Kreise nicht?
(Evtl. solltest Du sie größer zeichnen, damit Du nicht daneben klickst. )

Zitat von Phallic:
Hat irgendjemand einen Vorschlag?
Auf jeden Fall:

1. Nimm ein 2-dim. Integer-Array in das Du den aktuellen zustand der Felder speicherst.
2. Überlege Dir, welche Felder Zustände Du brauchst und weise ihr eine Zahl zu.
z.B.: 0 = Feld mit Stein, 1 = Feld ohne Stein, 2 = verbotenes Feld (d.h. keine Steine erlaubt), 3 = Feld mit markiertem Stein
3. Fülle das Array mit den entspr. Zuständen
4. Zeichne das Spielfeld, indem zu zeilenweise durch das Array läufst und im Fall 0 ein Feld mit Stein, im Fall 1 ein Feld ohne Stein, im Fall 2 kein Feld und im Fall 3 ein Feld mit einem markierten Stein zeichnest.


Zum Zeichnen:

Mit Canvas.Ellipse kannst Du eine Ellipse bzw. (wenn Höhe = Breite) einen Kreis zeichnen.
Wichtig sind auch Canvas.Brush.Color zum Definieren der Hintergrundfarbe des Kreises bzw. Canvas.Pen.Color zum Definieren der Randfarbe des Kreises.

Was Du Dir jetzt überlegen musst:
Wie kann ich die Felder grafisch darstellen und wie kann ich später durch anklicken des Spielfeldes (an der Pos. x,y) die Zeilen- und Spaltennummer berechnen?
Dazu sollte Dir die Grafik im Anhang weiterhelfen.

Viel Erfolg!

FF
Miniaturansicht angehängter Grafiken
solitaire_spielfeldskizze_212.jpg  
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 01:53 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