Gesellschaftsspiel-Replikator/ScrabbleBrett: Unterschied zwischen den Versionen
Aus Stratum 0
Lulu (Diskussion | Beiträge) (ScrabbleBrett OpenSCAD angefangen) |
Lulu (Diskussion | Beiträge) (V1.1 - ScrabbleBrett nun mit Wort- und Buchstaben-Multiplikatoren) |
||
Zeile 1: | Zeile 1: | ||
<PRE> | <PRE> | ||
+ | |||
// Scrabble Spielbrett | // Scrabble Spielbrett | ||
− | // 2014-05-15 V1 | + | // 2014-05-15 V1.1 |
// by Stratum 0 | // by Stratum 0 | ||
// License: WTFPL | // License: WTFPL | ||
Zeile 24: | Zeile 25: | ||
{ | { | ||
//Dreifacher Wortwert | //Dreifacher Wortwert | ||
− | if ((i==1) && (j==1)) { Feld("red"); } | + | if ((i==1) && (j==1)) { Feld("red"); Striche(3);} |
− | if ((i==1) && (j==8)) { Feld("red"); } | + | if ((i==1) && (j==8)) { Feld("red"); Striche(3);} |
− | if ((i==8) && (j==1)) { Feld("red"); } | + | if ((i==8) && (j==1)) { Feld("red"); Striche(3);} |
//Doppelter Wortwert | //Doppelter Wortwert | ||
− | if ((i==2) && (j==2)) { Feld("pink"); } | + | if ((i==2) && (j==2)) { Feld("pink"); Striche(2);} |
− | if ((i==3) && (j==3)) { Feld("pink"); } | + | if ((i==3) && (j==3)) { Feld("pink"); Striche(2);} |
− | if ((i==4) && (j==4)) { Feld("pink"); } | + | if ((i==4) && (j==4)) { Feld("pink"); Striche(2);} |
− | if ((i==5) && (j==5)) { Feld("pink"); } | + | if ((i==5) && (j==5)) { Feld("pink"); Striche(2);} |
− | if ((i==8) && (j==8)) { Feld("pink"); } | + | if ((i==8) && (j==8)) { Feld("pink"); Striche(2);} |
// Dreifacher Buchstabenwert | // Dreifacher Buchstabenwert | ||
− | if ((i==2) && (j==6)) { Feld("blue"); } | + | if ((i==2) && (j==6)) { Feld("blue"); Punkte(3);} |
− | if ((i==6) && (j==2)) { Feld("blue"); } | + | if ((i==6) && (j==2)) { Feld("blue"); Punkte(3);} |
− | if ((i==6) && (j==6)) { Feld("blue"); } | + | if ((i==6) && (j==6)) { Feld("blue"); Punkte(3);} |
// Doppelter Buchstabenwert | // Doppelter Buchstabenwert | ||
− | if ((i==7) && (j==7)) { Feld("lightblue"); } | + | if ((i==7) && (j==7)) { Feld("lightblue"); Punkte(2); } |
− | if ((i==3) && (j==7)) { Feld("lightblue"); } | + | if ((i==3) && (j==7)) { Feld("lightblue"); Punkte(2);} |
− | if ((i==7) && (j==3)) { Feld("lightblue"); } | + | if ((i==7) && (j==3)) { Feld("lightblue"); Punkte(2);} |
− | if ((i==8) && (j==4)) { Feld("lightblue"); } | + | if ((i==8) && (j==4)) { Feld("lightblue"); Punkte(2);} |
− | if ((i==4) && (j==8)) { Feld("lightblue"); } | + | if ((i==4) && (j==8)) { Feld("lightblue"); Punkte(2);} |
− | if ((i==1) && (j==4)) { Feld("lightblue"); } | + | if ((i==1) && (j==4)) { Feld("lightblue"); Punkte(2);} |
− | if ((i==4) && (j==1)) { Feld("lightblue"); } | + | if ((i==4) && (j==1)) { Feld("lightblue"); Punkte(2);} |
// ansonsten normales Feld | // ansonsten normales Feld | ||
Feld("lightgreen"); | Feld("lightgreen"); | ||
− | |||
− | |||
} | } | ||
} // End For J | } // End For J | ||
Zeile 74: | Zeile 73: | ||
} | } | ||
+ | |||
+ | module Punkte(AnzahlPunkte) | ||
+ | { | ||
+ | if (AnzahlPunkte==2) | ||
+ | { | ||
+ | translate ([Kante/3, Kante/3, Hoehe]) cylinder(Randhoehe/2,2,1); | ||
+ | translate ([Kante/3*2, Kante/3*2, Hoehe]) cylinder(Randhoehe/2,2,1); | ||
+ | } | ||
+ | if (AnzahlPunkte==3) | ||
+ | { | ||
+ | translate ([Kante/4, Kante/4, Hoehe]) cylinder(Randhoehe/2,2,1); | ||
+ | translate ([Kante/4*2, Kante/4*2, Hoehe]) cylinder(Randhoehe/2,2,1); | ||
+ | translate ([Kante/4*3, Kante/4*3, Hoehe]) cylinder(Randhoehe/2,2,1); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | module Striche(AnzahlStriche) | ||
+ | { | ||
+ | if (AnzahlStriche==2) | ||
+ | { | ||
+ | translate ([Kante/3, Kante/4, Hoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); | ||
+ | translate ([Kante/3*2, Kante/4, Hoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); | ||
+ | } | ||
+ | if (AnzahlStriche==3) | ||
+ | { | ||
+ | translate ([Kante/4, Kante/4, Hoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); | ||
+ | translate ([Kante/4*2, Kante/4, Hoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); | ||
+ | translate ([Kante/4*3, Kante/4, Hoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
</PRE> | </PRE> |
Version vom 15. Mai 2014, 13:32 Uhr
// Scrabble Spielbrett // 2014-05-15 V1.1 // by Stratum 0 // License: WTFPL // $fn=20; Kante = 20; Kantenbreite = 2; Hoehe = 4; Randhoehe = 2; Abstand=0; Zaehler=1; Viertelfeld=8; for (i = [1:Viertelfeld]) { for (j = [1:Viertelfeld]) { translate([(Kante+Abstand)*i+Abstand,(Kante+Abstand)*j,0]) { //Dreifacher Wortwert if ((i==1) && (j==1)) { Feld("red"); Striche(3);} if ((i==1) && (j==8)) { Feld("red"); Striche(3);} if ((i==8) && (j==1)) { Feld("red"); Striche(3);} //Doppelter Wortwert if ((i==2) && (j==2)) { Feld("pink"); Striche(2);} if ((i==3) && (j==3)) { Feld("pink"); Striche(2);} if ((i==4) && (j==4)) { Feld("pink"); Striche(2);} if ((i==5) && (j==5)) { Feld("pink"); Striche(2);} if ((i==8) && (j==8)) { Feld("pink"); Striche(2);} // Dreifacher Buchstabenwert if ((i==2) && (j==6)) { Feld("blue"); Punkte(3);} if ((i==6) && (j==2)) { Feld("blue"); Punkte(3);} if ((i==6) && (j==6)) { Feld("blue"); Punkte(3);} // Doppelter Buchstabenwert if ((i==7) && (j==7)) { Feld("lightblue"); Punkte(2); } if ((i==3) && (j==7)) { Feld("lightblue"); Punkte(2);} if ((i==7) && (j==3)) { Feld("lightblue"); Punkte(2);} if ((i==8) && (j==4)) { Feld("lightblue"); Punkte(2);} if ((i==4) && (j==8)) { Feld("lightblue"); Punkte(2);} if ((i==1) && (j==4)) { Feld("lightblue"); Punkte(2);} if ((i==4) && (j==1)) { Feld("lightblue"); Punkte(2);} // ansonsten normales Feld Feld("lightgreen"); } } // End For J } // End For I // Basisfeld erstellen module Feld(Farbe) { difference() { cube([Kante, Kante, Hoehe+Randhoehe], center=false); translate ([Kantenbreite,Kantenbreite,Hoehe-Randhoehe]) color (Farbe) cube([Kante-Kantenbreite-Kantenbreite, Kante-Kantenbreite-Kantenbreite, Hoehe+Randhoehe], center=false); }; } module Punkte(AnzahlPunkte) { if (AnzahlPunkte==2) { translate ([Kante/3, Kante/3, Hoehe]) cylinder(Randhoehe/2,2,1); translate ([Kante/3*2, Kante/3*2, Hoehe]) cylinder(Randhoehe/2,2,1); } if (AnzahlPunkte==3) { translate ([Kante/4, Kante/4, Hoehe]) cylinder(Randhoehe/2,2,1); translate ([Kante/4*2, Kante/4*2, Hoehe]) cylinder(Randhoehe/2,2,1); translate ([Kante/4*3, Kante/4*3, Hoehe]) cylinder(Randhoehe/2,2,1); } } module Striche(AnzahlStriche) { if (AnzahlStriche==2) { translate ([Kante/3, Kante/4, Hoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); translate ([Kante/3*2, Kante/4, Hoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); } if (AnzahlStriche==3) { translate ([Kante/4, Kante/4, Hoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); translate ([Kante/4*2, Kante/4, Hoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); translate ([Kante/4*3, Kante/4, Hoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); } }