/* Infrastruktur */
[stratum0-wiki.git] / Gesellschaftsspiel-Replikator%2FDomino_V1.mw
1 [[Datei:Blinden-Domino.png|thumb|Blinden-Domino]]
2
3 [[Datei:Stratum0 Dominosteine V1.png|thumb|Dominosteine für Blinde]]
4
5
6 ==Regeln==
7
8 * [http://www.pegasus.de/fileadmin/_downloads/_regeln/Domino_Dominoes.pdf http://www.pegasus.de/fileadmin/_downloads/_regeln/Domino_Dominoes.pdf]
9 * Wikipedia: [http://de.wikipedia.org/wiki/Domino http://de.wikipedia.org/wiki/Domino]
10 * Online-Spiel und Regeln: [http://www.brettspielnetz.de/spielregeln/domino.php http://www.brettspielnetz.de/spielregeln/domino.php]
11 * [http://www.pagat.com/class/domino.html Pagat.com]
12
13 == OpenSCAD Code für Steine ==
14
15 <pre>
16
17 // Blindendomino
18 // 2014-10-31 V1.1
19 // by Stratum 0
20 // License: WTFPL
21
22
23 $fn=20;
24 LangeKante=40;
25 KurzeKante=LangeKante/2;
26 Hoehe=LangeKante/8;
27 Ausschnitt=15;
28 Kerbe=2;
29 Punktpos=LangeKante/2-Kerbe;
30 Punkthoehe=Kerbe;
31 Punktbasis=2;
32 Punktspitze=0;
33 Punktabstand=4;
34 Rechts=1;
35 Links=-1;
36 Abstand=2;
37
38 //MyDomino();
39
40
41 //module MyDomino()
42 {
43
44
45 for (i = [1:6]) // Hier Anfangswert und Endwert für linke Steinhaelfte eintragen
46 {
47 for (j = [1:6]) // Hier Anfangswert und Endwert für rechte Steinhaelfte eintragen
48 {
49 translate([(LangeKante+Abstand)*i+Abstand,(KurzeKante+Abstand)*j,0]) CutDomino();
50 translate([(LangeKante+Abstand)*i+Abstand,(KurzeKante+Abstand)*j,0]) CreateValue("purple", i, Links);
51 translate([(LangeKante+Abstand)*i+Abstand,(KurzeKante+Abstand)*j,0]) CreateValue("pink", j, Rechts);
52 } // End For J
53 } // End For I
54 } // End Module
55
56
57 module CutDomino()
58 {
59 difference()
60 {
61 // Basisdomino erstellen
62 cube([LangeKante, KurzeKante, Hoehe], center=true);
63
64 // Ausschnitt für Einkerbungen erstellen
65 // Rechte Seite
66
67 color("lightblue") translate ([LangeKante/4,0,Kerbe]) cube([Ausschnitt, Ausschnitt, Kerbe*2],center=true);
68
69 // Ausschnitt für Einkerbungen erstellen
70 // Linke Seite
71
72 color("blue") translate ([-LangeKante/4,0,Kerbe]) cube([Ausschnitt, Ausschnitt,Kerbe*2],center=true);
73
74 };// End Difference
75 }; // End Module
76
77
78 // Punkte hinzufügen
79
80 module CreateValue(Farbe, Value, Seite)
81 {
82 if (Value==1)
83 {
84 punkt(Farbe, 8, Seite);
85 }
86
87 if (Value==2)
88 {
89 punkt(Farbe, 1, Seite);
90 punkt(Farbe, 6, Seite);
91 }
92
93 if (Value==3)
94 {
95 punkt(Farbe, 1, Seite);
96 punkt(Farbe, 8, Seite);
97 punkt(Farbe, 6, Seite);
98 }
99
100 if (Value==4)
101 {
102 punkt(Farbe, 1, Seite);
103 punkt(Farbe, 3, Seite);
104 punkt(Farbe, 4, Seite);
105 punkt(Farbe, 6, Seite);
106 }
107
108 if (Value==5)
109 {
110 punkt(Farbe, 1, Seite);
111 punkt(Farbe, 3, Seite);
112 punkt(Farbe, 8, Seite);
113 punkt(Farbe, 4, Seite);
114 punkt(Farbe, 6, Seite);
115 }
116
117 if (Value==6)
118 {
119 punkt(Farbe, 1, Seite);
120 punkt(Farbe, 2, Seite);
121 punkt(Farbe, 3, Seite);
122 punkt(Farbe, 4, Seite);
123 punkt(Farbe, 5, Seite);
124 punkt(Farbe, 6, Seite);
125
126 }
127 };
128
129
130
131
132
133 module punkt(Farbe,PunktPos,Seite)
134 {
135
136 if (PunktPos==1)
137 {
138 color(Farbe)
139 translate([LangeKante/4*Seite-Punktabstand,Punktabstand,Kerbe*0])
140 cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
141 }
142
143
144 if (PunktPos==2)
145 {
146 color(Farbe)
147 translate([LangeKante/4*Seite-Punktabstand,0,Kerbe*0])
148 cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
149 }
150
151
152 if (PunktPos==3)
153 {
154 color(Farbe)
155 translate([LangeKante/4*Seite-Punktabstand,-Punktabstand,Kerbe*0])
156 cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
157 }
158
159
160 if (PunktPos==4)
161 {
162 color(Farbe)
163 translate([LangeKante/4*Seite+Punktabstand,+Punktabstand,Kerbe*0])
164 cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
165 }
166
167
168 if (PunktPos==5)
169 {
170 color(Farbe)
171 translate([LangeKante/4*Seite+Punktabstand,0,Kerbe*0])
172 cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
173 }
174
175
176 if (PunktPos==6)
177 {
178 color(Farbe)
179 translate([LangeKante/4*Seite+Punktabstand,-Punktabstand,Kerbe*0])
180 cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
181 }
182
183
184 if (PunktPos==7)
185 {
186 color(Farbe)
187 translate([LangeKante/4*Seite,Punktabstand,Kerbe*0])
188 cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
189 }
190
191
192 if (PunktPos==8)
193 {
194 color(Farbe)
195 translate([LangeKante/4*Seite,0,Kerbe*0])
196 cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
197 }
198
199
200 if (PunktPos==9)
201 {
202 color(Farbe)
203 translate([LangeKante/4*Seite,-Punktabstand,Kerbe*0])
204 cylinder(Punkthoehe,Punktbasis,Punktspitze,center=yes);
205 }
206
207 };
208
209
210 </pre>
This page took 0.067445 seconds and 5 git commands to generate.