Script Library: 1238 scripts
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

Archive version of: periodictable.r ... version: 1 ... btiffin 14-Jan-2007

Amendment note: new script || Publicly available? Yes

REBOL [
    Title: "periodic table"
	File: %periodictable.r
	Author: "Brian Tiffin"
	Date: 13-Jan-2007
	Purpose: {Display a periodic table of the elements as REBOL buttons}
	History: [
        0.9.0 btiffin "First cut - mistakes non-zero probable"
	]
	Library: [
		level: 'beginner
		platform: 'all
		type: [demo fun]
		domain: [gui scientific]
		tested-under: [view 1.3.2.4.2 Debian GNU/Linux 4.0 RC 1] 
		support: none
		license: GPL
		see-also: none
	]
]

; Define states as text color
gas: :white
liquid: :blue
solid: :black

; Define chemical series as button color
nonmetal: :green
alkali-metal: :blue
alkaline-earth-metal: :red
transition-metal: :yellow
metalloid: :magenta
halogen: :orange
poor-metal: sky
noble: :gold

; Define the elements; Number, Symbol, Name, Group and period, chemical series, state at 0 celcius 1 atmosphere
elements: [
    1 H Hydrogen 1x1 nonmetal gas 1.00794 [1]
	2 He Helium 18x1 noble gas 4.002602 [2]
	3 Li Lithium 1x2 alkali-metal solid 6.941 [2 1]
	4 Be Beryllium 2x2 alkaline-earth-metal solid 9.01218 [2 2]
	5 B Boron 13x2 metalloid solid 10.811 [2 3]
	6 C Carbon 14x2 nonmetal solid 12.011 [2 4]
	7 N Nitrogen 15x2 nonmetal gas 14.00674 [2 5]
	8 O Oxygen 16x2 nonmetal gas 15.9994 [2 6]
	9 F Fluorine 17x2 halogen gas 18.998403 [2 7]
	10 Ne Neon 18x2 noble gas 20.1797 [2 8]
    11 Na Sodium 1x3 alkali-metal solid 22.989768 [2 8 1]
	12 Mg Magnesium 2x3 alkaline-earth-metal solid 24.305 [2 8 2]
	13 Al Aluminum 13x3 poor-metal solid 26.981539 [2 8 3]
	14 Si Silicon 14x3 metalloid solid 28.0855 [2 8 4]
	15 P Phosphorus 15x3 nonmetal solid 30.973762 [2 8 5]
	16 S Sulphur 16x3 nonmetal solid 32.066 [2 8 6]
	17 Cl Chlorine 17x3 halogen gas 35.4527 [2 8 7]
	18 Ar Argon 18x3 noble gas 39.948 [2 8 8]
	19 K Potassium 1x4 alkali-metal solid 39.0983 [2 8 8 1] 
	20 Ca Calcium 2x4 alkaline-earth-metal solid 40.078 [2 8 8 2]
	21 Sc Scandium 3x4 transition-metal solid 44.95591 [2 8 9 2]
	22 Ti Titanium 4x4 transition-metal solid 47.88 [2 8 10 2]
	23 V Vanadium 5x4 transition-metal solid 50.9415 [2 8 11 2]
	24 Cr Chromium 6x4 transition-metal solid 51.9961 [2 8 13 1]
	25 Mn Manganese 7x4 transition-metal solid 54.93805 [2 8 13 2]
	26 Fe Iron 8x4 transition-metal solid 55.847 [2 8 14 2]
	27 Co Cobalt 9x4 transition-metal solid 58.9332 [2 8 15 2]
	28 Ni Nickel 10x4 transition-metal solid 58.6934 [2 8 16 2]
	29 Cu Copper 11x4 transition-metal solid 63.546 [2 8 18 1]
	30 Zn Zinc 12x4 transition-metal solid 65.39 [2 8 18 2]
	31 Ga Gallium 13x4 poor-metal solid 69.723 [2 8 18 3]
	32 Ge Germanium 14x4 metalloid solid 72.61 [2 8 18 4]
	33 As Arsenic 15x4 metalloid solid 74.92159 [2 8 18 5]
	34 Se Selenium 16x4 nonmetal solid 78.96 [2 8 18 6]
	35 Br Bromine 17x4 halogen liquid 79.904 [2 8 18 7]
	36 Kr Krypton 18x4 noble gas 83.8 [2 8 18 8]
	37 Rb Rubidium 1x5 alkali-metal solid 85.4678 [2 8 18 8 1]
	38 Sr Strontium 2x5 alkaline-earth-metal solid 87.62 [2 8 18 8 2]
	39 Y Yttrium 3x5 transition-metal solid 88.90585 [2 8 18 9 2]
	40 Zr Zirconium 4x5 transition-metal solid 91.224 [2 8 18 10 2]
	41 Nb Niobium 5x5 transition-metal solid 92.90638 [2 8 18 12 1]
	42 Mo Molybdenum 6x5 transition-metal solid 95.94 [2 8 18 13 1]
	43 Tc Technetium 7x5 transition-metal solid 97.9072 [2 8 18 13 2]
	44 Ru Ruthenium 8x5 transition-metal solid 101.07 [2 8 18 15 1]
	45 Rh Rhodium 9x5 transition-metal solid 102.9055 [2 8 18 16 1]
	46 Pd Palladium 10x5 transition-metal solid 106.42 [2 8 18 18 0]
	47 Ag Silver 11x5 transition-metal solid 107.8682 [2 8 18 18 1]
	48 Cd Cadmium 12x5 transition-metal solid 112.411 [2 8 18 18 2]
	49 In Indium 13x5 poor-metal solid 114.818 [2 8 18 18 3]
	50 Sn Tin 14x5 poor-metal solid 118.71 [2 8 18 18 4]
	51 Sb Antimony 15x5 metalloid solid 121.760 [2 8 18 18 5]
	52 Te Tellurium 16x5 metalloid solid 127.6 [2 8 18 18 6]
	53 I Iodine 17x5 halogen solid 126.90447 [2 8 18 18 7]
	54 Xe Xenon 18x5 noble gas 131.29 [2 8 18 18 8]
	55 Cs Cesium 1x6 alkali-metal solid 132,90543 [2 8 18 18 8 1]
	56 Ba Barium 2x6 alkaline-earth-metal solid 137.327 [2 8 18 18 8 2]
	57 La Lanthanum 3x9 transition-metal solid 138.9055 [2 8 18 18 9 2]
    58 Ce Cerium 4x9 transition-metal solid 140.115 [2 8 18 20 8 2]
    59 Pr Praseodymium 5x9 transition-metal solid 140.90765 [2 8 18 21 8 2]
    60 Nd Noedymium 6x9 transition-metal solid 144.24  [2 8 18 22 8 2]
    61 Pm Promethium 7x9 transition-metal solid 144.9127 [2 8 18 23 8 2]
    62 Sm Samarium 8x9 transition-metal solid 150.36 [2 8 18 24 8 2]
    63 Eu Europium 9x9 transition-metal solid 151.965 [2 8 18 25 8 2]
    64 Gd Gadolinium 10x9 transition-metal solid 157.25 [2 8 18 25 9 2]
    65 Tb Terbium 11x9 transition-metal solid 158.92534 [2 8 18 27 8 2]
    66 Dy Dysprosium 12x9 transition-metal solid 162.50 [2 8 18 28 8 2]
    67 Ho Holmium 13x9 transition-metal solid 164.93032 [2 8 18 29 8 2]
    68 Er Erbium 14x9 transition-metal solid 167.26 [2 8 18 30 8 2]
    69 Tm Thulium 15x9 transition-metal solid 168.93421 [2 8 18 31 8 2]
    70 Yb Ytterbium 16x9 transition-metal solid 173.04 [2 8 18 32 8 2]
	71 Lu Lutetium  17x9 transition-metal solid 174.967 [2 8 18 32 9 2]
	72 Hf Hafnium 4x6 transition-metal solid 178.49 [2 8 18 32 10 2]
	73 Ta Tantalum 5x6 transition-metal solid 180.9479 [2 8 18 32 11 2]
	74 W Tungsten 6x6 transition-metal solid 183.84 [2 8 18 32 12 2]
	75 Re Rhenium 7x6 transition-metal solid 186.207 [2 8 18 32 13 2]
	76 Os Osmium 8x6 transition-metal solid 190.23 [2 8 18 32 14 2]
	77 Ir Iridium 9x6 transition-metal solid 192.22 [2 8 18 32 15 2]
	78 Pt Platinum 10x6 transition-metal solid 195.08 [2 8 18 32 17 1]
	79 Au Gold 11x6 transition-metal solid 196.96654 [2 8 18 32 18 1]
	80 Hg Mercury 12x6 transition-metal liquid 200.59 [2 8 18 32 18 2]
	81 Tl Thallium 13x6 poor-metal solid 204.3833 [2 8 18 32 18 3]
	82 Pb Lead 14x6 poor-metal solid 207.2 [2 8 18 32 18 4]
	83 Bi Bismuth 15x6 poor-metal solid 208.98037 [2 8 18 32 18 5]
	84 Po Polonium 16x6 metalloid solid 208.9824 [2 8 18 32 18 6]
	85 At Astatine 17x6 halogen solid 209.9871 [2 8 18 32 18 7]
	86 Rn Radon 18x6 noble gas 222.0176 [2 8 18 32 18 8]
	87 Fr Francium 1x7 alkali-metal solid 223.0197 [2 8 18 32 18 8 1]
	88 Ra Radium 2x7 alkaline-earth-metal solid 226.0254 [2 8 18 32 18 8 2]
	89 Ac Actinium 3x10 transition-metal solid 227.0278 [2 8 18 32 18 9 2]
	90 Th Thorium 4x10 transition-metal solid 232.0381 [2 8 18 32 18 10 2]
	91 Pa Protactinium 5x10 transition-metal solid 231.03588 [2 8 18 32 20 9 2]
	92 U Uranium 6x10 transition-metal solid 238.0289 [2 8 18 32 21 9 2]
	93 Np Neptunium 7x10 transition-metal solid 237.048 [2 8 18 32 22 9 2]
	94 Pu Plutonium 8x10 transition-metal solid 244.0642 [2 8 18 32 24 8 2]
	95 Am Americium 9x10 transition-metal solid 243.0614 [2 8 18 32 25 8 2]
	96 Cm Curium 10x10 transition-metal solid 247.0703 [2 8 18 32 25 9 2]
	97 Bk Berkelium 11x10 transition-metal solid 247.0703 [2 8 18 32 26 9 2]
	98 Cf Californium 12x10 transition-metal solid 251.0796 [2 8 18 32 28 8 2]
	99 Es Einsteinium 13x10 transition-metal solid 252.083 [2 8 18 32 29 8 2]
	100 Fm Fermium 14x10 transition-metal solid 257.0951 [2 8 18 32 30 8 2]
	101 Md Mendelevium 15x10 transition-metal solid 258.1 [2 8 18 32 31 8 2]
	102 No Nobelium 16x10 transition-metal solid 259.1009 [2 8 18 32 32 8 2]
	103 Lr Lawrencium 17x10 transition-metal solid 262.11 [2 8 18 32 32 9 2]
	104 Rf Rutherfordium 4x7 transition-metal solid 261 [2 8 18 32 32 10 2]
	105 Db Dubnium 5x7 transition-metal solid 262 [2 8 18 32 32 11 2]
	106 Sg Seaborgium 6x7 transition-metal solid 266 [2 8 18 32 32 12 2]
	107 Bh Bohrium 7x7 transition-metal solid 264 [2 8 18 32 32 13 2]
	108 Hs Hassium 8x7 transition-metal solid 269 [2 8 18 32 32 14 2]
	109 Mt Meitnerium 9x7 transition-metal solid 268 [2 8 18 32 32 15 2]
	110 Ds Darmstadmium 10x7 transition-metal solid 269 [2 8 18 32 32 17 1]
	111 Rg Roentgenium 11x7 transition-metal solid 272 [2 8 18 32 32 18 1]
	112 Uub Ununbium 12x7 transition-metal liquid 277 [2 8 18 32 32 18 2]
	113 Uut Ununtrium 13x7 poor-metal solid n/a [2 8 18 32 32 18 3]
	114 Uuq Ununquadium 14x7 poor-metal solid 289  [2 8 18 32 32 18 4]
	115 Uup Ununpentium 15x7 poor-metal solid n/a [2 8 18 32 32 18 5]
	116 Uuh Ununhexium 16x7 poor-metal solid n/a [2 8 18 32 32 18 6]
	117 Uus Ununseptium 17x7 halogen solid n/a [2 8 18 32 32 18 7]
	118 Uuo Ununoctium 18x7 noble gas n/a [2 8 18 32 32 18 8]
]

; Build up layout
; Start with the lines that pop out the lanthanide and actinide series
;   then put up a title and the clicked info area
pte: [
    backdrop effect [draw [pen black line 86x126 94x189 line 86x164 93x228]]
    at 100x0
	title "Periodic Table of the Elements" [
	    alert reform ["periodic.r - A Periodic Table of the Elements in REBOL buttons.  Various sources; wikipedia.org, source code for gperiodic GNU/Linux app"]
	]
	at 100x40
    clicked: info white 265x40 font [style: 'bold]	
]

; build the buttons, positioned by group and period, pop out the lanthanide/actinide block by adding some pixels
foreach [el sym name pos series state weight orbits] elements [
    blurb: reform [el sym name series state newline  weight "[" orbits "]"]
	append pte reduce [
	    'at as-pair add either greater? pos/y 8 [7][0] multiply pos/x 29 multiply pos/y 21
    	'btn 29x22 to-string sym series 'font compose [color: (state)] reduce ['set-face 'clicked blurb]
	]
]

; and view it
view layout pte
Notes