* Game and supporting classes *
*********************************************************/
+const scribe_glyphs = [
+ {
+ name: "Single",
+ squares: [1,0,0,
+ 0,0,0,
+ 0,0,0]
+ },
+ {
+ name: "Double",
+ squares: [1,1,0,
+ 0,0,0,
+ 0,0,0]
+ },
+ {
+ name: "Line",
+ squares: [1,1,1,
+ 0,0,0,
+ 0,0,0]
+ },
+ {
+ name: "Pipe",
+ squares: [0,0,1,
+ 1,1,1,
+ 0,0,0]
+ },
+ {
+ name: "Squat-T",
+ squares: [1,1,1,
+ 0,1,0,
+ 0,0,0]
+ },
+ {
+ name: "4-block",
+ squares: [1,1,0,
+ 1,1,0,
+ 0,0,0]
+ },
+ {
+ name: "T",
+ squares: [1,1,1,
+ 0,1,0,
+ 0,1,0]
+ },
+ {
+ name: "Cross",
+ squares: [0,1,0,
+ 1,1,1,
+ 0,1,0]
+ },
+ {
+ name: "6-block",
+ squares: [1,1,1,
+ 1,1,1,
+ 0,0,0]
+ },
+ {
+ name: "Bomber",
+ squares: [1,1,1,
+ 0,1,1,
+ 0,0,1]
+ },
+ {
+ name: "Chair",
+ squares: [0,0,1,
+ 1,1,1,
+ 1,0,1]
+ },
+ {
+ name: "J",
+ squares: [0,0,1,
+ 1,0,1,
+ 1,1,1]
+ },
+ {
+ name: "Earring",
+ squares: [0,1,1,
+ 1,0,1,
+ 1,1,1]
+ },
+ {
+ name: "House",
+ squares: [0,1,0,
+ 1,1,1,
+ 1,1,1]
+ },
+ {
+ name: "H",
+ squares: [1,0,1,
+ 1,1,1,
+ 1,0,1]
+ },
+ {
+ name: "U",
+ squares: [1,0,1,
+ 1,0,1,
+ 1,1,1]
+ },
+ {
+ name: "Ottoman",
+ squares: [1,1,1,
+ 1,1,1,
+ 1,0,1]
+ },
+ {
+ name: "O",
+ squares: [1,1,1,
+ 1,0,1,
+ 1,1,1]
+ },
+ {
+ name: "9-block",
+ squares: [1,1,1,
+ 1,1,1,
+ 1,1,1]
+ }
+];
+
function copy_to_clipboard(id)
{
const tmp = document.createElement("input");
const glyph_dots = [];
+ let last_square = 0;
+ for (let i = 0; i < 9; i++) {
+ if (props.squares[i])
+ last_square = i;
+ }
+
+ const height = Math.floor(20 * (Math.floor(last_square / 3) + 1));
+
+ const viewbox=`0 0 60 ${height}`;
+
for (let row = 0; row < 3; row++) {
for (let col = 0; col < 3; col++) {
if (props.squares[3 * row + col]) {
let cx = 10 + 20 * col;
glyph_dots.push(
<circle
+ key={3 * row + col}
cx={cx}
cy={cy}
r="8"
return (<div className="glyph-and-name">
{props.name}
<div className="glyph">
- <svg viewBox="0 0 60 60">
+ <svg viewBox={viewbox}>
<g fill="#287789">
{glyph_dots}
</g>
</div>
</div>,
<div key="glyphs" className="glyphs">
- <Glyph
- name="Single"
- squares={[1,0,0,
- 0,0,0,
- 0,0,0]}
- />
- <Glyph
- name="Double"
- squares={[1,1,0,
- 0,0,0,
- 0,0,0]}
- />
- <Glyph
- name="Line"
- squares={[1,1,1,
- 0,0,0,
- 0,0,0]}
- />
- <Glyph
- name="Pipe"
- squares={[0,0,1,
- 1,1,1,
- 0,0,0]}
- />
- <Glyph
- name="Squat-T"
- squares={[1,1,1,
- 0,1,0,
- 0,0,0]}
- />
- <Glyph
- name="4-block"
- squares={[1,1,0,
- 1,1,0,
- 0,0,0]}
- />
- <Glyph
- name="T"
- squares={[1,1,1,
- 0,1,0,
- 0,1,0]}
- />
- <Glyph
- name="Cross"
- squares={[0,1,0,
- 1,1,1,
- 0,1,0]}
- />
- <Glyph
- name="6-block"
- squares={[1,1,1,
- 1,1,1,
- 0,0,0]}
- />
- <Glyph
- name="Bomber"
- squares={[1,1,1,
- 0,1,1,
- 0,0,1]}
- />
- <Glyph
- name="Chair"
- squares={[0,0,1,
- 1,1,1,
- 1,0,1]}
- />
- <Glyph
- name="J"
- squares={[0,0,1,
- 1,0,1,
- 1,1,1]}
- />
- <Glyph
- name="Earring"
- squares={[0,1,1,
- 1,0,1,
- 1,1,1]}
- />
- <Glyph
- name="House"
- squares={[0,1,0,
- 1,1,1,
- 1,1,1]}
- />
- <Glyph
- name="H"
- squares={[1,0,1,
- 1,1,1,
- 1,0,1]}
- />
- <Glyph
- name="U"
- squares={[1,0,1,
- 1,0,1,
- 1,1,1]}
- />
- <Glyph
- name="Ottoman"
- squares={[1,1,1,
- 1,1,1,
- 1,0,1]}
- />
- <Glyph
- name="O"
- squares={[1,1,1,
- 1,0,1,
- 1,1,1]}
- />
- <Glyph
- name="9-block"
- squares={[1,1,1,
- 1,1,1,
- 1,1,1]}
- />
+ {
+ scribe_glyphs.map(glyph => {
+ return (
+ <Glyph
+ key={glyph.name}
+ name={glyph.name}
+ squares={glyph.squares}
+ />
+ );
+ })
+ }
</div>
];
}