AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Der "Color-Code"

Ein Thema von Dragon93 · begonnen am 3. Feb 2011 · letzter Beitrag vom 6. Feb 2011
Antwort Antwort
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#1

AW: Der "Color-Code"

  Alt 6. Feb 2011, 01:28
ich hänge einfach noch mal das funktionirende Spiel an
Damit hast du mich zum Lachen gebracht.
Ab Level2 geht es nämlich bei mir nicht mehr wie es sollte.

Dieser 'Lacher' & der die Tatsache, dass ich bisher noch nie ein "Spiel" entwickelt habe waren der Grund genug weshalb ich mich ebend hingesetzt habe um es zu programmieren.

Es war von der Logik doch etwas umfangreicher als zu erst angenommen.
(Ca. 1:00 Std)


Tipp für das nächste Mal:
Konkretisier deine Frage so gut es geht WAS genau WO (sofern bekannt) nicht geht.

Niemand hat i.d.R. Lust dir dein Programm zu schreiben

Liebe Grüße,

Mike


P.S.:
Solltest du Probleme haben es zu öffnen mit Delphi6 (Da mit Delphi2007 geschrieben),
dann öffne dir die Unit2.pas im Editor und kopiere den Quellcode manuell.
Angehängte Dateien
Dateityp: zip SpielMitFarben.zip (238,1 KB, 8x aufgerufen)
Delphi-Nachwuchs

Geändert von Mike_ ( 6. Feb 2011 um 04:15 Uhr)
  Mit Zitat antworten Zitat
Dragon93

Registriert seit: 18. Jan 2011
Ort: Nähe Verden/Aller
19 Beiträge
 
Delphi 6 Personal
 
#2

AW: Der "Color-Code"

  Alt 6. Feb 2011, 10:36
Hey Mike,
danke das du dir die Zeit genommen hast
Dein Programm ist nicht schlecht
Es stellt sich mir nun die frage, wenn ich immer nur auf die neue farbe drücken muss wo bleibt dann die herausforderung?
Die schwirigkeit die ich mir vorgestellt habe war wie gesagt das man sich die vorherigen farben merken musste.

Beispiel:
Generierte farben in den ersten 3 fällen: {Generiert mit der variable X}
-Blau
-Grün
-Gelb

{Die kombination der farben ist bei mir die Variable "Abfolge"
Die "Abfolge" muss erreicht werden um ein level auf zusteigen.
Neben bei wird eine Zähler Variable "Zahlenlaenge" hoch gezählt für die Level bedingungen.}



Erster zug:
Das Programm sagt das der Spieler blau drücken soll
- Spieler drückt Blau um in level 2 zu gelangen

{Die Eingabe ist der "Abgleich" wie der name schon sagt gleicht die variable
ab und wenn Abfolge und Abgleich gleich sind steigt der Spieler ein Level auf.
Neben bei wird hier auch eine Zähler Variable "Knopfdrucks" mit gezählt für die bedingung des verliehrens.}

Zweiter Zug:
Das Programm sagt das der Spieler Grün drücken soll
- Spieler muss Blau + Grün drücken um in Level 3 zu gelangen

Dritter Zug:
Das Programm sagt das der Spieler Gelb drücken soll
- Spieler muss Blau + Grün + Gelb drücken um in Level 4 zu gelangen



das ist die schwirigkeit die sich mir gegenüber stellt das die kombination eingeben muss und bei einer fehl eingabe das spiel neugestartet wird.
ich hoffe anhand meines beispieles wird das sichtbar ich brauche nur eine abbruch bedingung, imoment sieht die so aus
If(Abgleich <> Abfolge) and (Zahlenlaenge = Knopfdrucks) then
aber da bekomme ich immer einen fehler, das Programm/Spiel was auch immer ist ja 2 beiträger vorher wenn jemand mal darauf gucken mag und vielleicht eine idee hat wäre das sehr schön weil ein Programm/Spiel das nicht sagt wenn man falsch liegt ist doch doof oder?

und um Mikes tipp gleich direkt mal an zu wenden Das Dick makierte 5 Zeilen weiter oben ist die abbruch bedingung die mir exteme kopfschmerzen bereitet da bräuchte ich hilfe
Daniel

Geändert von Dragon93 ( 6. Feb 2011 um 10:43 Uhr)
  Mit Zitat antworten Zitat
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Der "Color-Code"

  Alt 6. Feb 2011, 12:59
Hey Mike,
danke das du dir die Zeit genommen hast
Dein Programm ist nicht schlecht
Es stellt sich mir nun die frage, wenn ich immer nur auf die neue farbe drücken muss wo bleibt dann die herausforderung?
Die schwirigkeit die ich mir vorgestellt habe war wie gesagt das man sich die vorherigen farben merken musste.

Beispiel:
Generierte farben in den ersten 3 fällen: {Generiert mit der variable X}
-Blau
-Grün
-Gelb

{Die kombination der farben ist bei mir die Variable "Abfolge"
Die "Abfolge" muss erreicht werden um ein level auf zusteigen.
Neben bei wird eine Zähler Variable "Zahlenlaenge" hoch gezählt für die Level bedingungen.}



Erster zug:
Das Programm sagt das der Spieler blau drücken soll
- Spieler drückt Blau um in level 2 zu gelangen

{Die Eingabe ist der "Abgleich" wie der name schon sagt gleicht die variable
ab und wenn Abfolge und Abgleich gleich sind steigt der Spieler ein Level auf.
Neben bei wird hier auch eine Zähler Variable "Knopfdrucks" mit gezählt für die bedingung des verliehrens.}

Zweiter Zug:
Das Programm sagt das der Spieler Grün drücken soll
- Spieler muss Blau + Grün drücken um in Level 3 zu gelangen

Dritter Zug:
Das Programm sagt das der Spieler Gelb drücken soll
- Spieler muss Blau + Grün + Gelb drücken um in Level 4 zu gelangen



das ist die schwirigkeit die sich mir gegenüber stellt das die kombination eingeben muss und bei einer fehl eingabe das spiel neugestartet wird.
ich hoffe anhand meines beispieles wird das sichtbar ich brauche nur eine abbruch bedingung, imoment sieht die so aus
If(Abgleich <> Abfolge) and (Zahlenlaenge = Knopfdrucks) then
aber da bekomme ich immer einen fehler, das Programm/Spiel was auch immer ist ja 2 beiträger vorher wenn jemand mal darauf gucken mag und vielleicht eine idee hat wäre das sehr schön weil ein Programm/Spiel das nicht sagt wenn man falsch liegt ist doch doof oder?

und um Mikes tipp gleich direkt mal an zu wenden Das Dick makierte 5 Zeilen weiter oben ist die abbruch bedingung die mir exteme kopfschmerzen bereitet da bräuchte ich hilfe
Sehr gut veranschaulicht

Ist simpel in mein gepostetest Programm integrierbar.

Du machst dir eine weitere Hilfsvariable herein vom Typ TColor welche du anstelle der Form2.Color mit dem aktuellen Farblevel (Bei dir hieß es Abfolge) füllst.

Dann haust du noch eine if Abfrage in die entsprechende Prozedur/en, dass wenn Farblevel...

[Gedankenblitz]

Ich erinnere mich gerad welches Spiel du meinst und programmier das mal so um dass es auch "hübsch" aussieht.
Delphi-Nachwuchs

Geändert von Mike_ ( 6. Feb 2011 um 13:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Der "Color-Code"

  Alt 6. Feb 2011, 14:23
ich hänge einfach noch mal das funktionirende Spiel an
Damit hast du mich zum Lachen gebracht.
Ab Level2 geht es nämlich bei mir nicht mehr wie es sollte.

Dieser 'Lacher' & der die Tatsache, dass ich bisher noch nie ein "Spiel" entwickelt habe waren der Grund genug weshalb ich mich ebend hingesetzt habe um es zu programmieren.
Wieso machst du es dann??
Und wieso hat er dich damit zum lachen gebracht? Jeder fängt mal klein an, und lieber sowas programmieren als irgendein komplexes Programm, was heute die Neulinge andauernd herstellen wollen, wieso auch immer.

Und deine 1h arbeit hat wohl auch net ausgereicht, denn bis Level 10 (hab ich getestet) geht bei dir außer Rot und Blau auch nichts....
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Der "Color-Code"

  Alt 6. Feb 2011, 14:39
Scheint sich hier wohl um ein Nachbau von "Senso" zu handeln.

Werden vermutlich die älteren hier noch kennen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Der "Color-Code"

  Alt 6. Feb 2011, 15:54
Lieber lbccaleb,

als ich heute früh auf den Post geantwortet hatte, kam es mir ebenfalls überheblich vor.

So wurde er aber nicht verfasst wie du dir die Zitate herausgepickt hast, siehe :
Zitat:
Es war von der Logik doch etwas umfangreicher als zu erst angenommen.
Meine Motivation weshalb ich es mache schrieb ich bereits oben, du musst nur hochscrollen

Abgesehen davon habe ich selbst 3 neue Dinge aus diesem Projekt gelernt und möchte das Wissen, was mir Delphi Praxis bringt auch in einer Form zurückgeben.

Denn so funktioniert eine gute Community.

Und deine 1h arbeit hat wohl auch net ausgereicht, denn bis Level 10 (hab ich getestet) geht bei dir außer Rot und Blau auch nichts....
Bei mir kamen bis level 6 alle 4 Farben.
Das liegt einfach an Randomize.
(Siehe dieser Thread, hast du bestimmt gelesen.)

Kann dir auch passieren, dass eine Farbe bis Level 20 kommt.

Ich schließe mit dem tollen Zitat von mkinzler ab

Zitat:
Geistig schwache Zeitgenossen mit fragilem Pseudo-Halbwissen wie ich, denken und entscheiden nun mal so.
(so etwas zu sagen)

Sollte ich dich bei einem Delphi-Praxis Treffen mal treffen, lachen wir bei einem Bier hierüber

Scheint sich hier wohl um ein Nachbau von "Senso" zu handeln.

Werden vermutlich die älteren hier noch kennen
Genau, so hieß das

Spiel ist im Anhang.

Herzliche Grüße,

Mike
Angehängte Grafiken
Dateityp: jpg Main.jpg (8,3 KB, 11x aufgerufen)
Angehängte Dateien
Dateityp: zip SpielMitFarben.zip (241,2 KB, 4x aufgerufen)
Delphi-Nachwuchs

Geändert von Mike_ ( 6. Feb 2011 um 16:04 Uhr)
  Mit Zitat antworten Zitat
Dragon93

Registriert seit: 18. Jan 2011
Ort: Nähe Verden/Aller
19 Beiträge
 
Delphi 6 Personal
 
#7

AW: Der "Color-Code"

  Alt 6. Feb 2011, 18:53
hey mike,

danke für dein programm im anhang,
leider funktioniert es bei mir nicht richtig und es gibt einen deplhi praxis treffen? o.O wann isn das?
Daniel
  Mit Zitat antworten Zitat
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#8

AW: Der "Color-Code"

  Alt 6. Feb 2011, 19:17
hey mike,

danke für dein programm im anhang,
leider funktioniert es bei mir nicht richtig und es gibt einen deplhi praxis treffen? o.O wann isn das?
Was funktioniert nicht, wo kommt ein Fehler (Gibt es überhaupt einen) ?

Ich gehe eher davon aus dass du es nicht "einfach importieren" kannst, du du eine andere Delphi Version verwendest.

Daher ist folgendes angesagt :

1.) Neue VCL Form erstellen in deiner IDE. [Neues Projekt]
2.) Ziehe dir 1 Button und 5 Panels auf die Form.
3.) Füge auf Panel1 folgendes hinzu
1 x TLabel -> Name: Label_Level
1 x TLabel -> Name: Label1
4.) Benenne die Panels2-5 um in:
Panel2 -> Panel_Col0
Panel3 -> Panel_Col1
Panel4 -> Panel_Col2
Panel5 -> Panel_Col3

Dann muss deine Struktur so aussehen wie im Anhang.

5.) Kopiere dir den relevanten Teil aus dem Quellcode:
(Bei dir wird die Form ggf. anders heißen, daher nicht einfach Str+c und Str+v einfügen und dann sagen "geht nicht".

Kopiere sinnvoll !


Delphi-Quellcode:
////
//Created on 06.02.11 by Mike_
////

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;


type
  TForm2 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Label_Level: TLabel;
    Panel1: TPanel;
    Panel_Col0: TPanel;
    Panel_Col1: TPanel;
    Panel_Col2: TPanel;
    Panel_Col3: TPanel;
    procedure FormCreate(Sender: TObject);
    procedure mixColors();
    procedure NextColor();
    procedure NextLevel ();
    procedure FirstStart();
    procedure ShowColorSqeuence();
    procedure CheckAnswer(ColorOfButton: TColor);
    procedure Button1Click(Sender: TObject);
    procedure Panel2Clck(Sender: TObject);
    procedure Panel_Col2Click(Sender: TObject);
    procedure Panel_Col1Click(Sender: TObject);
    procedure Panel_Col3Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations}

  end;

var
  Form2: TForm2;
  FarbListe: TStringList;
  Level, DerzeitigesFarbLevel: Integer;

implementation

{$R *.dfm}

procedure Delay(time:Integer);
var
  i: integer;
begin
  for i := 0 to time do
  begin
    Sleep(10);
    Application.ProcessMessages;
  end;
end;

procedure TForm2.ShowColorSqeuence();
var i : Integer;
begin
  for I := 1 to FarbListe.Count - 1 do begin
    case ColorToRGB(StringToColor(FarbListe.ValueFromIndex[I])) of
      32768: RandSeed:=0; // RGB of clGreen
      255: RandSeed:=1; // RGB of clRed
      65535: RandSeed:=2; // RGB of clYellow
      16711680: RandSeed:=3; // RGB of clBlue
    end;

    TPanel(FindComponent('Panel_Col'+IntToStr(RandSeed))).Color := StringToColor(FarbListe.ValueFromIndex[I]);
    Delay(75);
    TPanel(FindComponent('Panel_Col'+IntToStr(RandSeed))).Color := clBtnFace;
    Delay(25);
  end;
end;

procedure TForm2.mixColors();
begin
  Randomize;
  RandSeed := Random(4);
  //ShowMessage(IntToStr(RandSeed));

  case RandSeed of
    0: FarbListe.Add('cclGreen');
    1: FarbListe.Add('cclRed');
    2: FarbListe.Add('cclYellow');
    3: FarbListe.Add('cclBlue');
  end;
end;

//Next Level
procedure TForm2.NextLevel ();
begin
  mixColors();
  Level := Level +1;
  Label_Level.Caption := IntToStr(Level);
  DerzeitigesFarbLevel := 1;
  ShowColorSqeuence();
end;

//Next Color in same level
procedure TForm2.NextColor();
begin
  DerzeitigesFarbLevel := DerzeitigesFarbLevel + 1;
end;

procedure TForm2.CheckAnswer(ColorOfButton: TColor);
begin
  //RIGHT ANSWER
  if FarbListe.ValueFromIndex[DerzeitigesFarbLevel] = ColorToString(ColorOfButton) then begin
    if DerzeitigesFarbLevel = Level then begin
      ShowMessage('Das war korrekt, herzlich willkommen im Level '+IntToStr(Level+1)+' !');
      NextLevel();
    end
    else
    //RIGHT BUT NO NEW LEVEL
    begin
      //ShowMessage('Ihre Antwort ist korrekt!');
      NextColor();
    end;
  end
  //FALSE ANSWER
  else begin
    ShowMessage('Dies war leider verkehrt, das Spiel wird neu gestartet !');
    Button1.Click;
  end;
end;


//First start of game
procedure TForm2.FirstStart();
begin

  FarbListe.Clear;

  (*
  Da TStirngList bei 0 anfängt zu zählen
  wir aber der Übersicht halber bei Level 1 anfangen
  *)

  FarbListe.Insert(0, '');

  mixColors();
  DerzeitigesFarbLevel := 1;
  Level := 1;
  Label_Level.Caption := IntToStr(Level);

  ShowColorSqeuence();
end;


procedure TForm2.Button1Click(Sender: TObject);
begin
  FirstStart();
end;

procedure TForm2.Panel2Clck(Sender: TObject);
begin
  CheckAnswer(clGreen);
end;

procedure TForm2.Panel_Col1Click(Sender: TObject);
begin
  CheckAnswer(clRed);
end;

procedure TForm2.Panel_Col2Click(Sender: TObject);
begin
  CheckAnswer(clYellow);
end;

procedure TForm2.Panel_Col3Click(Sender: TObject);
begin
  CheckAnswer(clBlue);
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  FarbListe := TStringList.Create;
  Label_Level.Caption := '';
  //ShowMessage(IntToStr(ColorToRGB(clGreen))+' '+IntToStr(ColorToRGB(clRed))+' '+IntToStr(ColorToRGB(clYellow))+' '+IntToStr(ColorToRGB(clBlue)));
end;

end.
Edit://
Im Anhang habe ich dir noch mal den Sourcecode + funktionierende .exe hingepackt.
Angehängte Grafiken
Dateityp: jpg Unbenannt.jpg (25,7 KB, 9x aufgerufen)
Angehängte Dateien
Dateityp: zip SpielMitFarben.zip (241,2 KB, 6x aufgerufen)
Delphi-Nachwuchs

Geändert von Mike_ ( 6. Feb 2011 um 19:22 Uhr)
  Mit Zitat antworten Zitat
Dragon93

Registriert seit: 18. Jan 2011
Ort: Nähe Verden/Aller
19 Beiträge
 
Delphi 6 Personal
 
#9

AW: Der "Color-Code"

  Alt 6. Feb 2011, 19:41
danke das du es mir noch einmal erklärt hast
aber das meinte ich garnicht nun gut ich wollte damit meinen das deine exe in deinem anhang bei mir nicht funktionierte
wenn ich auf new game gedrückt habe leuchtete keine farbe auf hatte ich mal das glück das ich aus zufall den richtigen button gefunden habe sah ich immernoch nicht die farbe
Daniel
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz