Autor Beitrag
nullplan
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 15.06.05 07:38 
hallo :D ich sitz hier grad im infokabinett und wir müssen ein spiel programmieren, das problem is nur, dass ich leider keine ahnung habe :?: :?
anbei mein begonnener quelltext.. :wink: es wär super lieb wenn mir jemand helfen könnte, denn da gibt es ja eine note drauf :oops:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
unit Unit1;

interface

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

type
TZahlen = array [1..35] of integer;
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
Image10: TImage;
Button3: TButton;
Memo1: TMemo;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Image6: TImage;
Image7: TImage;
Image8: TImage;
Image9: TImage;
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);

private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;
worte : TZahlen;
implementation

{$R *.DFM}

procedure TForm1.Button3Click(Sender: TObject);
var z{zeile}, l, i : integer;
wort, wort2, buchstabe, tip: string;
begin
Z:= random (memo1.lines.count);
wort := memo1.lines[z];

l := length(wort);
buchstabe := wort[1];
wort2 := uppercase(wort);
tip := edit2.text;


wort2 := '';
For i := 1 to length(wort) do
if wort[i] = tip then buchstabe
else image1.visible := false;
end;
Wort2 := wort2 + '*'

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;

end.


--> 8)
die konkrete frage wäre jetzt noch, wie man prüft ob der buchstabe im wort ist oder nicht?!? wie muss man das einstellen, dass dann(bei falschem buchstaben) ein "sensenmann" aufgebaut wird?
vielen vielen dank :!: :lol:

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 15.06.05 07:49 
:welcome: im DF.

Die Überprüfung ist relativ einfach:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
if Pos(AnsiUpperCase(Buchstabe), AnsiUpperCase(Wort)) > 0 then begin
  // Buchstabe ist drin
end
else begin
  // Kein Treffer
end;

Das AnsiUpperCase sorgt dafür, dass es egal ist, ob Groß oder Klein geschrieben wurde.
Buchstabe und Wort sind Variablen, die durch dein Variablen ersetzen musst (Tip und Wort2 glaube ich).

Für die Grafik bin ich nicht der richtige. :wink:
nullplan Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 15.06.05 16:38 
danke :idea:

ich hoffe mal ich krieg das hin :D
DarkHunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 477

Win XP
D3 Prof, D2005 PE
BeitragVerfasst: Mi 15.06.05 19:46 
Wäre nett wenn du den Quellcode so kommentieren würdest das wir erkennen können wofür die einelnen Buttons/images... da sind
so ist das nämlich nicht deutlich

EDIT: ich habe aus Langweile gerade ein kleines galgenraten ferig gemacht wenn du willst schicke ich es dir ;)
nullplan Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 20.06.05 21:49 
hey *lol* wenn du das machen würdest wärs ja echt genial ;)
:oops:

öhm ja...un zum kommentar...also hab ein bild un darauf sind kleine bildchen, die das große bild...einen sensenmann verdecken...so un immer wenn was falsch ist, soll ein bildchen weggehen damit man den sensenmann mehr sieht. das sind die images...joah un fehler bedeutet, dass der buchstabe nicht drin is....so und meine wörter hab ich in ner memobox, die unvisible is...da stehen die ganzen wörter, die es zu errraten gibt drin! un per zufallszahlen wird dann ein wort rausgesucht. so und dann nehm ich statt _ _ _ _ einfach ***** weil das einfacher is...weil da keine leerzeichen dazwischen müssn...

hmm...das wars glaub so im groben ;)

würd mich auf n bissl mehr hilfe hier noch freuen...weil so richtig seh ich hier nicht mehr durch :wink: :?:

also danke im vorraus....
DarkHunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 477

Win XP
D3 Prof, D2005 PE
BeitragVerfasst: So 26.06.05 22:04 
sorry das das so lange gedauert hat hte die letzten tage wenig zeit

hier mal die 2 wesentlichen passagen:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
procedure tform1.check(buchstabe:char);  //Funktion zum checken ob der buchstabe im gesuchten wort ist
var
    x,y,i:integer; // variablen für die suche der position(x und y für die position im wort, i fü eine schleife)
    trim: string;  // variable zur verarbeitung des reststrings
    found:boolean; // zum checken ob das der buchstabe bereits geraten wurde
begin
    found:=false; 
    if length(tryed_lts) > 0 then for i := 0 to length(tryed_lts) do if tryed_lts[i] = buchstabe then found := true; // überprüfung ob der buchstabe gefunden wurde
    tryed_lts := tryed_lts + buchstabe; //try_lts ist ein string in dem alle bereits geratenen buchstaben vorkommen
    if not found then
    begin
        tryed_letters.Caption := tryed_letters.caption + buchstabe+','; // tryed_letters ist ein panel welches die geratenen buchstaben zeigt
        y := 0; 
        x := pos(buchstabe,lowercase(look_word)); // ist buchstabe(globale variable) in gesuchten word(look_word, globale variable) vorhanden?
        if x > 0 then //--> ja
        begin
            trim := look_word; 
            repeat // --> alle vorkommnisse werden geucht und in der anzeige markiert
                x := pos(buchstabe,lowercase(trim));
                y := y +x;
                try_word[y*2-1] := buchstabe;
                search.Caption := try_word;
                delete(trim,1,pos(buchstabe,lowercase(trim)));
            until x = 0;
            if lowercase(look_word) = stringreplace(try_word,' ','',[rfReplaceAll, rfIgnoreCase]) then //--> Check ob das komplette wort geraten wurde
            begin
                 showmessage('Correct!');
                 test.Enabled := false;
            end;
        end
        else
        begin //--> wenn der bcuhstabe nicht vorkommt
            inc(step); //step ist eine globale variable die die fehlvrsuche zählt
            draw_mann(step); //siehe weiter unten
            if step >= 11 then
            begin
                test.Enabled := false; // button zum absenden
                letter.Enabled := false; //letter ist das eingabe feld für den buchstaben
                search.Caption := look_word; //search ist ein panel zum ausgeben des programms
            end;
        end;
    end;
    letter.Text := '';
    letter.SetFocus;
end;


ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
procedure tform1.draw_mann(step:integer); //procedure zum zeichnen des männchens in ein 80*120 großen image
begin
    if step = 1 then guy.Canvas.Arc(0,80,80,160,80,120,0,120)
    else if step = 2 then
    begin
        guy.Canvas.MoveTo(40,80);
        guy.canvas.lineto(40,10);
    end
    else if step = 3 then
    begin
        guy.Canvas.MoveTo(40,10);
        guy.canvas.lineto(70,10);
    end
    else if step = 4 then
    begin
        guy.Canvas.MoveTo(40,20);
        guy.canvas.lineto(50,10);
    end
    else if step = 5 then
    begin
        guy.Canvas.MoveTo(70,10);
        guy.canvas.lineto(70,25);
    end
    else if step = 6 then
    begin
        guy.Canvas.Ellipse(63,25,78,40);
    end
    else if step = 7 then
    begin
        guy.Canvas.MoveTo(70,40);
        guy.canvas.lineto(70,60);
    end
    else if step = 8 then
    begin
        guy.Canvas.MoveTo(70,60);
        guy.canvas.lineto(65,70);
    end
    else if step = 9 then
    begin
        guy.Canvas.MoveTo(70,60);
        guy.canvas.lineto(75,70);
    end
    else if step = 10 then
    begin
        guy.Canvas.MoveTo(70,45);
        guy.canvas.lineto(62,60);
    end
    else if step = 11 then
    begin
        guy.Canvas.MoveTo(70,45);
        guy.canvas.lineto(77,60);
    end
end;


so ich denke das sollte dir ein wenig helfen
Einloggen, um Attachments anzusehen!
nullplan Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 27.06.05 21:15 
hui danke...ich bau en teil ma mit bei mir im prog ein un dann kann ich dir ja auch mal meine lösung posten ;)
DarkHunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 477

Win XP
D3 Prof, D2005 PE
BeitragVerfasst: Mo 27.06.05 21:27 
jap

ich hoffe du hast nicht zu große porobleme mit den name der kompos ich schreibe gerade an ein hangman class
;)

vielleicht mach ich die ja opensource