Autor Beitrag
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Di 27.11.12 20:54 
Hallo,
mir war's wieder so, etwas zu produzieren. Herausgekommen ist eine Eigenbau des Vexed-Puzzles. :)
Vexed-Puzzle (engl. be vexed = ärgerlich sein) ist ein Schiebespiel auf einem rechteckigen Spielfeld, hier auf einem 10 x 8 Spielfeld.
Ziel des Spiels ist es, alle farbigen, mit Buchstaben gekennzeichneten Objekte zu eliminieren, indem man zwei oder mehr Objekte gleicher Farbe zusammenbringt, so dass sie sich gegenseitig vernichten.

Die farbigen Felder werden durch Mausklick und -bewegung nach links oder rechts verschoben.
Nach unten fallen die Felder aufgrund der Schwerkraft selbstständig, wenn sich unter ihnen ein leeres Feld befindet.

Es wird eine Bestenliste geführt. Zu Beginn hat man 8 „Leben“. Setzt man eine Spielstufe zurück oder nutzt "Lösung zeigen" werden anteilig Leben gestrichen. Nach 10 gelösten Spielstufen gibt es ein weiteres Leben.
Insgesamt sind 280 Spielstufen enthalten, d.h. genügend Material, damit man stundenlang die Zeit "vergeuden" kann.

Viel Spaß beim Spielen
Mathematiker

Rev 1: Automatisches Starten der Lösungsanzeige entfernt.
Einloggen, um Attachments anzusehen!
_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein


Zuletzt bearbeitet von Mathematiker am Fr 30.11.12 14:52, insgesamt 1-mal bearbeitet
Anika
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30
Erhaltene Danke: 2

Windows 7
Delphi 7
BeitragVerfasst: Fr 30.11.12 14:18 
Ich habe jetzt viel gespielt und es ist richtig schwer. Die ersten Spielstufen sind leicht, aber dann muss man viel überlegen.
Eine Sache ist nicht schön. Führt das Programm die Lösung einer Aufgabe vor und schaffe ich es dann selbst, dann startet die Vorführung in der nächsten Stufe von selbst. Weil ich dann noch ein Leben verliere, will ich es aber nicht.
Kann man da etwas machen?
Trotzdem gefällt das Spiel mir.

Anika
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Fr 30.11.12 14:55 
Hallo Anika,
user profile iconAnika hat folgendes geschrieben Zum zitierten Posting springen:
Führt das Programm die Lösung einer Aufgabe vor und schaffe ich es dann selbst, dann startet die Vorführung in der nächsten Stufe von selbst.

Entschuldigung. :oops: Ich habe den Fehler entfernt.
Nach dem Klicken auf den Schalter "Lösung anzeigen" blieb der Button ausgewählt und wurde mit ENTER/RETURN auf die Meldung, dass eine Spielstufe geschafft wurde, aktiviert.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein

Für diesen Beitrag haben gedankt: Anika
Xearox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260
Erhaltene Danke: 3



BeitragVerfasst: Di 26.02.13 00:10 
Wäre schön, wenn du hier noch eine Dokumentation hinzufügen würdest.
Also dein Code ausdokumentieren.

Wie du hier in diesem Thread geschrieben hast : www.entwickler-ecke.....php?p=673841#673841 nehme ich mir Deinen Code als Beispiel zur Hand, allerdings sehr schwer den Code auseinander zu nehmen, der damit bisher noch nicht gearbeitet hat ;-)

Liebe Grüße


p.s. Ich erhalte bei deinem Sourcecode folgenden fehler, den ich mir nicht erklären kann. Nutze Delphi 2010.
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
[DCC Warnung] Uvexed.pas(132): W1050 WideChar in Set-Ausdrücken auf ByteChar verkürzt.  Ziehen Sie die Verwendung der Funktion 'CharInSet' aus der Unit 'SysUtils' in Betracht.
[DCC Warnung] Uvexed.pas(193): W1050 WideChar in Set-Ausdrücken auf ByteChar verkürzt.  Ziehen Sie die Verwendung der Funktion 'CharInSet' aus der Unit 'SysUtils' in Betracht.
[DCC Fehler] Uvexed.pas(193): E2064 Der linken Seite kann nichts zugewiesen werden
[DCC Fehler] Uvexed.pas(327): E2064 Der linken Seite kann nichts zugewiesen werden
[DCC Warnung] Uvexed.pas(385): W1050 WideChar in Set-Ausdrücken auf ByteChar verkürzt.  Ziehen Sie die Verwendung der Funktion 'CharInSet' aus der Unit 'SysUtils' in Betracht.
[DCC Warnung] Uvexed.pas(418): W1050 WideChar in Set-Ausdrücken auf ByteChar verkürzt.  Ziehen Sie die Verwendung der Funktion 'CharInSet' aus der Unit 'SysUtils' in Betracht.
[DCC Fehler] Uvexed.pas(519): E2064 Der linken Seite kann nichts zugewiesen werden
[DCC Warnung] Uvexed.pas(577): W1050 WideChar in Set-Ausdrücken auf ByteChar verkürzt.  Ziehen Sie die Verwendung der Funktion 'CharInSet' aus der Unit 'SysUtils' in Betracht.
[DCC Fataler Fehler] pvexed.dpr(5): F2063 Verwendete Unit 'Uvexed.pas' kann nicht compiliert werden


ausblenden Quelltext
1:
2:
Undeklarierter Bezeichner 'canvas' in Zeile 124 (124:27)
Undeklarierter Bezeichner 'draw' in Zeile 124 (124:27)


ausblenden Delphi-Quelltext
1:
2:
3:
4:
begin
  bitmap.canvas.draw(xoffset+(i-1)*64+1,yoffset+(j-1)*64+1,image1.picture.bitmap);
  brush.style:=bsclear
end;


Das sieht ganz danach aus, als wenn mein Delphi kein Canvas kann :/


Nachtrag:
Ich habe nun die constante verschieben in eine variable umgeschrieben und dem Wert bei formcreate die den Wert false gegeben.
canvas und draw wird weiterhin als undeklariert markiert, allerdings kann der code compiliert werden, wieso auch immer.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
//const verschieben:boolean=false;
var  feld : array[0..11,0..9of char;
     loeschen : array[0..11,0..9of byte;
     schrittnummer,maxspiel,m,n,spielstufe : integer;
     loesung:string;
     lebenszahl:real;
     verschieben:boolean;
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Di 26.02.13 07:23 
Hallo Xearox,
user profile iconXearox hat folgendes geschrieben Zum zitierten Posting springen:
Ich erhalte bei deinem Sourcecode folgenden fehler, den ich mir nicht erklären kann. Nutze Delphi 2010. ...

Oh, oh. Das sieht nicht gut aus.
Offensichtlich sind Delphi 5 und 2010 nicht so richtig "lieb" zu einander. Die Anzahl der Fehler und Warnungen ist beängstigend.

Auf die Schnelle sehe ich folgende Probleme:
1. Ich nutze "with bitmap.canvas do". Bitte entfernen und vor jedem Zeichenbefehl bitmap.canvas. ergänzen.
2. In den Optionen habe ich "zuweisbare typisierte Konstanten" aktiviert. Daher die Schwierigkeit mit den konstanten Größen.
3. Das Problem mit den Strings hat wohl mit den Delphi-Versionen zu tun.

Sorry. Tut mir leid, dass Du mit dem Text so viel Ärger hast.
Eigentlich ging es mir mit meinem Hinweis nur um die Verwendung eines bitmaps beim Zeichen in einer Paintbox.
Sollte es mehr Schwierigkeiten geben, dann lass es mich bitte wissen.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein