Gesellschaftsspiel-Replikator/Domino V1
Aus Stratum 0
Regeln
- http://www.pegasus.de/fileadmin/_downloads/_regeln/Domino_Dominoes.pdf
- Wikipedia: http://de.wikipedia.org/wiki/Domino
- Online-Spiel und Regeln: http://www.brettspielnetz.de/spielregeln/domino.php
- Pagat.com
OpenSCAD Code für Steine
// Blindendomino // 2014-10-31 V1.1 // by Stratum 0 // License: WTFPL $fn=20; LangeKante=40; KurzeKante=LangeKante/2; Hoehe=LangeKante/8; Ausschnitt=15; Kerbe=2; Punktpos=LangeKante/2-Kerbe; Punkthoehe=Kerbe; Punktbasis=2; Punktspitze=0; Punktabstand=4; Rechts=1; Links=-1; Abstand=2; //MyDomino(); //module MyDomino() { for (i = [1:6]) // Hier Anfangswert und Endwert für linke Steinhaelfte eintragen { for (j = [1:6]) // Hier Anfangswert und Endwert für rechte Steinhaelfte eintragen { translate([(LangeKante+Abstand)*i+Abstand,(KurzeKante+Abstand)*j,0]) CutDomino(); translate([(LangeKante+Abstand)*i+Abstand,(KurzeKante+Abstand)*j,0]) CreateValue("purple", i, Links); translate([(LangeKante+Abstand)*i+Abstand,(KurzeKante+Abstand)*j,0]) CreateValue("pink", j, Rechts); } // End For J } // End For I } // End Module module CutDomino() { difference() { // Basisdomino erstellen cube([LangeKante, KurzeKante, Hoehe], center=true); // Ausschnitt für Einkerbungen erstellen // Rechte Seite color("lightblue") translate ([LangeKante/4,0,Kerbe]) cube([Ausschnitt, Ausschnitt, Kerbe*2],center=true); // Ausschnitt für Einkerbungen erstellen // Linke Seite color("blue") translate ([-LangeKante/4,0,Kerbe]) cube([Ausschnitt, Ausschnitt,Kerbe*2],center=true); };// End Difference }; // End Module // Punkte hinzufügen module CreateValue(Farbe, Value, Seite) { if (Value==1) { punkt(Farbe, 8, Seite); } if (Value==2) { punkt(Farbe, 1, Seite); punkt(Farbe, 6, Seite); } if (Value==3) { punkt(Farbe, 1, Seite); punkt(Farbe, 8, Seite); punkt(Farbe, 6, Seite); } if (Value==4) { punkt(Farbe, 1, Seite); punkt(Farbe, 3, Seite); punkt(Farbe, 4, Seite); punkt(Farbe, 6, Seite); } if (Value==5) { punkt(Farbe, 1, Seite); punkt(Farbe, 3, Seite); punkt(Farbe, 8, Seite); punkt(Farbe, 4, Seite); punkt(Farbe, 6, Seite); } if (Value==6) { punkt(Farbe, 1, Seite); punkt(Farbe, 2, Seite); punkt(Farbe, 3, Seite); punkt(Farbe, 4, Seite); punkt(Farbe, 5, Seite); punkt(Farbe, 6, Seite); } }; module punkt(Farbe,PunktPos,Seite) { if (PunktPos==1) { color(Farbe) translate([LangeKante/4*Seite-Punktabstand,Punktabstand,Kerbe*0]) cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes); } if (PunktPos==2) { color(Farbe) translate([LangeKante/4*Seite-Punktabstand,0,Kerbe*0]) cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes); } if (PunktPos==3) { color(Farbe) translate([LangeKante/4*Seite-Punktabstand,-Punktabstand,Kerbe*0]) cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes); } if (PunktPos==4) { color(Farbe) translate([LangeKante/4*Seite+Punktabstand,+Punktabstand,Kerbe*0]) cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes); } if (PunktPos==5) { color(Farbe) translate([LangeKante/4*Seite+Punktabstand,0,Kerbe*0]) cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes); } if (PunktPos==6) { color(Farbe) translate([LangeKante/4*Seite+Punktabstand,-Punktabstand,Kerbe*0]) cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes); } if (PunktPos==7) { color(Farbe) translate([LangeKante/4*Seite,Punktabstand,Kerbe*0]) cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes); } if (PunktPos==8) { color(Farbe) translate([LangeKante/4*Seite,0,Kerbe*0]) cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes); } if (PunktPos==9) { color(Farbe) translate([LangeKante/4*Seite,-Punktabstand,Kerbe*0]) cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes); } };