Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
qbprogger

Anmeldungsdatum: 13.05.2008 Beiträge: 49 Wohnort: Kirchlinteln
|
Verfasst am: 01.06.2008, 13:56 Titel: Auswahl Problem -Sudokufeld |
|
|
Hallo,
ich hab wieder Probleme mit dem Sudoku!!!
Denn jetzt muss man die Koordinaten per Tastatur eingeben
aber mit Maus oder den Pfeiltasten wäre es natürlich einfacher!
Maus hab ich schon probiert klappt nicht wirklich(da muss man dann ja alle 81 Feldkoordinaten hinterlegen) .
Pfeiltasten das wäre gut!!!
Wisst ihr da etwas??
Wenn ja dann Danke!! _________________ Proggen macht Spaß!!!
 |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 01.06.2008, 14:13 Titel: |
|
|
Hallo
Das mit den Pfeiltasten, wurde schon ca. 1 Million mal gefragt und beantwortet. Versuche es mal mit der Suchfunktion oder mit der Monster-FAQ auf www.qbasic.de:
http://www.antonis.de/faq/QBMonFAQ-Dateien/1198108394.html
Bei einer Maussteuerung brauchst du auch nicht alle 81 Feldkoordinaten hinterlegen, sonder nur die Eckkoordinaten des Spielfeldes von der x- und y-Mausposition abziehen und den Rest jeweils durch 9 Teilen. Schon weißt du, ob und wenn ja wo der Pfeil im Spielfeld ist. Speichern brauchst du dazu nur Eckkordinaten und Spielfeldbreite bzw. -höhe (wird ja quadratisch sein).
Gruß
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
b3ast
Anmeldungsdatum: 27.04.2008 Beiträge: 34
|
Verfasst am: 01.06.2008, 14:53 Titel: |
|
|
ich würde einfach einen kasten machen mit 9x9 feldern, mit einem etwas kleineren kasten navigierst du in deinen feldern (mit den cursortasten) und kannst mit + und - die zahlen verändern.
das spielfeld zeichnest du mit dem line befehl, genauso wie deinen auswahlkasten.
die variablen legst du dabei als variablenfeld mit dim(x,y) an.
beispiel für kastenzeichnung:
line (x,y)-(x,y),1,b
für die steuerung gehst du in eine do:loop schleife und lässt dort deinen kasten navigieren. |
|
Nach oben |
|
 |
qbprogger

Anmeldungsdatum: 13.05.2008 Beiträge: 49 Wohnort: Kirchlinteln
|
Verfasst am: 02.06.2008, 14:14 Titel: |
|
|
Hi,
eure Ideen helfen mir nicht viel weiter,
denn irgendweshalb SIND DIE FELDER NICHT GLEICHGROSS!
Keine Ahnung weshalb...
Ach ja und die Sache mit der Maussteuerung versteh ich auch
nicht!!  _________________ Proggen macht Spaß!!!

Zuletzt bearbeitet von qbprogger am 03.06.2008, 18:16, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 03.06.2008, 00:36 Titel: |
|
|
qbprogger hat Folgendes geschrieben: | denn irgendweshalb SIND DIE FELDER NICHT GLEICHGROSS!
Keine Ahnung weshalb... |
Ich auch nicht ... ein Stückchen Quellcode könnte da vielleicht weiterhelfen.
Ich persönlich bevorzuge ja
Code: | LINE (startX, startY) - STEP (laenge, breite) |
_________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 03.06.2008, 23:07 Titel: |
|
|
Aus langeweile hab ich mal schnell ein Sudoko-Demoprogramm geschrieben, dass aber rein den Aufbau der Spiels (Spielfeld + Zahlen) und die Mausaktionen (Zahl erhöhen/erniedrigen/zurücksetzen) beherrscht. Es besitzt noch keine Spiellogik, aber vielleicht dient es dir ja mal als Hilfe für den Aufbau deiner Programmoberfläche. Download: http://swurzinger.sw.funpic.de/files/sudoku.zip
Zum Lösen deiner Sudokus kannst du z.B. Dreael's Sudoku-Knacker als Anregung benutzen (siehe: http://forum.qbasic.at/viewtopic.php?t=2141).
Fallst du etwas Ahnung von Visual Basic hast, kann ich dir den frei verfügbaren Quellcode zum Buch "Programming Sudoku" von Apress empfehlen. Dort findest du ein komplettes Sudoku-Programm, geschrieben in Visual Basic, gratis zum Download: http://www.apress.com/book/downloadfile/2685
LG, St_W _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
qbprogger

Anmeldungsdatum: 13.05.2008 Beiträge: 49 Wohnort: Kirchlinteln
|
Verfasst am: 04.06.2008, 16:03 Titel: |
|
|
Hey ,
super Nemored und St_W ihr hab mir echt geholfen.
St_W aus der Sache mit Visual Basic wird nichts ,
ich versteh die Befehle einfach nicht.
Die Lösung hatte ich schon so programmiert.
Ach ja soll ich das Programm mal posten wenns fertig ist? _________________ Proggen macht Spaß!!!
 |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 04.06.2008, 19:52 Titel: |
|
|
Zitat: | Ach ja soll ich das Programm mal posten wenns fertig ist? |
Ja, bitte, bin schon gespannt wie es aussieht und fuktioniert
LG St_W _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
qbprogger

Anmeldungsdatum: 13.05.2008 Beiträge: 49 Wohnort: Kirchlinteln
|
Verfasst am: 06.06.2008, 17:09 Titel: |
|
|
Oh,
es gibt da noch ein Problem!!
St_W wie gebe ich an welche Zahlen fest und welche veränderbar sind?
Bei mir sind nähmlich immer alle fest.
 _________________ Proggen macht Spaß!!!
 |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 06.06.2008, 22:48 Titel: |
|
|
In meinem Beispiel-Programm (siehe mein voriger Beitrag) habe ich dieses Problem durch Setzten eines bestimmten Bits in der Zahl gelöst:
Da nur Zahlen von 1 bis 9 vorkommen können und ich 0 für den Status "unbelegt" verwendet habe können nur folgene Zahlen vorkommen:
Code: | Dezimal Binär | mit gesetztem 5.Bit: Binär
0 00000000 00100000
1 00000001 00100001
2 00000010 00100010
3 00000011 00100011
... ... ...
8 00001000 00101000
9 00001001 00101001
|
Für Zahlen, die nicht verändert werden können setzte ich einfach das 5.Bit (2^5 = 32) mit dem Befehl
. Mit dem Befehl
Code: | Zahl = Zahl AND (NOT 32) | kann ich das 5.Bit wieder löschen, und somit den Wert der Zahl herausfinden, den ich dann im Sudokufeld ausgebe. Wenn der Benutzer dann auf eine Zahl klickt, um diese zu verändern, prüfe ich zuvor mit
Code: | IF NOT (Zahl AND 32) THEN
'...Befehle zum auswerten des Mausklicks...
END IF | ob die Zahl veränderbar ist. Die Befehle in der obigen IF-Abfrage werden nur ausgeführt, wenn das 5.Bit NICHT gesetzt ist (entspricht in meiner Verwendung: Wert ist veränderbar)
_______________________________________________________________
Falls dir die obige Lösung zu kompliziert / aufwendig ist, kannst du alternativ auch ein zweites Array erstellen, in welchem du die Veränderungsberechtigung abspeicherst (z.B 0 für nicht veränderbar, <>0 für veränderbar)
LG, St_W _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
qbprogger

Anmeldungsdatum: 13.05.2008 Beiträge: 49 Wohnort: Kirchlinteln
|
Verfasst am: 07.06.2008, 10:16 Titel: |
|
|
Danke es läuft klassse!!!
Sag mal wie hast du diese Zeichen für das Wort SUDOKU in die
Print Anweisung gesteckt???
Ich hab nähmlich ausversehen eins gelöscht... _________________ Proggen macht Spaß!!!
 |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 07.06.2008, 12:45 Titel: |
|
|
Unter QuickBasic 4.5 findest du eine Übersicht aller ASCII-Codes in der Hilfe unter "ASCII-Zeichencodes" in der Thementabelle. Dort kannst du das Zeichen
- entweder Kopieren (STRG+EINFG) und im Quellcode einfügen (Umschalt+EINFG)
- oder dir den Zeichencode merken (in diesem Fall 219) und mit gedrückter ALT-Taste die Code-Nr. am Nummernblock eingeben. Nach Auslassen der ALT-Taste erscheint dann das Zeichen.
LG, St_W _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
qbprogger

Anmeldungsdatum: 13.05.2008 Beiträge: 49 Wohnort: Kirchlinteln
|
Verfasst am: 13.06.2008, 15:32 Titel: |
|
|
Ich wollt gerad das Sudoku-Spiel in eine Exe Datei umwandeln,
aber QB sagt das deine TYPE Anweisung falsch verschachtelt ist!!
Weist du wie das kommt???
Schon gemerkt!!! _________________ Proggen macht Spaß!!!
 |
|
Nach oben |
|
 |
qbprogger

Anmeldungsdatum: 13.05.2008 Beiträge: 49 Wohnort: Kirchlinteln
|
Verfasst am: 13.06.2008, 15:47 Titel: |
|
|
Hey !!
Wieso kann ich nicht COMMAND$ abfragen und danach
etwas TYPE´N??? _________________ Proggen macht Spaß!!!
 |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 13.06.2008, 20:13 Titel: |
|
|
qbprogger hat Folgendes geschrieben: | Wieso kann ich nicht COMMAND$ abfragen und danach etwas TYPE´N??? |
Ganz einfach: TYPE ist eine deklarative Anweisung ähnlich DIM, OPTION BASE, DEFxxx und DECLARE SUB, die der Compiler bzw. Interpreter immer am Anfang erwartet, während die Auswertung von COMMAND$ bereits zum ausführenden Code (=hier beginnt eigentlich das eigentliche Programm abzulaufen) darstellt. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
qbprogger

Anmeldungsdatum: 13.05.2008 Beiträge: 49 Wohnort: Kirchlinteln
|
Verfasst am: 13.06.2008, 21:09 Titel: |
|
|
Gut setzte ich das einfach nach TYPE.
Zitat: | die der Compiler bzw. Interpreter immer am Anfang erwartet |
Aber im Interpreter funst das.
Trotzdem Danke! _________________ Proggen macht Spaß!!!
 |
|
Nach oben |
|
 |
qbprogger

Anmeldungsdatum: 13.05.2008 Beiträge: 49 Wohnort: Kirchlinteln
|
Verfasst am: 28.06.2008, 19:32 Titel: Endlich ist es fertig!!! |
|
|
Das Programm läuft echt super!!!!
Ich hab es hier zum Download publiziert. Seht es euch an. _________________ Proggen macht Spaß!!!
 |
|
Nach oben |
|
 |
|