30-рд▓рд╛рдЗрди рдореЗрдо рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рдореЗрдВ, рдореИрдВ
рд▓рд╛рдЗрд╡рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рднрд╛рд╖рд╛) рдкрд░ рдкреНрд░рд╕рд┐рджреНрдз
рдЬреАрд╡рди рдЧреЗрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реВрдВред
рдЬреАрд╡рди рдХрд╛ рдЦреЗрд▓ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдирд┐рдпрдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд▓реБрд▓рд░ рдСрдЯреЛрдореЗрдЯрди рд╣реИ:
- рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдХреНрд╖реЗрддреНрд░ рд╣реИ, рдЬреЛ рджреЛ рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдЬреАрд╡рд┐рдд рдФрд░ рдореГрдд
- рдЕрдЧрд░ рдПрдХ рдореГрдд рдХреЛрд╢рд┐рдХрд╛ рдореЗрдВ рддреАрди рдЬреАрд╡рд┐рдд рдкрдбрд╝реЛрд╕реА рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЬреАрд╡рди рдореЗрдВ рдЖрддрд╛ рд╣реИ
- рдпрджрд┐ рдПрдХ рдЬреАрд╡рд┐рдд рдХреЛрд╢рд┐рдХрд╛ рдореЗрдВ рджреЛ рдпрд╛ рддреАрди рдЬреАрд╡рд┐рдд рдкрдбрд╝реЛрд╕реА рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЬреАрд╡рд┐рдд рд░рд╣рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдЕрддрд┐рдкрд┐рдЫрд▓реЗрдкрди рдпрд╛ рдЕрдХреЗрд▓реЗрдкрди рд╕реЗ рдорд░ рдЬрд╛рддрд╛ рд╣реИ
рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдХреЛрдб рд╣реА:
stopped=true document.body.onkeyup = (e) -> e.keyCode==13 && stopped := !stopped change = (div, a) -> div.setAttribute(\class, a and "cell active" or "cell") div.ac=a window.activate = (div) -> div.ac ?= false change div, !div.ac setInterval -> unless stopped arr=document.getElementById("board").children newarr=[[false for _ to arr[0].children.length-1] for _ to arr.length-1] c=0 for i in [0 to arr.length-1] for j in [0 to arr[i].children.length-1] for sx in [i-1 to i+1] for sy in [j-1 to j+1] when not (sy == j and sx ==i) arr[(sx+newarr.length)%newarr.length].children[(sy+newarr[0].length)%newarr[0].length].ac and ++c (c == 3 or (c == 2 and arr[i].children[j].ac)) and newarr[i][j]=true c=0 for i in [0 to newarr.length-1] for j in [0 to newarr[i].length-1] change arr[i].children[j], newarr[i][j] , 1000/15
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЛрдб рд╕рд░рд▓ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИред рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЛрдб рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рддреА рд╣реИред
рдФрд░
jsfiddle рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдлрд╝реАрд▓реНрдб рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ (рдЬреЛ рд▓реВрдк рдХреА рдЧрдИ рд╣реИ) рд╕реЗрдЯ рдХрд░реЗрдВ, рдлрд┐рд░ рдПрдВрдЯрд░ рджрдмрд╛рдПрдВ рдФрд░ рдЦреЗрд▓ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдФрд░ рдпрд╣рд╛рдБ рдкреНрд░рд╕рд╛рд░рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ: рдореИрдВ рднрд╛рд╖рд╛ рдХреА рдПрдХ рдЫреЛрдЯреА рд╕рдореАрдХреНрд╖рд╛ рднреА рдХрд░реВрдВрдЧрд╛, рд╢рд╛рдпрдж рдХрд┐рд╕реА рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреАред
рд▓рд╛рдЗрд╡рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХрдИ рдбрд┐рдЬрд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рддреНрдордХ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рддрддреНрд╡, рд╡рд╛рдХреНрдпрдЧрдд рдЪреАрдиреА рднреА рд╣реИрдВред
рдореВрд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рддрддреНрд╡реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдХрд╛рд░реНрдп рдкрд░рд┐рднрд╛рд╖рд╛:
add = (x, y) -> x+y
рд╕рдорд╛рд░реЛрд╣ рдХреЙрд▓:
add 5 6 add(5, 6) add 5, 6
рдЪрдХреНрд░:
for i in [0 to 10] console.log i
рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдмрд┐рдирд╛ рд▓рд╛рдЗрдиреЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓рд┐рдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ:
a = \string alert \str
рд╡рд░реНрдЧ рдкрд░рд┐рднрд╛рд╖рд╛:
class Accumulator (num) -> @acc = num sum:8 add: (n) -> @acc+=n @acc+@sum #returns a = new Accumulator 1 a.sum # 8 a.acc # 1 a.add 9 # @acc now 10; return 18
рд╡рд╣ рд╕рдм рд╣реИред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред