Ich stecke echt fest...Minesweeper...CButton?...kein Licht am Horizont - HILFE
-
Erstmal: Danke, dass ihr interessiert seid zu helfen.
Zweitens: Sorry, ich weiß, dass das Grundlagen sind und es sicherlich in vielen E-Books steht.
Drittens: Bitte! gibt mir eine vollständige exakte Lösung.
Ich habe sicherlich in der nächsten Zeit noch genug zu tun und ich sitze jetzt schon 3 Tage fast vollständig vor C++ und komme deprimierender Weise kaum weiter.
Aufgabe: Minesweeper (fest 20x10Buttons ohne Schnickschnack)... selbst gewählt für die Berufsschule - leider nicht so einfach wie gedacht und es gilt als Klausur.
Gesucht: - nach click auf Button200 erstellen von (C)Buttons (0-199).
Sie müssen variablel angesprochen werden können, um im späteren Spiel zentral über einen Algorithmus angesprochen werden zu können (meine Idee).Gegeben: - noch 2 Tage (extra Urlaub genommen )
- Ein Programmierer(Schüler) der vorher nur mit Konsole programmiert hat und der Struct/Class zwar schon gehört hat, aber....HILFE!
Ich habe es irgendwie geschafft in Visual Studio das komplette Array für Minesweeper fertig zu bekommen , aber die spätere Bedienung durch den Anwender ist noch vollkommen unmöglich.
Es wäre echt nett, wenn ihr aktzeptiert, dass ich praktisch nur abschreiben kann und das auch nur, wenn ihr haargenau schreibt was ich machen muss.
Bitte seid gnädig, ich sitze teilweise 15h am Stück vorm PC ohne auch nur ein Stück weiter zu kommen. Ich verstehe, dass ihr mich zur Lösung führen wollt, aber dafür habe ich leider keine Zeit und nicht das nötige Grundwissen.ach ja: ich schreibe momentan alles in die form1.h - bitte nicht kommentieren.
-
form1 ? kann es sein das du eine CLI mit .Net erstellt hast ? dort gibt es keine MFC elemente,
wenn musst du schon eine MFC applikation erstellen und da ist das einfachste fuer dich eine dialog basierende anwendung//dazuedit
habe gerade probiert, und die buttons erstellen und platzieren dauerte ein paar sekunden
MinesDlg.h:
CButton m_Buttons[20][10];
MinesDlg.cpp:
int iId = 2001; int xPos = 10; int yPos = 10; for(int i = 0; i < 20; ++i) { for(int j = 0; j < 10; ++j) { m_Buttons[i][j].Create(_T(""), WS_CHILD|WS_VISIBLE, CRect(xPos, yPos, xPos+20, yPos+20), this, iId); ++iId; xPos += 20; } xPos = 10; yPos += 20; }
// edit 1
button nach klick verschwinden lassen:
MinesDlg.cpp:
ON_CONTROL_RANGE(BN_CLICKED, 2001, 2200, OnClickButton) /* - - */ void CMinesDlg::OnClickButton(unsigned int nid) { // zaehlen wieviele nachbarmienen es gibt und ein Static an dieser stelle erstellen mit dem rect von dem button this->GetDlgItem(nid)->ShowWindow(SW_HIDE); }
// edit 2
also mir gefaellts, hab auch schon eine funktion geschrieben die 20 mienen in beliebiger reihenfolge setzt, nu fehlt noch eine funktion die nachbarmienen zaehlt #gg
// edit 3
so, das ist nu auch fertig
buttons sind da, sobald einer angeklickt wird sieht man etweder nichts oder eine zahl wieviele nachbarmienen existieren, oder die miene selber {=
-
Mines
was noch fehlt:
- einstellungsmoeglichkeit der groesse und mienen anzahl
- automatisch nachbaren entfernen wenn dieser auch nichts enthaellt, also keine zahl und keine miene (ich glaube so was das beim original)// update
zum anfang muss "Start" angeklickt werden, spiel endet wenn alles geschafft ist oder eine miene angeklickt wurde
-
hab die exe wieder geupdated, nun werden alle nachbarelemente {nur in der himmelsrichtung vom geklickten aus} entfernt welche ebenfalls leer sind
probierts ruhig aus und postet hier euer bisher bestes ergebnis #gg
-
Hey das finde ich ja mal sehr geil
du könntest mir nicht zufällig mal deinen Quelltext geben damit ich mir das angucken kann?
-
hatte noch n kleinen fehler drinn, die elemente die zahlen enthalten wurden nicht aufgedeckt sobald man darauf stiess, habs gefixt, nu ist das verhalten wie man das von den Windows Minesweeper gewohnt ist, mit der ausnahme das nur in der himmelsrichtung vom objekt aus
//Edit
auch noch n kleinen fehler beim zaehlen der geoeffneten elemente behoben
-
So, das programm hat nu auch n "New" button, damit man nicht immer neu starten muss
im prinzip nu wie das original mit dem unterschied das es eine feste groesse und anzahl hat, und es nur in den himmelsrichtungen cleant beim klick auf n leeres element
-
neue version, {das ding macht fun #gg}
Mines
methode auswaehlbar sowie ein "aufgeben" ist hinzugekommen #gg
-
Da mach ich mal meine müden Augen zu und schon.. steht Weihnachten vor der Tür :xmas1:
Da ich von Visual nicht die Ahnung habe, muss ich erstmal schauen, was du oben genau meinst.
ABER AUF JEDEN FALL DANKE DANKE DANKE
-
wieso danke ? du hast doch den quellcode gar nicht ?!
-
...... wisst ihr was mein Problem ist?
ich kann die <afxwin.h> nicht einbinden UND ich bin im falschen Forum
bei <afxwin.h> sagt Visual, dass
Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
Darum hat auch nichts was ich probiert habe funktioniert.
Da ich also anscheinend im falschen Forum bin und gar nicht MFC sondern C++/CLI mit .NET programmiere (sorry den Unterschied kannte ich nicht) ...
kann ich da trotzdem etwas anwenden von dem was du programmiert hast?
-
Dieser Thread wurde von Moderator/in CStoll aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
japs, denk schon, dann die schnittstelle zum user ist ja nicht sehr breit gefaechert, das meiste laeuft ja intern ab
warum nicht MFC verwenden {o;
oder hast du VS Express ? {da ist kein MFC bei}mach doch einfach n neues projekt auf wo du direkt sagen kannst "MCF application" und das dialog basierend, die header und das alles werden dann automatisch includiert sein in der stdafx
-
L4ngweiler schrieb:
kann ich da trotzdem etwas anwenden von dem was du programmiert hast?
Ich würde mal vermuten, das grundsätzliche Vorgehen (200 Buttons als Array zusammenfassen und in einer Schleife auf den Bildschirm werfen) dürfte das selbe sein, nur die Details unterscheiden sich etwas.
-
ich habe eine Schüler Version von Visual Studio 2005 (Professionell-glaube ich)
@Moderator: danke fürs verschieben
-
@Mr Evil du könntest nicht zufällig mal deinen Quellcode hier reinstellen oder?
-
fuer .NET CLI kann ich dir aber nicht weiterhelfen - wie das da laeuft weiss ich nicht
hab dir uebrigens ne mail geschrieben
-
Ich habe ein MFC-Projekt gestartet, aber da sehe ich gar nicht mehr durch.
Also entweder erklärt mir jemand, wie ich mein Vorhaben in MFC umsetzen kann (also eigentlich alles) oder jemand erklärt mir die Variante bei CLI .Net.... sonst bin ich immer noch kein Stück weiter
-
hab nu auch eine dynamische version:
Mines Dynamic