X-Git-Url: https://git.rohieb.name/stratum0-wiki.git/blobdiff_plain/7209e468d51a09e99e3c50bd3e46c9808119d402..52ea00b467e31ccd5fab472ab3548fc597c1da2e:/Gesellschaftsspiel-Replikator%2FConnect_V1.mw?ds=sidebyside diff --git a/Gesellschaftsspiel-Replikator%2FConnect_V1.mw b/Gesellschaftsspiel-Replikator%2FConnect_V1.mw index 7b15f5872..a41c77119 100644 --- a/Gesellschaftsspiel-Replikator%2FConnect_V1.mw +++ b/Gesellschaftsspiel-Replikator%2FConnect_V1.mw @@ -1,7 +1,6 @@
 
-
-// "Rivers, Roads and Rails" / "Contact" / "Connect"
+// Rivers, Roads and Rails / Contact
 // 2014-01-23 V1
 // by Stratum 0
 // License: WTF
@@ -14,69 +13,355 @@ RadiusA=Kante/4;
 RadiusB=Kante*2/4;
 RadiusC=Kante*3/4;
 Strichdicke=8;
-Kachelnummer=5;
+Kreisdicke=Strichdicke*1.5;
+Kachelnummer=27;
+
+// Es fehlen noch die Teile, wo eine Farbe endet und eine andere beginnt.
+
+//	1	rot:	Leer	schwarz:	Leer	blau:	kleine Kurve	Normalteil
+//	2	rot:	Leer	schwarz:	Leer	blau:	Große Kurve	Normalteil
+//	3	rot:	Leer	schwarz:	Leer	blau:	Geradeaus	Normalteil
+//	4	rot:	Leer	schwarz:	Leer	blau:	Endet	Normalteil
+//	5	rot:	Leer	schwarz:	Kurve gen rot	blau:	Leer	Normalteil
+//	6	rot:	Leer	schwarz:	Kurve gen rot	blau:	kleine Kurve	Gabel
+//	7	rot:	Leer	schwarz:	Kurve gen rot	blau:	Große Kurve	Normalteil
+//	8	rot:	Leer	schwarz:	Kurve gen rot	blau:	Geradeaus	Weiche
+//	9	rot:	Leer	schwarz:	Kurve gen rot	blau:	Endet	Normalteil
+//	10	rot:	Leer	schwarz:	Kurve gen blau	blau:	Leer	Normalteil
+//	11	rot:	Leer	schwarz:	Kurve gen blau	blau:	kleine Kurve	Normalteil
+//	15	rot:	Leer	schwarz:	Geradeaus	blau:	Leer	Normalteil
+//	16	rot:	Leer	schwarz:	Geradeaus	blau:	kleine Kurve	Weiche
+//	18	rot:	Leer	schwarz:	Geradeaus	blau:	Geradeaus	Normalteil
+//	19	rot:	Leer	schwarz:	Geradeaus	blau:	Endet	Normalteil
+//	20	rot:	Leer	schwarz:	Endet	blau:	Leer	Normalteil
+//	21	rot:	Leer	schwarz:	Endet	blau:	kleine Kurve	Normalteil
+//	23	rot:	Leer	schwarz:	Endet	blau:	Geradeaus	Normalteil
+//	25	rot:	kleine Kurve	schwarz:	Leer	blau:	Leer	Normalteil
+//	26	rot:	kleine Kurve	schwarz:	Leer	blau:	kleine Kurve	Weiche
+//	27	rot:	kleine Kurve	schwarz:	Leer	blau:	Große Kurve	Normalteil
+if (Kachelnummer==27) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([-RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([-RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusC,"blue");
+    }
+};
+//	28	rot:	kleine Kurve	schwarz:	Leer	blau:	Geradeaus	Weiche
+if (Kachelnummer==28) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([-RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([0,-RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"blue");
+    }
+};
+//	29	rot:	kleine Kurve	schwarz:	Leer	blau:	Endet	Normalteil
+if (Kachelnummer==29) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([-RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([-RadiusA,-RadiusA,Hoehe-Kerbe]) CreateEnd(RadiusA,"blue");
+    }
+};
+//	30	rot:	kleine Kurve	schwarz:	Kurve gen rot	blau:	Leer	Normalteil
+if (Kachelnummer==30) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusB,"black");
+    }
+};
+//	31	rot:	kleine Kurve	schwarz:	Kurve gen rot	blau:	kleine Kurve	Gabel
+if (Kachelnummer==31) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusB,"black");
+        translate ([-RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
+    }
+};
+//	32	rot:	kleine Kurve	schwarz:	Kurve gen rot	blau:	Große Kurve	Normalteil
+
 
-if (Kachelnummer==1) 
+if (Kachelnummer==32) 
 {
     difference()
     {
         CreateTile("white");
-        translate ([Kante/2,Kante/2,0]) CreateArch(RadiusA,"red");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusB,"black");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusC,"blue");
+    }
+};
+//	33	rot:	kleine Kurve	schwarz:	Kurve gen rot	blau:	Geradeaus	Weiche
+if (Kachelnummer==33) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusB,"black");
+        translate ([0,-RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"blue");
+    }
+};
+//	34	rot:	kleine Kurve	schwarz:	Kurve gen rot	blau:	Endet	Normalteil
+if (Kachelnummer==34) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([-RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([-RadiusB,RadiusB,Hoehe-Kerbe]) CreateArch(RadiusB,"black");
+        translate ([-RadiusA,-RadiusA,Hoehe-Kerbe]) CreateEnd(RadiusA,"blue"); 
+    }
+};
+//	35	rot:	kleine Kurve	schwarz:	Kurve gen blau	blau:	Leer	Gabel
+//	36	rot:	kleine Kurve	schwarz:	Kurve gen blau	blau:	kleine Kurve	Gabel
+//	39	rot:	kleine Kurve	schwarz:	Kurve gen blau	blau:	Endet	Gabel
+//	40	rot:	kleine Kurve	schwarz:	Geradeaus	blau:	Leer	Weiche
+//	41	rot:	kleine Kurve	schwarz:	Geradeaus	blau:	kleine Kurve	Kreuzung
+//	43	rot:	kleine Kurve	schwarz:	Geradeaus	blau:	Geradeaus	Weiche
+//	44	rot:	kleine Kurve	schwarz:	Geradeaus	blau:	Endet	Weiche
+//	45	rot:	kleine Kurve	schwarz:	Endet	blau:	Leer	Normalteil
+//	48	rot:	kleine Kurve	schwarz:	Endet	blau:	Geradeaus	Weiche
+//	49	rot:	kleine Kurve	schwarz:	Endet	blau:	Endet	Normalteil
+//	50	rot:	Große Kurve	schwarz:	Leer	blau:	Leer	Normalteil
+if (Kachelnummer==50) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([RadiusA*2,RadiusA*2,Hoehe-Kerbe]) CreateArch(RadiusC,"red");
+    }
+};
+//	51	rot:	Große Kurve	schwarz:	Leer	blau:	kleine Kurve	Normalteil
+//	60	rot:	Große Kurve	schwarz:	Kurve gen blau	blau:	Leer	Normalteil
+//	61	rot:	Große Kurve	schwarz:	Kurve gen blau	blau:	kleine Kurve	Normalteil
+if (Kachelnummer==61) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([Kante/2,Kante/2,0]) CreateArch(RadiusA,"blue");
         translate ([Kante/2,Kante/2,0]) CreateArch(RadiusB,"black");
-        translate ([Kante/2,Kante/2,0]) CreateArch(RadiusC,"blue");
+        translate ([Kante/2,Kante/2,0]) CreateArch(RadiusC,"red");
+    }
+};
+//	71	rot:	Große Kurve	schwarz:	Endet	blau:	kleine Kurve	Normalteil
+//	75	rot:	Geradeaus	schwarz:	Leer	blau:	Leer	Normalteil
+//	76	rot:	Geradeaus	schwarz:	Leer	blau:	kleine Kurve	Weiche
+if (Kachelnummer==76) 
+{    
+    difference()
+    {
+        CreateTile("white");
+        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
+        translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
+    }
+};
+//	78	rot:	Geradeaus	schwarz:	Leer	blau:	Geradeaus	Normalteil
+//	79	rot:	Geradeaus	schwarz:	Leer	blau:	Endet	Normalteil
+//	86	rot:	Geradeaus	schwarz:	Kurve gen blau	blau:	kleine Kurve	Weiche
+if (Kachelnummer==86) 
+{    
+    difference()
+    {
+        CreateTile("white");
+        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
+        translate ([-RadiusB,-RadiusB,Hoehe-Kerbe]) CreateArch(RadiusB,"black");
+        translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
+    }
+};
+//	90	rot:	Geradeaus	schwarz:	Geradeaus	blau:	Leer	Normalteil
+if (Kachelnummer==90) 
+{    
+    difference()
+    {
+        CreateTile("white");
+        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
+        translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusA,"black");
     }
 };
 
+//	91	rot:	Geradeaus	schwarz:	Geradeaus	blau:	kleine Kurve	Weiche
+if (Kachelnummer==91) 
+{    
+    difference()
+    {
+        CreateTile("white");
+        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
+        translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusA,"black");
+        translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
+    }
+};
 
-if (Kachelnummer==2) 
+
+//	93	rot:	Geradeaus	schwarz:	Geradeaus	blau:	Geradeaus	Normalteil
+if (Kachelnummer==93) 
 {
+    
     difference()
     {
         CreateTile("white");
-        translate ([-Kante/2,Kante/2,0]) CreateArch(RadiusA,"red");
-        translate ([-Kante/2,Kante/2,0]) CreateArch(RadiusB,"black");
-        translate ([-Kante/2,Kante/2,0]) CreateArch(RadiusC,"blue");
+        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
+        translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusA,"black");
+        translate ([0,-RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"blue");
     }
 };
+//	94	rot:	Geradeaus	schwarz:	Geradeaus	blau:	Endet	Normalteil
+if (Kachelnummer==94) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
+        translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusA,"black");
+        translate ([-RadiusA,-RadiusA,Hoehe-Kerbe]) CreateEnd(RadiusA,"blue");
+    }
+};
+
 
-if (Kachelnummer==3) 
+//	95	rot:	Geradeaus	schwarz:	Endet	blau:	Leer	Normalteil
+if (Kachelnummer==95) 
 {
     difference()
     {
         CreateTile("white");
-        translate ([Kante/2,-Kante/2,0]) CreateArch(RadiusA,"red");
-        translate ([Kante/2,-Kante/2,0]) CreateArch(RadiusB,"black");
-        translate ([Kante/2,-Kante/2,0]) CreateArch(RadiusC,"blue");
+        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
+        translate ([-Kante/4,0,Hoehe-Kerbe]) CreateEnd(RadiusB,"black");
     }
 };
 
 
-if (Kachelnummer==4) 
+//	96	rot:	Geradeaus	schwarz:	Endet	blau:	kleine Kurve	Weiche
+if (Kachelnummer==96) 
 {
     difference()
     {
         CreateTile("white");
-        translate ([-Kante/2,-Kante/2,0]) CreateArch(RadiusA,"red");
-        translate ([-Kante/2,-Kante/2,0]) CreateArch(RadiusB,"black");
-        translate ([-Kante/2,-Kante/2,0]) CreateArch(RadiusC,"blue");
+        translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
+        translate ([-Kante/4,0,Hoehe-Kerbe]) CreateEnd(RadiusB,"black");
+        translate ([0,Kante/4,Hoehe-Kerbe]) CreateStraigt(RadiusC,"red");
     }
 };
+//	98	rot:	Geradeaus	schwarz:	Endet	blau:	Geradeaus	Normalteil
+if (Kachelnummer==98) 
+{
+    difference()
+    {
+        CreateTile("white");
+        translate ([0,RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"red");
+        translate ([-Kante/4,0,Hoehe-Kerbe]) CreateEnd(RadiusB,"black");
+        translate ([0,-RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"blue");
+    }
+};//	99	rot:	Geradeaus	schwarz:	Endet	blau:	Endet	Normalteil
+//	101	rot:	Endet	schwarz:	Leer	blau:	kleine Kurve	Normalteil
+//	103	rot:	Endet	schwarz:	Leer	blau:	Geradeaus	Normalteil
+//	110	rot:	Endet	schwarz:	Kurve gen blau	blau:	Leer	Normalteil
 
 
-if (Kachelnummer==5) 
+if (Kachelnummer==1096) 
 {
-        translate ([-Kante/4,Kante/4,Hoehe-Kerbe]) CreateEnd(RadiusC,"blue");
+
     difference()
     {
         CreateTile("white");
         translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusA,"red");
+        translate ([-Kante/4,0,Hoehe-Kerbe]) CreateEnd(RadiusB,"black");
+        translate ([0,Kante/4,Hoehe-Kerbe]) CreateStraigt(RadiusC,"blue");
+    }
+};
+
+
+//	111	rot:	Endet	schwarz:	Kurve gen blau	blau:	kleine Kurve	Normalteil
+if (Kachelnummer==111) 
+{        
+    difference()
+    {
+        CreateTile("white");
+        translate ([-Kante/4,Kante/4,Hoehe-Kerbe]) CreateEnd(RadiusC,"red");        
         translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusB,"black");
-       
+        translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
     }
 };
 
 
+//	115	rot:	Endet	schwarz:	Geradeaus	blau:	Leer	Normalteil
+if (Kachelnummer==115) 
+{        
+    difference()
+    {
+        CreateTile("white");
+        translate ([-Kante/4,Kante/4,Hoehe-Kerbe]) CreateEnd(RadiusC,"red");        
+        translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusB,"black"); 
+    }
+};
+//	116	rot:	Endet	schwarz:	Geradeaus	blau:	kleine Kurve	Weiche
+if (Kachelnummer==116) 
+{        
+    difference()
+    {
+        CreateTile("white");
+        translate ([-Kante/4,Kante/4,Hoehe-Kerbe]) CreateEnd(RadiusC,"red");        
+        translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusB,"black");
+        translate ([-Kante/2,-Kante/2,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
+    }
+};
+
+//	118	rot:	Endet	schwarz:	Geradeaus	blau:	Geradeaus	Normalteil
+if (Kachelnummer==118) 
+{       
+    difference()
+    {
+        CreateTile("white");
+        translate ([-RadiusA,RadiusA,Hoehe-Kerbe]) CreateEnd(RadiusC,"red");        
+        translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusB,"black");
+        translate ([0,-RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusC,"blue");
+    }
+};
+//	119	rot:	Endet	schwarz:	Geradeaus	blau:	Endet	Normalteil
+if (Kachelnummer==119) 
+{       
+    difference()
+    {
+        CreateTile("white");
+        translate ([-RadiusA,RadiusA,Hoehe-Kerbe]) CreateEnd(RadiusC,"red");        
+        translate ([0,0,Hoehe-Kerbe]) CreateStraight(RadiusB,"black");
+        translate ([0,-RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusC,"blue");
+    }
+};
+//	121	rot:	Endet	schwarz:	Endet	blau:	kleine Kurve	Normalteil
+if (Kachelnummer==121) 
+{       
+    difference()
+    {
+        CreateTile("white");
+        translate ([-RadiusA,RadiusA,Hoehe-Kerbe]) CreateEnd(RadiusC,"red");        
+        translate ([-RadiusA,0,Hoehe-Kerbe]) CreateEnd(RadiusB,"black");
+        translate ([-RadiusA*2,-RadiusA*2,Hoehe-Kerbe]) CreateArch(RadiusA,"blue");
+    }
+};
 
+//	123	rot:	Endet	schwarz:	Endet	blau:	Geradeaus	Normalteil
+if (Kachelnummer==123) 
+{       
+    difference()
+    {
+        CreateTile("white");
+        translate ([-RadiusA,RadiusA,Hoehe-Kerbe]) CreateEnd(RadiusC,"red");        
+        translate ([-RadiusA,0,Hoehe-Kerbe]) CreateEnd(RadiusB,"black");
+        translate ([0,-RadiusA,Hoehe-Kerbe]) CreateStraight(RadiusA,"blue");
+    }
+};
 
 module CreateTile(myColor)
 {
@@ -98,7 +383,12 @@ module CreateArch(myRadius, myColor)
 module CreateEnd(myLane, myColor)
 {
     color(myColor)   cube([Kante/2,Strichdicke*2, Hoehe], center=true);
-                    
+    color(myColor)   translate ([Kante/4,0,0]) cylinder(Hoehe, Kreisdicke, Kreisdicke, center=true, $fn=60);
 };
 
+module CreateStraight(myLane, myColor)
+{
+    color(myColor)   cube([Kante,Strichdicke*2, Hoehe], center=true);
+
+};