Licht aus
Übersicht

$tankYBetreff: Licht aus |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab schnell ein "Lights out" Spiel programmiert.
Ziel ist es, alle Lichter aus zu machen. Jedoch gehen bei einem Klick die umliegenden Lichter ebenfalls aus bzw an. Code: [AUSKLAPPEN] Const feldGroesse = 64
Global breite = feldGroesse * 5 Global hoehe = feldGroesse * 5 + 40 Global textY = feldGroesse * 5 + 20 Dim spielFeld(4,4) Global zuege = 0 Global level = 0 SeedRnd MilliSecs() Graphics breite, hoehe, 0, 2 SetBuffer BackBuffer() Repeat ende = steuerung() spielZeichnen() Until ende = 1 Function steuerung() If KeyHit(1) Then Return 1 EndIf If istSieg() Then neuesSpiel() EndIf If MouseHit(1) Then x = MouseX() / feldGroesse y = MouseY() / feldGroesse If x >= 0 And x <= 4 And y >= 0 And y <= 4 Then zuege = zuege + 1 tauscheFeld(x,y) EndIf EndIf End Function Function spielZeichnen() Cls For y = 0 To 4 For x = 0 To 4 Oval x * feldGroesse, y * feldGroesse, feldGroesse, feldGroesse, spielFeld(x,y) Next Next Text 10, textY, "Benötigte Züge: " + zuege Flip End Function Function istSieg() an = 0 For y = 0 To 4 For x = 0 To 4 an = an + spielFeld(x,y) Next Next If an = 0 Then Return 1 Else Return 0 EndIf End Function Function neuesSpiel() Dim spielFeld(4,4) level = level + 1 zuege = 0 For i = 0 To level tauscheFeld(Rand(0,4),Rand(0,4)) Next End Function Function tauscheFeld(x,y) For y2 = -1 To 1 For x2 = -1 To 1 If (x2 And y2) = 0 And x+x2 >= 0 And x+x2 <= 4 And y+y2 >= 0 And y+y2 <= 4 Then spielFeld(x+x2,y+y2) = 1 - spielFeld(x+x2,y+y2) EndIf Next Next End Function Code ist ziemlich selbsterklärend, falls es Fragen gibt, einfach hier reinschreiben. Verbesserungsvorschläge sind natürlich auch erwünscht, schließlich soll man daraus lernen! |
||
![]() |
Foppele |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lustig. Erinnert mich ein wenig an Go. ![]() |
||
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ahh ich bekomms nicht hin ![]() mfg Dottakopf |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich bekomms schon hin. Hatte sowas auch mal im WiP vorgestellt.
http://thomasdecker1.googlepag...ndrehen.bb |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
$tankY |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab ich net gesehn ![]() ![]() |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich wusste noch nicht mal, dass es einen Namen hat.
Die Frage, dich mich bei dem Spiel am meisten beschäftigt, ist, ob sich jede Kombination von An/Aus-Feldern herstellen lässt, und wenn ja, wie. Konnt mir noch keiner beantworten. Vielleicht gibts auch einfach kein System. ![]() |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hübsches Spiel!
Ich finds aber noch zu leicht ^^ Bei meinem ersten Versuch hab 2 Züge gebraucht, beim 2. Versuch einen, beim 3. 6 und beim 4. 5... |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
$tankY |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja gut, ähm, die Funktion neuesSpiel:
Code: [AUSKLAPPEN] level = level + 1 For i = 0 To level tauscheFeld(Rand(0,4),Rand(0,4)) Next sollte eigentlich pro level immer einmal mehr "mischen" ![]() @SpionAtom: versteh deine Frage net |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Angenommen du hast ein leeres 2x2 Feld:
00 00 Dann frage ich mich, ob es möglich ist bei diesem Spiel alle Kombinationen zu schalten, also Code: [AUSKLAPPEN] 00 00 00 01 01 01 01 10 11 01, 10, 11, 00, 01, 10, 11, 00, ....., 11 Und das ganze halt auch für ein beliebiges N x N feld. |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
sollte theoretisch möglich sein, denke ich. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
BladeRunner hat Folgendes geschrieben: sollte theoretisch möglich sein, denke ich.
Für diese Antwort muss ich dir Dank sagen -.- ![]() Diese Lösungen habe ich bereits herausgefunden, vielleicht erkennt ja jemand ein Muster darin. Bisher glaub ich zu wissen, dass jedes Feld maximal einmal angeklickt werden muss. Und dass die Lösung symmetrisch ist. Und dass die Lösung eindeutig ist (wenn man von den gedrehten Lösungen absieht) |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
das einzige muster das ich erkenn ist das das4*4 feld rechtsradikal ist xD | ||
Gast |
![]() Antworten mit Zitat |
|
---|---|---|
Und wenn ich manche Felder Anklicke, hab gehen ca. 5 neue aus, lassen sich aber nicht schließen ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group