Oplossing puzzel met Turbo Pascal

Status
Niet open voor verdere reacties.

gabriellak

Nieuwe gebruiker
Lid geworden
17 dec 2007
Berichten
4
Hallo iedereen, ik ben Gabriella en nieuw op dit forum.

Ik ben al een tijd aan het puzzelen met het rekenspelletje di gi-di sc (engelse uitvoering heet ma th-spi n). Ik heb nog maar 2 oplossingen kunnen vinden!
- Zie bijlage voor een plaatje van het spel -

Hiervoor heb ik een programa-code gekregen waarmee alle oplossingen gegeven worden, geschreven in Turbo Pascal. Alleen kan ik het niet testen, want ik ben een leek op dat gebied!

Is er iemand die mij hiermee wil helpen door het programma te draaien en mij de oplossingen wil doorgeven?

Laat me maar weten of je dit zou kunnen en willen doen voor me en dan stuur ik je de code door.

Alvast hartstikke bedankt!

Gabriella
 

Bijlagen

  • puzzel.jpg
    puzzel.jpg
    49,6 KB · Weergaven: 47
Mag het ook in VBA?

Wat staat er op alle rollen? Cijfers en bewerkingen?
 
Mag het ook in VBA?

Wat staat er op alle rollen? Cijfers en bewerkingen?

Hoi Guus,

Op de rollen zijn zo ingedeeld;

Rood: 1, 3, 2, 4
Roze: +, *, /, -
Geel: 1, 4, 2, 3
Wit: =, =, =, =
Groen: 1, 3, 4, 2
Blauw: +, *, -, /
Oranje: 1, 4, 3, 2

Alle rollen kunnen van plaats verwisseld worden, ze zijn magnetisch namelijk.
Er zijn daardoor dus heel veel verschillende combinaties mogelijk!

Je hoeft niet al die moeite te doen om een nieuw programma te schrijven hoor!
Ik heb al programma maar kan die niet testen omdat ik geen Turbo Pascal heb.
 
Aantal oplossingen: 298
Code:
Option Compare Database
Option Explicit

Public aintReel1(3) As Integer
Public aintReel2(3) As Integer
Public aintReel3(3) As Integer
Public aintReel4(3) As Integer
Public astrMath1(3) As String * 1
Public astrMath2(3) As String * 1
'
'Rood: 1, 3, 2, 4
'Roze: +, *, /, -
'Geel: 1, 4, 2, 3
'Wit: =, =, =, =
'Groen: 1, 3, 4, 2
'Blauw: +, *, -, /
'Oranje: 1, 4, 3, 2
'

Public Sub SolveIt()

    Dim int1    As Integer
    Dim int2    As Integer
    Dim int3    As Integer
    Dim int4    As Integer
    Dim int5    As Integer
    Dim int6    As Integer
    Dim strCalc As String
    Dim intTel  As Integer
    
    VullenArrays

    'Leegmaken tabel
    CurrentDb.Execute "Delete from Solutions"

    intTel = 0
    For int1 = 0 To 3
        For int2 = 0 To 3
            For int3 = 0 To 3
                For int4 = 0 To 3
                    For int5 = 0 To 3
                        For int6 = 0 To 3
                            strCalc = aintReel1(int1) & astrMath1(int2) & aintReel2(int3) & " = " & aintReel3(int4) & astrMath2(int5) & aintReel4(int6)
                            If Eval(strCalc) Then
                                intTel = intTel + 1
                                Debug.Print intTel & ":" & strCalc
                                CurrentDb.Execute "Insert into Solutions (Solution) Values ('" & strCalc & "')"
                            End If
                        Next int6
                    Next int5
                Next int4
            Next int3
        Next int2
    Next int1

    DoCmd.OpenTable "Solutions"

End Sub

Private Sub VullenArrays()

    aintReel1(0) = 1
    aintReel1(1) = 2
    aintReel1(2) = 3
    aintReel1(3) = 4
    aintReel2(0) = 1
    aintReel2(1) = 2
    aintReel2(2) = 3
    aintReel2(3) = 4
    aintReel3(0) = 1
    aintReel3(1) = 2
    aintReel3(2) = 3
    aintReel3(3) = 4
    aintReel4(0) = 1
    aintReel4(1) = 2
    aintReel4(2) = 3
    aintReel4(3) = 4
    astrMath1(0) = "+"
    astrMath1(1) = "*"
    astrMath1(2) = "-"
    astrMath1(3) = "/"
    astrMath2(0) = "+"
    astrMath2(1) = "*"
    astrMath2(2) = "-"
    astrMath2(3) = "/"

End Sub
Of als je access hebt zie de gkoppelde database
 

Bijlagen

Laatst bewerkt:
Dit is misschien wat ver gezocht... maar is
12 / 4 = + 3
ook een geldige oplossing??? :o

En MOETEN alle schijven tegelijk gebruikt worden?

Ik ben zelf namelijk een beetje 'puzzel-freak' en wil al wel eens over zo'n details vallen :D
 
@ JHX: Nee, 12/4=+3 is geen geldige oplossing en Ja, alle schijven moeten gebruikt worden.

@ Guus: Jee, wat knap man dat je dat zo hebt geprogrammeerd! In eerste instantie schrok ik dat je zei dat er 298 oplossingen waren!
Maar nadat ik je prog testte zag ik het.

Op de rol moeten de sommen op alle 4 de rijen juist zijn, dan pas heb je een juiste oplossing. Bovendien is het van belang dat ik van alle oplossingen ook de bijbehorende kleurvolgorde van de schijven dan ook weet.

Om het nog moeilijker te maken: het is dus ook mogelijk de witte rol (het '=' teken) op de voorlaatste plek te zetten. Dus op 1 rij zie je dan bijv. 2 / 1 + 2 = 4 en danmoeten de andere 3 rijen ook nog kloppen.

Nogmaals, ik vind het superknap van je dat je zo snel zover bent gekomen! :thumb:

Ik hoop niet dat ik je het te moeilijk heb gemaakt nu.

Groetjes
Gabriella
 
Zo... 't is uiteindelijk toch nog gelukt!
In de bijlage vind je een gezipte access-database. Die bevat een module met een 'sub' die een hoop HTML-code genereert, en weergeeft in het direct-venster. Als je die code copieert en plakt in een HTML-pagina, dan krijg je alle mogelijke oplossingen te zien.
Klik HIER voor een voorbeeld.

Waarom zo'n ingewikkelde constructie? Wel... In ACCESS weet ik niet goed hoe ik de gevonden oplossingen zou moeten weergeven. In WORD zou ik gemakkelijk een tabel in een document kunnen weergeven, maar word-VBA kent de functie "EVAL()" blijkbaar niet, en die heb ik echt wel nodig. In IE tenslotte zou het weer wel rechtstreeks kunnen, maar die reclameert dat het script te lang duurt... (en eigenlijk heeft hij wel een punt, want het duurt vrij lang voor de meer dan 20 miljoen combinaties gekontroleert zijn)

Ik denk er net aan dat ik misschien wel een word-document kan openen vanuit de access-module... Ga ik me straks eens mee bezig houden!
 

Bijlagen

Laatst bewerkt:
Deze versie zoekt alle mogelijke oplossingen in ACCESS-VBA en geeft die dan weer in een WORD-document.
Pikant detail: hij doet er in totaal wel bijna 20 minuten over op mijn 2GHz-toestel :shocked:
 

Bijlagen

Hoi JHx, sorry voor late reactie maar mijn hond is onlangs overleden en heb er veel verdriet van.
Ik wil je nog hartelijk bedanken voor je moeite! Je programma werkt perfect. De kleuren groen en geel waren verwisseld maar dat maakt niet zoveel uit.
Nogmaals bedankt voor je moeite, super! :thumb:
Gabriella
 
Ik vind het heel jammer om te horen van je hond... ben zelf ook een grote dieren-liefhebber!
En wat dat progje betreft... het was een waar genot dat in mekaar te steken! ECHT het soort van progjes waar ik van hou... omdat ik ook een puzzelaar ben he ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan