Gesellschaftsspiel-Replikator/ScrabbleBrett: Unterschied zwischen den Versionen

Aus Stratum 0
Wechseln zu:Navigation, Suche
(ScrabbleBrett OpenSCAD angefangen)
 
(Noch ein Anbieter)
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
 +
[[Datei:Ein Viertel Scrabble-Brett.PNG|thumb|OpenSCAD Entwurf von einem Scrabble-Brett (ein Viertel)]]
 +
 +
* Andere Anbieter:
 +
**[http://www.amazon.com/Maxi-Aids-Tactile-Braille-Crossword-Puzzle-Game/dp/B004USI2H6/ref=pd_sim_t_10?ie=UTF8&refRID=1CRT5HWAZZD53CGR5XT8]
 +
** [http://www.amazon.com/Deluxe-Scrabble-Game-Braille-Version/dp/B000YL1XEM/ref=pd_sim_hpc_7?ie=UTF8&refRID=1ZV6GKYKWP7PTT01XTER]
 +
 
<PRE>
 
<PRE>
  
// Scrabble Spielbrett
+
 
// 2014-05-15 V1
+
// Scrabble Spielbrett  
 +
// (ein Viertel)
 +
// 2014-05-15 V1.2
 
// by Stratum 0
 
// by Stratum 0
 
// License: WTFPL
 
// License: WTFPL
Zeile 8: Zeile 17:
 
// $fn=20;
 
// $fn=20;
  
Kante = 20;
+
Kante = 14;
Kantenbreite = 2;
+
Kantenbreite = 1;
 
Hoehe = 4;
 
Hoehe = 4;
 
Randhoehe = 2;
 
Randhoehe = 2;
Zeile 16: Zeile 25:
 
Viertelfeld=8;
 
Viertelfeld=8;
  
 +
 +
 +
//Hauptprogramm
 +
 +
intersection()
 +
{
 +
    ViertelBrett();
 +
    cube ([Kante*(Viertelfeld+0.5), Kante*(Viertelfeld+0.5), Kante*(Viertelfeld+0.5)]);   
 +
}
 +
 +
 +
module ViertelBrett()
 +
{
  
 
for (i = [1:Viertelfeld])
 
for (i = [1:Viertelfeld])
Zeile 24: Zeile 46:
 
           {  
 
           {  
 
             //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 58: Zeile 78:
  
  
 +
}
  
 
+
// Basisfeld erstellen
    // Basisfeld erstellen
 
 
module Feld(Farbe)
 
module Feld(Farbe)
 
{
 
{
Zeile 74: Zeile 94:
 
    
 
    
 
}
 
}
 +
 +
module Punkte(AnzahlPunkte)
 +
{
 +
    if (AnzahlPunkte==2)
 +
    {
 +
        translate ([Kante/3, Kante/3, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false);
 +
        translate ([Kante/3*2, Kante/3*2, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false);
 +
    }
 +
    if (AnzahlPunkte==3)
 +
    {
 +
        translate ([Kante/4, Kante/4, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false);
 +
        translate ([Kante/4*2, Kante/4*2, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false);
 +
        translate ([Kante/4*3, Kante/4*3, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false);
 +
    }
 +
}
 +
 +
 +
 +
module Striche(AnzahlStriche)
 +
{
 +
  if (AnzahlStriche==2)
 +
    {
 +
        translate ([Kante/3-Kantenbreite/2, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]);
 +
        translate ([Kante/3*2-Kantenbreite/2, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]);
 +
    }
 +
    if (AnzahlStriche==3)
 +
    {
 +
        translate ([Kante/4, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]);
 +
        translate ([Kante/4*2, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]);
 +
        translate ([Kante/4*3, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]);
 +
    }
 +
}
 +
 +
  
  
 
</PRE>
 
</PRE>

Aktuelle Version vom 27. Oktober 2014, 15:44 Uhr

OpenSCAD Entwurf von einem Scrabble-Brett (ein Viertel)


// Scrabble Spielbrett 
// (ein Viertel)
// 2014-05-15 V1.2
// by Stratum 0
// License: WTFPL

// $fn=20;

Kante = 14;
Kantenbreite = 1;
Hoehe = 4;
Randhoehe = 2;
Abstand=0;
Zaehler=1;
Viertelfeld=8;



//Hauptprogramm

intersection()
{
    ViertelBrett();
    cube ([Kante*(Viertelfeld+0.5), Kante*(Viertelfeld+0.5), Kante*(Viertelfeld+0.5)]);    
}


module ViertelBrett()
{

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-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false);
        translate ([Kante/3*2, Kante/3*2, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false); 
    }
    if (AnzahlPunkte==3)
    {
        translate ([Kante/4, Kante/4, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false);
        translate ([Kante/4*2, Kante/4*2, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false); 
        translate ([Kante/4*3, Kante/4*3, Hoehe-Randhoehe]) cylinder(Randhoehe/2,2,1, center=false); 
    }
}



module Striche(AnzahlStriche)
{
  if (AnzahlStriche==2)
    {
        translate ([Kante/3-Kantenbreite/2, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]);
        translate ([Kante/3*2-Kantenbreite/2, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); 
    }
    if (AnzahlStriche==3)
    {
        translate ([Kante/4, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]);
        translate ([Kante/4*2, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); 
        translate ([Kante/4*3, Kante/4, Hoehe-Randhoehe]) cube([Randhoehe/2,Kante/2,Randhoehe/2]); 
    }
}