/* Hacken Open Air */
[stratum0-wiki.git] / Gesellschaftsspiel-Replikator%2FDomino_V1.mw
index 185d671..26a069d 100644 (file)
@@ -1,14 +1,24 @@
-<pre>
+[[Datei:Blinden-Domino.png|thumb|Blinden-Domino]]
+
+[[Datei:Stratum0 Dominosteine V1.png|thumb|Dominosteine für Blinde]]
+
+
+==Regeln==
 
+* [http://www.pegasus.de/fileadmin/_downloads/_regeln/Domino_Dominoes.pdf http://www.pegasus.de/fileadmin/_downloads/_regeln/Domino_Dominoes.pdf]
+* Wikipedia: [http://de.wikipedia.org/wiki/Domino http://de.wikipedia.org/wiki/Domino]
+* Online-Spiel und Regeln: [http://www.brettspielnetz.de/spielregeln/domino.php http://www.brettspielnetz.de/spielregeln/domino.php]
+* [http://www.pagat.com/class/domino.html Pagat.com]
+
+== OpenSCAD Code für Steine ==
+
+<pre>
 
 // Blindendomino
-// 2014-01-22 V1
+// 2014-10-31 V1.1
 // by Stratum 0
-// License: WTF
+// License: WTFPL
 
-// **************************************
-// ** Dominos bitte *massiv* drucken!  **
-// **************************************
 
 $fn=20;
 LangeKante=40;
@@ -21,88 +31,180 @@ Punkthoehe=Kerbe;
 Punktbasis=2;
 Punktspitze=0;
 Punktabstand=4;
+Rechts=1;
+Links=-1;
+Abstand=2;
 
+//MyDomino();
 
-intersection()
-{
-sphere (LangeKante*0.8);
-MyDomino();
-}
 
-module MyDomino()
+//module MyDomino()
 {
-CutDomino();
-AddPoints();
-}
+
+
+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("red") translate ([LangeKante/4,0,Kerbe])  cube([Ausschnitt, Ausschnitt,Kerbe],center=true);
+     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],center=true);
-
-  
+     color("blue") translate ([-LangeKante/4,0,Kerbe])  cube([Ausschnitt, Ausschnitt,Kerbe*2],center=true);
 
-};// End Difference
+     };// 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)
+{
 
-module AddPoints(){
+if (PunktPos==1) 
+     {
+          color(Farbe) 
+               translate([LangeKante/4*Seite-Punktabstand,Punktabstand,Kerbe*0])  
+                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
+     }
 
-// Seite Z: 1
 
-color("orange")  
-translate([-LangeKante/4,0,Kerbe])  
-cylinder(Punkthoehe,Punktbasis,Punktspitze);     
+if (PunktPos==2) 
+     {
+          color(Farbe) 
+               translate([LangeKante/4*Seite-Punktabstand,0,Kerbe*0])  
+                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
+     }
 
-// Seite -Z: 6
 
-color("cyan")  
-translate([LangeKante/4+Punktabstand,0,Kerbe])  
+if (PunktPos==3) 
+     {
+          color(Farbe) 
+               translate([LangeKante/4*Seite-Punktabstand,-Punktabstand,Kerbe*0])  
+                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
+     }
 
-cylinder(Punkthoehe,Punktbasis,Punktspitze);
 
-color("white")  
-translate([LangeKante/4-Punktabstand,0,Kerbe])  
+if (PunktPos==4) 
+     {
+          color(Farbe) 
+               translate([LangeKante/4*Seite+Punktabstand,+Punktabstand,Kerbe*0])  
+                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
+     }
 
-cylinder(Punkthoehe,Punktbasis,Punktspitze);
 
-color("green")  
-translate([LangeKante/4+Punktabstand,Punktabstand,Kerbe])  
+if (PunktPos==5) 
+     {
+          color(Farbe) 
+               translate([LangeKante/4*Seite+Punktabstand,0,Kerbe*0])  
+                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
+     }
 
-cylinder(Punkthoehe,Punktbasis,Punktspitze);
 
-color("blue")  
-translate([LangeKante/4-Punktabstand,Punktabstand,Kerbe])  
+if (PunktPos==6) 
+     {
+          color(Farbe) 
+               translate([LangeKante/4*Seite+Punktabstand,-Punktabstand,Kerbe*0])  
+                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
+     }
 
-cylinder(Punkthoehe,Punktbasis,Punktspitze);
 
-color("yellow")  
-translate([LangeKante/4+Punktabstand,-Punktabstand,Kerbe])  
+if (PunktPos==7) 
+     {
+          color(Farbe) 
+               translate([LangeKante/4*Seite,Punktabstand,Kerbe*0])  
+                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
+     }
 
-cylinder(Punkthoehe,Punktbasis,Punktspitze);
 
-color("black")  
-translate([LangeKante/4-Punktabstand,-Punktabstand,Kerbe])  
+if (PunktPos==8) 
+     {
+          color(Farbe) 
+               translate([LangeKante/4*Seite,0,Kerbe*0])  
+                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
+     }
 
-cylinder(Punkthoehe,Punktbasis,Punktspitze);
 
+if (PunktPos==9) 
+     {
+          color(Farbe) 
+               translate([LangeKante/4*Seite,-Punktabstand,Kerbe*0])  
+                    cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
+     }
 
-}
+};
 
 
 </pre>
This page took 0.031311 seconds and 4 git commands to generate.