Rätsel mit VBS lösen

Hi!
Ich habe hier ein Rätsel, dass ich gerne mit VBS lösen möchte:
(Bitte die Bindestriche nicht beachten! Es handelt sich dabei um ein Feld von 4x4 Kästchen)
_____________
!–a—b–c--d
!__!__!__!__!
!-e—f–16–h
!__!__!__!__!
!-i—j----k—l
!__!__!__!__!
!22—n---o–p
!__!__!__!__!

Es geht darum, das man verschiedene Zahlen zwischen 10 und 25 anstelle der Buchstaben setzen soll. 16 und 22 sind aber fix. Jetzt soll aber in jeder Richtung 70 herauskommen (a+b+c+d=70, b+f+j+n=70, a+f+k+p=70,…)
Könnte folgendes Skript, dass ich programmiert habe, funktionieren?

g=16
m=22

eins = a+b+c+d
zwei = e+f+g+h
drei = i+j+k+l
vier = m+n+o+p
fuenf = a+e+i+m
sechs = b+f+j+n
sieben = c+g+k+o
acht = d+h+l+p
neun = a+f+k+p
zehn = d+g+j+m

Randomize

a = Int((25 - 10+1)*Rnd + 10)
While a=g OR a=m
a = Int((25 - 10+1)*Rnd + 10)
Wend

b = Int((25 - 10+1)*Rnd + 10)
While b=a OR b=g OR b=m
b = Int((25 - 10+1)*Rnd + 10)
Wend

c = Int((25 - 10+1)*Rnd + 10)
While c=a OR c=b OR c=g OR c=m
c = Int((25 - 10+1)*Rnd + 10)
Wend

d = Int((25 - 10+1)*Rnd + 10)
While d=a OR d=b OR d=c OR d=g OR d=m
d = Int((25 - 10+1)*Rnd + 10)
Wend

e = Int((25 - 10+1)*Rnd + 10)
While e=a OR e=b OR e=c OR e=d OR e=g OR e=m
e = Int((25 - 10+1)*Rnd + 10)
Wend

f = Int((25 - 10+1)*Rnd + 10)
While f=a OR f=b OR f=c OR f=e OR e=g OR e=m
f = Int((25 - 10+1)*Rnd + 10)
Wend

h = Int((25 - 10+1)*Rnd + 10)
While h=a OR h=b OR h=c OR h=e OR h=f OR h=g OR h=m
h = Int((25 - 10+1)*Rnd + 10)
Wend

i = Int((25 - 10+1)*Rnd + 10)
While i=a OR i=b OR i=c OR i=e OR i=f OR i=h OR i=g OR i=m
i = Int((25 - 10+1)*Rnd + 10)
Wend

j = Int((25 - 10+1)*Rnd + 10)
While j=a OR j=b OR j=c OR j=e OR j=f OR j=h OR j=i OR j=g OR j=m
j = Int((25 - 10+1)*Rnd + 10)
Wend

k = Int((25 - 10+1)*Rnd + 10)
While k=a OR k=b OR k=c OR k=e OR k=f OR k=h OR k=i OR k=j OR k=g OR k=m
k = Int((25 - 10+1)*Rnd + 10)
Wend

l = Int((25 - 10+1)*Rnd + 10)
While l=a OR l=b OR l=c OR l=e OR l=f OR l=h OR l=i OR l=j OR l=k OR l=g OR l=m
l = Int((25 - 10+1)*Rnd + 10)
Wend

n = Int((25 - 10+1)*Rnd + 10)
While n=a OR n=b OR n=c OR n=e OR n=f OR n=h OR n=i OR n=j OR n=k OR n=l OR n=g OR n=m
n = Int((25 - 10+1)*Rnd + 10)
Wend

o = Int((25 - 10+1)*Rnd + 10)
While o=a OR o=b OR o=c OR o=e OR o=f OR o=h OR o=i OR o=j OR o=k OR o=l OR o=n OR o=g OR o=m
o = Int((25 - 10+1)*Rnd + 10)
Wend

p = Int((25 - 10+1)*Rnd + 10)
While p=a OR p=b OR p=c OR p=e OR p=f OR p=h OR p=i OR p=j OR p=k OR p=l OR p=n OR p=o OR p=g OR p=m
p = Int((25 - 10+1)*Rnd + 10)
Wend

While eins70 OR zwei70 OR drei70 OR vier70 OR fuenf70 OR sechs70 Or sieben70 OR acht70 OR neun70 OR zehn70

Randomize

a = Int((25 - 10+1)*Rnd + 10)
While a=g OR a=m
a = Int((25 - 10+1)*Rnd + 10)
Wend

b = Int((25 - 10+1)*Rnd + 10)
While b=a OR b=g OR b=m
b = Int((25 - 10+1)*Rnd + 10)
Wend

c = Int((25 - 10+1)*Rnd + 10)
While c=a OR c=b OR c=g OR c=m
c = Int((25 - 10+1)*Rnd + 10)
Wend

d = Int((25 - 10+1)*Rnd + 10)
While d=a OR d=b OR d=c OR d=g OR d=m
d = Int((25 - 10+1)*Rnd + 10)
Wend

e = Int((25 - 10+1)*Rnd + 10)
While e=a OR e=b OR e=c OR e=d OR e=g OR e=m
e = Int((25 - 10+1)*Rnd + 10)
Wend

f = Int((25 - 10+1)*Rnd + 10)
While f=a OR f=b OR f=c OR f=e OR e=g OR e=m
f = Int((25 - 10+1)*Rnd + 10)
Wend

h = Int((25 - 10+1)*Rnd + 10)
While h=a OR h=b OR h=c OR h=e OR h=f OR h=g OR h=m
h = Int((25 - 10+1)*Rnd + 10)
Wend

i = Int((25 - 10+1)*Rnd + 10)
While i=a OR i=b OR i=c OR i=e OR i=f OR i=h OR i=g OR i=m
i = Int((25 - 10+1)*Rnd + 10)
Wend

j = Int((25 - 10+1)*Rnd + 10)
While j=a OR j=b OR j=c OR j=e OR j=f OR j=h OR j=i OR j=g OR j=m
j = Int((25 - 10+1)*Rnd + 10)
Wend

k = Int((25 - 10+1)*Rnd + 10)
While k=a OR k=b OR k=c OR k=e OR k=f OR k=h OR k=i OR k=j OR k=g OR k=m
k = Int((25 - 10+1)*Rnd + 10)
Wend

l = Int((25 - 10+1)*Rnd + 10)
While l=a OR l=b OR l=c OR l=e OR l=f OR l=h OR l=i OR l=j OR l=k OR l=g OR l=m
l = Int((25 - 10+1)*Rnd + 10)
Wend

n = Int((25 - 10+1)*Rnd + 10)
While n=a OR n=b OR n=c OR n=e OR n=f OR n=h OR n=i OR n=j OR n=k OR n=l OR n=g OR n=m
n = Int((25 - 10+1)*Rnd + 10)
Wend

o = Int((25 - 10+1)*Rnd + 10)
While o=a OR o=b OR o=c OR o=e OR o=f OR o=h OR o=i OR o=j OR o=k OR o=l OR o=n OR o=g OR o=m
o = Int((25 - 10+1)*Rnd + 10)
Wend

p = Int((25 - 10+1)*Rnd + 10)
While p=a OR p=b OR p=c OR p=e OR p=f OR p=h OR p=i OR p=j OR p=k OR p=l OR p=n OR p=o OR p=g OR p=m
p = Int((25 - 10+1)*Rnd + 10)
Wend

Wend

MsgBox a
MsgBox b
MsgBox c
MsgBox d
MsgBox e
MsgBox f
MsgBox g
MsgBox h
MsgBox i
MsgBox j
MsgBox k
MsgBox l
MsgBox m
MsgBox n
MsgBox o
MsgBox p

Hi!

Moin

_____________
!–a—b–c--d
!__!__!__!__!
!-e—f–16–h
!__!__!__!__!
!-i—j----k—l
!__!__!__!__!
!22—n---o–p
!__!__!__!__!

g=16
m=22

//Zuweisung

eins = a+b+c+d
zwei = e+f+g+h
drei = i+j+k+l
vier = m+n+o+p
fuenf = a+e+i+m
sechs = b+f+j+n
sieben = c+g+k+o
acht = d+h+l+p
neun = a+f+k+p
zehn = d+g+j+m

Randomize

***schnipp scnapp***
***viele whiles…***

a = Int((25 - 10+1)*Rnd + 10)
While a=g OR a=m
a = Int((25 - 10+1)*Rnd + 10)
Wend

While eins70 OR zwei70 OR drei70 OR
vier70 OR fuenf70 OR sechs70 Or
sieben70 OR acht70 OR neun70 OR
zehn70

*******************************************************
***hier Zuweisung wiederholen, sonst endlossschleife***
*******************************************************

Randomize

***schnipp scnapp***
***noch mehr whiles…***

a = Int((25 - 10+1)*Rnd + 10)
While a=g OR a=m
a = Int((25 - 10+1)*Rnd + 10)

Wend

Wend

***schnipp scnapp***
***msgboxes ohne ende***

MsgBox a

Theoretisch funktioniert das bestimmt!, sieht nicht grad optimal aus,
klasse skript zu entwurfsprinizien(ist zwar Java, aber egal)
http://www.rz.rwth-aachen.de/mata/downloads/algo_dat…

hoffe konnte helfen

Hallo Ulli,

nur mal so aus Interesse: Warum die Zuweisung über Zufallsfunktionen? Wäre es nicht effektiver die Zahlen der Reihe nach durchzugehen?

Daniel

Wahrscheinlich schon, weiß aber nicht so recht, wie ich das anstellen soll.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]