Toggle navigation
Explora
(current)
Aprende
Crea
Retos
×
Aspectos básicos
void main() {...}
for ( int i = 0 ; i < N ; i++ ) {...}
while (condición) {...}
do {...} while (condición);
if (condición) {...}
if (condición) {...} else {...}
switch (valor) {...}
Mostrar y pedir datos
print()
println()
readInteger()
readDouble()
readChar()
readString()
Funciones matemáticas
abs(n)
log(n)
sqrt(n)
pow(b,e)
floor(n)
ceil(n)
round(n)
sin(n)
cos(n)
tan(n)
asin(n)
acos(n)
atan(n)
random(n)
Funciones gráficas
point(x,y)
line(x1,y1,x2,y2)
ellipse(x,y,w,h)
rect(x,y,w,h)
triangle(x1,y1,x2,y2,x3,y3)
text(msg,x,y)
textWidth(msg)
textSize(n)
background(r,g,b,a)
strokeWeight(n)
stroke(r,g,b,a)
noStroke()
fill(r,g,b,a)
noFill()
image(url, x,y,w,h)
Nuevo
Ayuda
Probar
...
// Mi entrada al concurso de Videojuegos de la OIRM 2020, // mostrando el codigo por si a alguien le interesa. // // Este juego es como un prototipo de otro juego que estoy // haciendo llamado Evergreen, con muchos mejores graficos, // mas bloques y minerales, etc. Planeo sacarlo para Windows, // Linux y Mac OS X, y puede que para Android, iOS/iPadOS y // Nintendo Switch. // DESCARGALO AQUI: https://segfaultcoder.github.io/justsquares/index-es.html // (llevo mas de 15 dias sin actualizar la pagina, he // sacado durante este tiempo otra version mas) int font8x8_basic[][] = { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0000 (nul) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0001 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0002 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0003 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0004 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0005 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0006 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0007 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0008 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0009 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000A { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000B { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000C { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000D { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000E { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000F { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0010 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0011 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0012 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0013 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0014 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0015 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0016 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0017 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0018 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0019 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001A { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001B { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001C { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001D { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001E { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001F { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0020 (space) { 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00}, // U+0021 (!) { 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0022 (") { 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00}, // U+0023 (#) { 0x0C, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x0C, 0x00}, // U+0024 ($) { 0x00, 0x63, 0x33, 0x18, 0x0C, 0x66, 0x63, 0x00}, // U+0025 (%) { 0x1C, 0x36, 0x1C, 0x6E, 0x3B, 0x33, 0x6E, 0x00}, // U+0026 (&) { 0x06, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0027 (') { 0x18, 0x0C, 0x06, 0x06, 0x06, 0x0C, 0x18, 0x00}, // U+0028 (() { 0x06, 0x0C, 0x18, 0x18, 0x18, 0x0C, 0x06, 0x00}, // U+0029 ()) { 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00}, // U+002A (*) { 0x00, 0x0C, 0x0C, 0x3F, 0x0C, 0x0C, 0x00, 0x00}, // U+002B (+) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x06}, // U+002C (,) { 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00}, // U+002D (-) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00}, // U+002E (.) { 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00}, // U+002F (/) { 0x3E, 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x3E, 0x00}, // U+0030 (0) { 0x0C, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00}, // U+0031 (1) { 0x1E, 0x33, 0x30, 0x1C, 0x06, 0x33, 0x3F, 0x00}, // U+0032 (2) { 0x1E, 0x33, 0x30, 0x1C, 0x30, 0x33, 0x1E, 0x00}, // U+0033 (3) { 0x38, 0x3C, 0x36, 0x33, 0x7F, 0x30, 0x78, 0x00}, // U+0034 (4) { 0x3F, 0x03, 0x1F, 0x30, 0x30, 0x33, 0x1E, 0x00}, // U+0035 (5) { 0x1C, 0x06, 0x03, 0x1F, 0x33, 0x33, 0x1E, 0x00}, // U+0036 (6) { 0x3F, 0x33, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00}, // U+0037 (7) { 0x1E, 0x33, 0x33, 0x1E, 0x33, 0x33, 0x1E, 0x00}, // U+0038 (8) { 0x1E, 0x33, 0x33, 0x3E, 0x30, 0x18, 0x0E, 0x00}, // U+0039 (9) { 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00}, // U+003A (:) { 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x06}, // U+003B (;) { 0x18, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x18, 0x00}, // U+003C (<) { 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00}, // U+003D (=) { 0x06, 0x0C, 0x18, 0x30, 0x18, 0x0C, 0x06, 0x00}, // U+003E (>) { 0x1E, 0x33, 0x30, 0x18, 0x0C, 0x00, 0x0C, 0x00}, // U+003F (?) { 0x3E, 0x63, 0x7B, 0x7B, 0x7B, 0x03, 0x1E, 0x00}, // U+0040 (@) { 0x0C, 0x1E, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x00}, // U+0041 (A) { 0x3F, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3F, 0x00}, // U+0042 (B) { 0x3C, 0x66, 0x03, 0x03, 0x03, 0x66, 0x3C, 0x00}, // U+0043 (C) { 0x1F, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1F, 0x00}, // U+0044 (D) { 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x46, 0x7F, 0x00}, // U+0045 (E) { 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x06, 0x0F, 0x00}, // U+0046 (F) { 0x3C, 0x66, 0x03, 0x03, 0x73, 0x66, 0x7C, 0x00}, // U+0047 (G) { 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x00}, // U+0048 (H) { 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0049 (I) { 0x78, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E, 0x00}, // U+004A (J) { 0x67, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x67, 0x00}, // U+004B (K) { 0x0F, 0x06, 0x06, 0x06, 0x46, 0x66, 0x7F, 0x00}, // U+004C (L) { 0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x00}, // U+004D (M) { 0x63, 0x67, 0x6F, 0x7B, 0x73, 0x63, 0x63, 0x00}, // U+004E (N) { 0x1C, 0x36, 0x63, 0x63, 0x63, 0x36, 0x1C, 0x00}, // U+004F (O) { 0x3F, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x0F, 0x00}, // U+0050 (P) { 0x1E, 0x33, 0x33, 0x33, 0x3B, 0x1E, 0x38, 0x00}, // U+0051 (Q) { 0x3F, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x67, 0x00}, // U+0052 (R) { 0x1E, 0x33, 0x07, 0x0E, 0x38, 0x33, 0x1E, 0x00}, // U+0053 (S) { 0x3F, 0x2D, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0054 (T) { 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F, 0x00}, // U+0055 (U) { 0x33, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00}, // U+0056 (V) { 0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00}, // U+0057 (W) { 0x63, 0x63, 0x36, 0x1C, 0x1C, 0x36, 0x63, 0x00}, // U+0058 (X) { 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x0C, 0x1E, 0x00}, // U+0059 (Y) { 0x7F, 0x63, 0x31, 0x18, 0x4C, 0x66, 0x7F, 0x00}, // U+005A (Z) { 0x1E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x1E, 0x00}, // U+005B ([) { 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x40, 0x00}, // U+005C (\) { 0x1E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1E, 0x00}, // U+005D (]) { 0x08, 0x1C, 0x36, 0x63, 0x00, 0x00, 0x00, 0x00}, // U+005E (^) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF}, // U+005F (_) { 0x0C, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0060 (`) { 0x00, 0x00, 0x1E, 0x30, 0x3E, 0x33, 0x6E, 0x00}, // U+0061 (a) { 0x07, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00}, // U+0062 (b) { 0x00, 0x00, 0x1E, 0x33, 0x03, 0x33, 0x1E, 0x00}, // U+0063 (c) { 0x38, 0x30, 0x30, 0x3e, 0x33, 0x33, 0x6E, 0x00}, // U+0064 (d) { 0x00, 0x00, 0x1E, 0x33, 0x3f, 0x03, 0x1E, 0x00}, // U+0065 (e) { 0x1C, 0x36, 0x06, 0x0f, 0x06, 0x06, 0x0F, 0x00}, // U+0066 (f) { 0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x1F}, // U+0067 (g) { 0x07, 0x06, 0x36, 0x6E, 0x66, 0x66, 0x67, 0x00}, // U+0068 (h) { 0x0C, 0x00, 0x0E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0069 (i) { 0x30, 0x00, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E}, // U+006A (j) { 0x07, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x67, 0x00}, // U+006B (k) { 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+006C (l) { 0x00, 0x00, 0x33, 0x7F, 0x7F, 0x6B, 0x63, 0x00}, // U+006D (m) { 0x00, 0x00, 0x1F, 0x33, 0x33, 0x33, 0x33, 0x00}, // U+006E (n) { 0x00, 0x00, 0x1E, 0x33, 0x33, 0x33, 0x1E, 0x00}, // U+006F (o) { 0x00, 0x00, 0x3B, 0x66, 0x66, 0x3E, 0x06, 0x0F}, // U+0070 (p) { 0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x78}, // U+0071 (q) { 0x00, 0x00, 0x3B, 0x6E, 0x66, 0x06, 0x0F, 0x00}, // U+0072 (r) { 0x00, 0x00, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x00}, // U+0073 (s) { 0x08, 0x0C, 0x3E, 0x0C, 0x0C, 0x2C, 0x18, 0x00}, // U+0074 (t) { 0x00, 0x00, 0x33, 0x33, 0x33, 0x33, 0x6E, 0x00}, // U+0075 (u) { 0x00, 0x00, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00}, // U+0076 (v) { 0x00, 0x00, 0x63, 0x6B, 0x7F, 0x7F, 0x36, 0x00}, // U+0077 (w) { 0x00, 0x00, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x00}, // U+0078 (x) { 0x00, 0x00, 0x33, 0x33, 0x33, 0x3E, 0x30, 0x1F}, // U+0079 (y) { 0x00, 0x00, 0x3F, 0x19, 0x0C, 0x26, 0x3F, 0x00}, // U+007A (z) { 0x38, 0x0C, 0x0C, 0x07, 0x0C, 0x0C, 0x38, 0x00}, // U+007B ({) { 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00}, // U+007C (|) { 0x07, 0x0C, 0x0C, 0x38, 0x0C, 0x0C, 0x07, 0x00}, // U+007D (}) { 0x6E, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+007E (~) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+007F { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0080 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0081 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0082 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0083 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0084 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0085 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0086 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0087 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0088 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0089 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+008A { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+008B { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+008C { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+008D { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+008E { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+008F { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0090 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0091 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0092 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0093 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0094 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0095 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0096 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0097 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0098 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0099 { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+009A { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+009B { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+009C { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+009D { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+009E { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+009F { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+00A0 (no break space) { 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00}, // U+00A1 (inverted !) { 0x18, 0x18, 0x7E, 0x03, 0x03, 0x7E, 0x18, 0x18}, // U+00A2 (dollarcents) { 0x1C, 0x36, 0x26, 0x0F, 0x06, 0x67, 0x3F, 0x00}, // U+00A3 (pound sterling) { 0x00, 0x00, 0x63, 0x3E, 0x36, 0x3E, 0x63, 0x00}, // U+00A4 (currency mark) { 0x33, 0x33, 0x1E, 0x3F, 0x0C, 0x3F, 0x0C, 0x0C}, // U+00A5 (yen) { 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00}, // U+00A6 (broken pipe) { 0x7C, 0xC6, 0x1C, 0x36, 0x36, 0x1C, 0x33, 0x1E}, // U+00A7 (paragraph) { 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+00A8 (diaeresis) { 0x3C, 0x42, 0x99, 0x85, 0x85, 0x99, 0x42, 0x3C}, // U+00A9 (copyright symbol) { 0x3C, 0x36, 0x36, 0x7C, 0x00, 0x00, 0x00, 0x00}, // U+00AA (superscript a) { 0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00}, // U+00AB (<<) { 0x00, 0x00, 0x00, 0x3F, 0x30, 0x30, 0x00, 0x00}, // U+00AC (gun pointing left) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+00AD (soft hyphen) { 0x3C, 0x42, 0x9D, 0xA5, 0x9D, 0xA5, 0x42, 0x3C}, // U+00AE (registered symbol) { 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+00AF (macron) { 0x1C, 0x36, 0x36, 0x1C, 0x00, 0x00, 0x00, 0x00}, // U+00B0 (degree) { 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x7E, 0x00}, // U+00B1 (plusminus) { 0x1C, 0x30, 0x18, 0x0C, 0x3C, 0x00, 0x00, 0x00}, // U+00B2 (superscript 2) { 0x1C, 0x30, 0x18, 0x30, 0x1C, 0x00, 0x00, 0x00}, // U+00B2 (superscript 3) { 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+00B2 (aigu) { 0x00, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x06, 0x03}, // U+00B5 (mu) { 0xFE, 0xDB, 0xDB, 0xDE, 0xD8, 0xD8, 0xD8, 0x00}, // U+00B6 (pilcrow) { 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00}, // U+00B7 (central dot) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x1E}, // U+00B8 (cedille) { 0x08, 0x0C, 0x08, 0x1C, 0x00, 0x00, 0x00, 0x00}, // U+00B9 (superscript 1) { 0x1C, 0x36, 0x36, 0x1C, 0x00, 0x00, 0x00, 0x00}, // U+00BA (superscript 0) { 0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00}, // U+00BB (>>) { 0xC3, 0x63, 0x33, 0xBD, 0xEC, 0xF6, 0xF3, 0x03}, // U+00BC (1/4) { 0xC3, 0x63, 0x33, 0x7B, 0xCC, 0x66, 0x33, 0xF0}, // U+00BD (1/2) { 0x03, 0xC4, 0x63, 0xB4, 0xDB, 0xAC, 0xE6, 0x80}, // U+00BE (3/4) { 0x0C, 0x00, 0x0C, 0x06, 0x03, 0x33, 0x1E, 0x00}, // U+00BF (inverted ?) { 0x07, 0x00, 0x1C, 0x36, 0x63, 0x7F, 0x63, 0x00}, // U+00C0 (A grave) { 0x70, 0x00, 0x1C, 0x36, 0x63, 0x7F, 0x63, 0x00}, // U+00C1 (A aigu) { 0x1C, 0x36, 0x00, 0x3E, 0x63, 0x7F, 0x63, 0x00}, // U+00C2 (A circumflex) { 0x6E, 0x3B, 0x00, 0x3E, 0x63, 0x7F, 0x63, 0x00}, // U+00C3 (A ~) { 0x63, 0x1C, 0x36, 0x63, 0x7F, 0x63, 0x63, 0x00}, // U+00C4 (A umlaut) { 0x0C, 0x0C, 0x00, 0x1E, 0x33, 0x3F, 0x33, 0x00}, // U+00C5 (A ring) { 0x7C, 0x36, 0x33, 0x7F, 0x33, 0x33, 0x73, 0x00}, // U+00C6 (AE) { 0x1E, 0x33, 0x03, 0x33, 0x1E, 0x18, 0x30, 0x1E}, // U+00C7 (C cedille) { 0x07, 0x00, 0x3F, 0x06, 0x1E, 0x06, 0x3F, 0x00}, // U+00C8 (E grave) { 0x38, 0x00, 0x3F, 0x06, 0x1E, 0x06, 0x3F, 0x00}, // U+00C9 (E aigu) { 0x0C, 0x12, 0x3F, 0x06, 0x1E, 0x06, 0x3F, 0x00}, // U+00CA (E circumflex) { 0x36, 0x00, 0x3F, 0x06, 0x1E, 0x06, 0x3F, 0x00}, // U+00CB (E umlaut) { 0x07, 0x00, 0x1E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+00CC (I grave) { 0x38, 0x00, 0x1E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+00CD (I aigu) { 0x0C, 0x12, 0x00, 0x1E, 0x0C, 0x0C, 0x1E, 0x00}, // U+00CE (I circumflex) { 0x33, 0x00, 0x1E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+00CF (I umlaut) { 0x3F, 0x66, 0x6F, 0x6F, 0x66, 0x66, 0x3F, 0x00}, // U+00D0 (Eth) { 0x3F, 0x00, 0x33, 0x37, 0x3F, 0x3B, 0x33, 0x00}, // U+00D1 (N ~) { 0x0E, 0x00, 0x18, 0x3C, 0x66, 0x3C, 0x18, 0x00}, // U+00D2 (O grave) { 0x70, 0x00, 0x18, 0x3C, 0x66, 0x3C, 0x18, 0x00}, // U+00D3 (O aigu) { 0x3C, 0x66, 0x18, 0x3C, 0x66, 0x3C, 0x18, 0x00}, // U+00D4 (O circumflex) { 0x6E, 0x3B, 0x00, 0x3E, 0x63, 0x63, 0x3E, 0x00}, // U+00D5 (O ~) { 0xC3, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x18, 0x00}, // U+00D6 (O umlaut) { 0x00, 0x36, 0x1C, 0x08, 0x1C, 0x36, 0x00, 0x00}, // U+00D7 (multiplicative x) { 0x5C, 0x36, 0x73, 0x7B, 0x6F, 0x36, 0x1D, 0x00}, // U+00D8 (O stroke) { 0x0E, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00}, // U+00D9 (U grave) { 0x70, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00}, // U+00DA (U aigu) { 0x3C, 0x66, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x00}, // U+00DB (U circumflex) { 0x33, 0x00, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x00}, // U+00DC (U umlaut) { 0x70, 0x00, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x00}, // U+00DD (Y aigu) { 0x0F, 0x06, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x0F}, // U+00DE (Thorn) { 0x00, 0x1E, 0x33, 0x1F, 0x33, 0x1F, 0x03, 0x03}, // U+00DF (beta) { 0x07, 0x00, 0x1E, 0x30, 0x3E, 0x33, 0x7E, 0x00}, // U+00E0 (a grave) { 0x38, 0x00, 0x1E, 0x30, 0x3E, 0x33, 0x7E, 0x00}, // U+00E1 (a aigu) { 0x7E, 0xC3, 0x3C, 0x60, 0x7C, 0x66, 0xFC, 0x00}, // U+00E2 (a circumflex) { 0x6E, 0x3B, 0x1E, 0x30, 0x3E, 0x33, 0x7E, 0x00}, // U+00E3 (a ~) { 0x33, 0x00, 0x1E, 0x30, 0x3E, 0x33, 0x7E, 0x00}, // U+00E4 (a umlaut) { 0x0C, 0x0C, 0x1E, 0x30, 0x3E, 0x33, 0x7E, 0x00}, // U+00E5 (a ring) { 0x00, 0x00, 0xFE, 0x30, 0xFE, 0x33, 0xFE, 0x00}, // U+00E6 (ae) { 0x00, 0x00, 0x1E, 0x03, 0x03, 0x1E, 0x30, 0x1C}, // U+00E7 (c cedille) { 0x07, 0x00, 0x1E, 0x33, 0x3F, 0x03, 0x1E, 0x00}, // U+00E8 (e grave) { 0x38, 0x00, 0x1E, 0x33, 0x3F, 0x03, 0x1E, 0x00}, // U+00E9 (e aigu) { 0x7E, 0xC3, 0x3C, 0x66, 0x7E, 0x06, 0x3C, 0x00}, // U+00EA (e circumflex) { 0x33, 0x00, 0x1E, 0x33, 0x3F, 0x03, 0x1E, 0x00}, // U+00EB (e umlaut) { 0x07, 0x00, 0x0E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+00EC (i grave) { 0x1C, 0x00, 0x0E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+00ED (i augu) { 0x3E, 0x63, 0x1C, 0x18, 0x18, 0x18, 0x3C, 0x00}, // U+00EE (i circumflex) { 0x33, 0x00, 0x0E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+00EF (i umlaut) { 0x1B, 0x0E, 0x1B, 0x30, 0x3E, 0x33, 0x1E, 0x00}, // U+00F0 (eth) { 0x00, 0x1F, 0x00, 0x1F, 0x33, 0x33, 0x33, 0x00}, // U+00F1 (n ~) { 0x00, 0x07, 0x00, 0x1E, 0x33, 0x33, 0x1E, 0x00}, // U+00F2 (o grave) { 0x00, 0x38, 0x00, 0x1E, 0x33, 0x33, 0x1E, 0x00}, // U+00F3 (o aigu) { 0x1E, 0x33, 0x00, 0x1E, 0x33, 0x33, 0x1E, 0x00}, // U+00F4 (o circumflex) { 0x6E, 0x3B, 0x00, 0x1E, 0x33, 0x33, 0x1E, 0x00}, // U+00F5 (o ~) { 0x00, 0x33, 0x00, 0x1E, 0x33, 0x33, 0x1E, 0x00}, // U+00F6 (o umlaut) { 0x18, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x18, 0x00}, // U+00F7 (division) { 0x00, 0x60, 0x3C, 0x76, 0x7E, 0x6E, 0x3C, 0x06}, // U+00F8 (o stroke) { 0x00, 0x07, 0x00, 0x33, 0x33, 0x33, 0x7E, 0x00}, // U+00F9 (u grave) { 0x00, 0x38, 0x00, 0x33, 0x33, 0x33, 0x7E, 0x00}, // U+00FA (u aigu) { 0x1E, 0x33, 0x00, 0x33, 0x33, 0x33, 0x7E, 0x00}, // U+00FB (u circumflex) { 0x00, 0x33, 0x00, 0x33, 0x33, 0x33, 0x7E, 0x00}, // U+00FC (u umlaut) { 0x00, 0x38, 0x00, 0x33, 0x33, 0x3E, 0x30, 0x1F}, // U+00FD (y aigu) { 0x00, 0x00, 0x06, 0x3E, 0x66, 0x3E, 0x06, 0x00}, // U+00FE (thorn) { 0x00, 0x33, 0x00, 0x33, 0x33, 0x3E, 0x30, 0x1F} // U+00FF (y umlaut) }; double bsize = 1; double br = 0; double bg = 0; double bb = 0; double ba = 0; void btextSize(double size) { bsize = (size / 8); } int btextWidth(String txt) { return round(txt.length()*8*bsize); } void btext(String txt, int x, int y) { if (y < 320 && y > -(bsize * 8)) { for (int ox = 0; ox < txt.length(); ox++) { if (txt.charAt(ox) != ' ') { for (int j = 0; j < 8; j++) { for (int i = 0; i < 8; i++) { int bit = ((int)font8x8_basic[(int)txt.charAt(ox)][j] / (int)pow(2, i)) % 2; noFill(); noStroke(); if (bit == 1) { fill(br, bg, bb, ba/255); if (bsize > 1.5) { strokeWeight(1); stroke(br, bg, bb, ba/255); } } rect(x+(ox*bsize*8)+(i*bsize), y+(j*bsize), bsize, bsize); } } } } } } void bcolor(int r, int g, int b) { br = r; bg = g; bb = b; } void btrsp(double a) { ba = a; } int perlin[] = {129, 129, 128, 127, 125, 125, 123, 122, 121, 121, 119, 118, 116, 114, 112, 111, 109, 109, 108, 107, 106, 104, 103, 101, 100, 99, 98, 97, 97, 96, 95, 95, 95, 94, 94, 94, 93, 93, 92, 91, 90, 89, 88, 87, 86, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 75, 74, 74, 73, 72, 72, 72, 72, 72, 73, 73, 74, 74, 74, 75, 76, 76, 76, 77, 77, 77, 77, 77, 76, 77, 76, 75, 74, 73, 73, 72, 71, 70, 68, 66, 64, 63, 62, 61, 60, 59, 58, 56, 55, 54, 53, 52, 51, 50, 50, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 48, 49, 49, 49, 49, 50, 50, 51, 52, 53, 54, 55, 56, 56, 57, 58, 58, 59, 60, 62, 63, 64, 65, 65, 65, 66, 66, 67, 67, 67, 67, 67, 67, 66, 66, 65, 65, 65, 66, 66, 65, 65, 65, 64, 64, 64, 63, 63, 64, 64, 65, 64, 64, 64, 63, 63, 62, 62, 61, 60, 58, 58, 57, 56, 55, 55, 54, 54, 54, 54, 54, 54, 54, 53, 52, 52, 51, 51, 51, 51, 50, 50, 50, 50, 49, 49, 49, 49, 49, 49, 49, 49, 50, 50, 51, 52, 52, 52, 53, 53, 54, 54, 54, 55, 55, 55, 56, 56, 56, 57, 57, 57, 58, 58, 58, 58, 58, 58, 59, 59, 59, 60, 60, 61, 62, 62, 63, 64, 65, 66, 67, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 94, 95, 96, 97, 97, 98, 98, 98, 99, 99, 100, 100, 101, 101, 102, 102, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 102, 102, 101, 101, 100, 101, 102, 102, 103, 103, 103, 103, 103, 103, 102, 102, 102, 102, 101, 101, 101, 101, 101, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 99, 98, 98, 97, 97, 96, 96, 95, 94, 93, 92, 91, 90, 89, 88, 86, 85, 84, 83, 82, 82, 81, 80, 80, 79, 79, 78, 78, 77, 77, 77, 77, 78, 78, 78, 78, 78, 78, 78, 78, 77, 76, 75, 74, 73, 72, 71, 70, 68, 67, 66, 66, 65, 65, 64, 63, 62, 61, 60, 59, 59, 58, 58, 57, 56, 56, 56, 55, 55, 54, 54, 54, 54, 54, 54, 53, 53, 52, 52, 51, 51, 51, 51, 51, 51, 52, 52, 53, 53, 54, 54, 54, 53, 53, 53, 54, 54, 54, 54, 54, 54, 54, 54, 54, 53, 53, 52, 52, 52, 51, 51, 51, 51, 51, 51, 50, 50, 49, 49, 49, 49, 49, 49, 48, 48, 48, 47, 47, 46, 46, 45, 45, 45, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 43, 43, 44, 44, 44, 44, 44, 44, 45, 46, 46, 46, 47, 47, 47, 48, 48, 48, 49, 49, 49, 50, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 59, 60, 60, 61, 61, 61, 62, 62, 62, 63, 63, 63, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 66, 66, 67, 68, 68, 69, 69, 70, 71, 72, 73, 73, 75, 76, 77, 79, 80, 81, 81, 82, 83, 84, 84, 84, 84, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 87, 87, 87, 88, 89, 89, 89, 90, 91, 91, 91, 91, 91, 91, 91, 91, 91, 92, 92, 91, 91, 91, 91, 91, 92, 92, 92, 92, 92, 91, 91, 91, 91, 90, 90, 89, 89, 89, 88, 88, 88, 87, 87, 87, 87, 87, 87, 87, 87, 88, 88, 89, 89, 89, 90, 90, 90, 90, 91, 91, 91, 90, 90, 90, 89, 89, 89, 89, 89, 88, 88, 87, 87, 86, 85, 85, 84, 84, 83, 83, 83, 82, 82, 81, 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, 82, 83, 84, 84, 85, 86, 87, 87, 87, 88, 88, 88, 88, 88, 87, 86, 85, 85, 85, 85, 84, 84, 84, 83, 83, 82, 82, 81, 81, 80, 79, 78, 77, 76, 75, 75, 73, 72, 71, 71, 70, 68, 67, 66, 64, 63, 61, 60, 59, 59, 58, 58, 57, 57, 57, 57, 56, 56, 56, 56, 55, 54, 54, 54, 54, 54, 54, 54, 54, 54, 53, 53, 53, 54, 55, 56, 56, 57, 58, 58, 59, 59, 60, 60, 61, 62, 63, 63, 63, 64, 64, 64, 64, 64, 64, 63, 62, 61, 60, 59, 59, 58, 57, 56, 56, 55, 54, 53, 52, 51, 49, 48, 47, 46, 46, 47, 47, 47, 47, 47, 46, 46, 46, 46, 45, 45, 45, 45, 44, 44, 44, 44, 45, 44, 44, 44, 44, 44, 44, 44, 43, 43, 43, 43, 42, 42, 42, 42, 42, 42, 42, 41, 42, 42, 42, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 47, 47, 48, 48, 48, 49, 50, 51, 52, 54, 55, 57, 58, 59, 60, 61, 61, 62, 63, 63, 63, 63, 64, 65, 65, 66, 66, 67, 68, 69, 70, 71, 72, 72, 72, 72, 72, 72, 72, 72, 72, 73, 73, 73, 74, 75, 75, 75, 75, 75, 75, 74, 74, 74, 74, 75, 75, 75, 76, 75, 75, 75, 75, 75, 75, 76, 75, 75, 75, 75, 75, 74, 74, 74, 74, 75, 75, 75, 76, 76, 75, 75, 75, 75, 75, 74, 74, 74, 73, 73, 73, 73, 72, 72, 72, 72, 72, 72, 71, 71, 71, 71, 71, 70, 70, 69, 69, 69, 68, 68, 68, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 68, 68, 68, 68, 68, 69, 69, 69, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 76, 76, 77, 77, 78, 79, 79, 80, 80, 81, 81, 82, 83, 83, 84, 84, 85, 85, 86, 86, 87, 87, 87, 87, 87, 87, 87, 87, 88, 88, 88, 88, 87, 87, 87, 87, 87, 86, 86, 86, 86, 86, 85, 85, 85, 85, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 83, 83, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 83, 84, 85, 85, 85, 86, 86, 86, 87, 87, 88, 88, 89, 89, 90, 91, 91, 92, 93, 93, 94, 95, 96, 97, 98, 99, 100, 100, 101, 101, 101, 101, 101, 102, 103, 103, 104, 104, 104, 104, 103, 103, 103, 102, 102, 102, 101, 100, 100, 99, 98, 97, 96, 96, 96, 95, 95, 95, 95, 94, 94, 93, 93, 93, 93, 94, 94, 94, 94, 94, 93, 93, 93, 93, 93, 92, 92, 92, 92, 92, 93, 93, 93, 93, 92, 92, 91, 91, 91, 91, 91, 91, 90, 90, 90, 90, 90, 89, 89, 89, 89, 89, 88, 88, 87, 86, 85, 85, 85, 85, 85, 86, 86, 85, 85, 84, 84, 83, 83, 83, 82, 82, 82, 81, 81, 81, 81, 80, 80, 79, 78, 78, 78, 77, 76, 76, 76, 75, 75, 74, 73, 72, 71, 70, 68, 67, 65, 64, 63, 62, 62, 61, 60, 59, 58, 58, 57, 56, 56, 57, 57, 58, 58, 59, 60, 61, 62, 62, 63, 64, 64, 65, 65, 66, 66, 66, 66, 66, 66, 66, 66, 67, 66, 66, 66, 65, 64, 64, 64, 63, 63, 62, 62, 62, 62, 61, 61, 61, 61, 61, 61, 61, 61, 60, 59, 59, 58, 57, 56, 55, 54, 53, 52, 51, 51, 51, 50, 50, 49, 49, 49, 48, 47, 47, 47, 46, 46, 46, 46, 46, 45, 45, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 47, 48, 49, 50, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 63, 64, 65, 66, 66, 66, 67, 67, 68, 68, 68, 68, 68, 69, 69, 69, 69, 69, 69, 68, 68, 68, 68, 68, 68, 68, 68, 67, 67, 67, 67, 68, 68, 68, 67, 67, 67, 67, 68, 68, 68, 69, 69, 69, 70, 71, 71, 70, 70, 70, 70, 70, 69, 69, 69, 68, 68, 68, 67, 66, 66, 65, 65, 64, 64, 64, 63, 63, 63, 62, 61, 60, 60, 59, 58, 57, 56, 55, 54, 53, 53, 52, 52, 51, 51, 50, 49, 49, 49, 49, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 50, 50, 49, 49, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 50, 50, 52, 53, 54, 56, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 72, 74, 75, 76, 77, 78, 79, 79, 80, 81, 82, 82, 84, 85, 85, 86, 86, 85, 86, 86, 86, 87, 87, 87, 87, 87, 86, 85, 84, 84, 83, 82, 81, 80, 79, 79, 79, 78, 77, 77, 76, 76, 76, 75, 75, 74, 73, 71, 70, 69, 68, 67, 66, 66, 65, 64, 63, 62, 61, 60, 60, 60, 60, 60, 61, 61, 62, 62, 64, 64, 64, 65, 66, 67, 67, 67, 68, 68, 68, 69, 68, 68, 67, 67, 66, 66, 66, 65, 65, 65, 64, 63, 62, 62, 61, 61, 61, 61, 61, 62, 61, 61, 61, 61, 60, 60, 60, 60, 60, 60, 59, 59, 59, 58, 58, 57, 57, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 55, 55, 55, 55, 56, 56, 56, 56, 56, 55, 55, 55, 55, 55, 55, 56, 57, 58, 58, 57, 57, 58, 58, 59, 59, 60, 61, 61, 61, 62, 62, 62, 62, 62, 61, 61, 61, 61, 60, 60, 59, 59, 59, 58, 59, 59, 59, 59, 59, 58, 58, 58, 58, 58, 58, 59, 59, 60, 60, 60, 60, 61, 61, 62, 62, 63, 63, 64, 65, 66, 67, 68, 69, 69, 70, 71, 72, 73, 74, 75, 76, 77, 77, 78, 80, 81, 82, 83, 83, 84, 84, 84, 84, 84, 85, 85, 85, 84, 84, 84, 84, 84, 85, 84, 84, 84, 84, 84, 84, 84, 84, 85, 85, 85, 85, 86, 86, 87, 87, 87, 88, 88, 89, 89, 90, 90, 91, 91, 90, 90, 90, 90, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 91, 91, 91, 91, 91, 90, 90, 90, 90, 90, 90, 89, 89, 88, 88, 87, 87, 86, 86, 85, 85, 85, 85, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 85, 85, 85, 86, 86, 86, 87, 87, 86, 86, 86, 85, 85, 85, 85, 85, 84, 84, 83, 83, 83, 83, 82, 81, 81, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 79, 80, 80, 80, 80, 80, 80, 79, 79, 79, 78, 78, 78, 77, 77, 77, 77, 76, 75, 75, 74, 73, 72, 72, 71, 70, 70, 69, 69, 69, 68, 68, 68, 67, 67, 67, 66, 66, 66, 66, 66, 65, 65, 64, 63, 63, 62, 61, 61, 61, 60, 60, 60, 60, 60, 60, 60, 60, 60, 59, 59, 60, 60, 60, 60, 61, 62, 62, 61, 62, 62, 61, 62, 61, 61, 61, 61, 61, 61, 60, 60, 60, 60, 60, 59, 59, 59, 59, 59, 58, 58, 58, 58, 59, 60, 61, 61, 61, 61, 61, 62, 62, 62, 62, 62, 62, 62, 62, 63, 64, 64, 64, 64, 64, 64, 64, 65, 65, 65, 66, 67, 67, 67, 68, 67, 67, 67, 68, 69, 70, 70, 70, 70, 70, 70, 70, 70, 70, 71, 71, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 73, 73, 72, 72, 71, 71, 70, 70, 69, 68, 68, 68, 67, 67, 66, 66, 65, 65, 65, 65, 66, 66, 67, 67, 66, 66, 66, 67, 67, 67, 68, 68, 69, 69, 69, 69, 70, 70, 71, 71, 72, 72, 73, 73, 73, 73, 73, 73, 74, 75, 76, 76, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 78, 78, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 76, 76, 76, 76, 77, 77, 77, 76, 76, 75, 75, 74, 74, 74, 74, 74, 74, 74, 74, 73, 73, 72, 72, 72, 72, 71, 72, 71, 72, 71, 71, 71, 70, 70, 70, 70, 70, 70, 69, 69, 69, 69, 69, 69, 69, 69, 69, 68, 68, 68, 69, 68, 69, 68, 68, 68, 68, 67, 67, 66, 66, 66, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 64, 63, 63, 63, 64, 65, 66, 66, 66, 66, 66, 67, 67, 67, 67, 68, 67, 68, 68, 68, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 70, 70, 70, 71, 71, 71, 71, 71, 71, 72, 73, 74, 75, 76, 76, 77, 78, 79, 80, 81, 82, 84, 85, 86, 86, 86, 87, 87, 88, 88, 88, 88, 89, 89, 90, 90, 91, 92, 92, 93, 94, 94, 95, 95, 96, 96, 96, 96, 96, 96, 96, 96, 95, 94, 94, 94, 93, 92, 91, 90, 90, 90, 89, 88, 88, 87, 86, 86, 85, 85, 84, 84, 83, 82, 81, 80, 80, 79, 78, 78, 77, 77, 76, 76, 75, 75, 75, 75, 75, 76, 76, 76, 76, 75, 75, 75, 75, 75, 75, 76, 76, 76, 77, 77, 77, 77, 77, 77, 77, 78, 79, 79, 80, 80, 80, 81, 82, 83, 83, 84, 84, 84, 85, 85, 85, 86, 86, 87, 87, 87, 88, 88, 89, 90, 90, 91, 91, 92, 92, 92, 92, 93, 93, 93, 93, 93, 93, 93, 94, 95, 95, 96, 96, 96, 96, 96, 96, 95, 96, 96, 96, 96, 96, 96, 95, 95, 95, 95, 95, 95, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 95, 95, 95, 94, 94, 94, 94, 94, 94, 95, 95, 96, 97, 98, 99, 99, 100, 101, 101, 102, 103, 103, 104, 104, 104, 104, 104, 104, 104, 104, 105, 105, 106, 106, 106, 106, 106, 105, 106, 106, 106, 106, 107, 107, 107, 107, 108, 108, 108, 108, 107, 107, 107, 106, 106, 106, 106, 106, 105, 104, 103, 102, 102, 102, 102, 102, 102, 102, 102, 102, 101, 101, 101, 101, 100, 100, 99, 98, 98, 97, 96, 95, 94, 94, 93, 92, 92, 91, 90, 90, 90, 89, 89, 88, 88, 87, 87, 87, 86, 86, 86, 85, 85, 85, 84, 84, 83, 83, 84, 84, 85, 86, 87, 87, 88, 88, 89, 89, 90, 91, 93, 94, 96, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 110, 111, 112, 113, 115, 116, 117, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 119, 119, 120, 120, 120, 120, 120, 120, 120, 119, 119, 119, 118, 117, 117, 117, 116, 116, 116, 116, 115, 114, 113, 113, 112, 111, 111, 110, 110, 109, 109, 108, 107, 106, 106, 106, 107, 107, 108, 107, 107, 106, 105, 104, 104, 103, 103, 102, 102, 101, 100, 99, 99, 99, 98, 97, 97, 96, 95, 95, 94, 94, 93, 92, 91, 91, 91, 90, 91, 91, 90, 89, 89, 88, 88, 88, 87, 87, 87, 87, 87, 87, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 85, 85, 85, 85, 85, 85, 85, 84, 83, 82, 81, 81, 80, 80, 80, 80, 80, 79, 79, 79, 79, 79, 79, 79, 79, 78, 78, 78, 78, 78, 77, 77, 77, 77, 77, 77, 77, 78, 77, 77, 77, 77, 78, 78, 79, 79, 80, 80, 81, 82, 82, 82, 82, 83, 84, 84, 85, 86, 86, 87, 87, 88, 88, 89, 90, 90, 91, 91, 92, 93, 94, 95, 96, 96, 97, 98, 98, 99, 99, 100, 100, 101, 101, 102, 102, 102, 102, 102, 102, 103, 103, 104, 104, 104, 105, 105, 106, 106, 106, 106, 105, 105, 105, 105, 105, 104, 104, 103, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 92, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 92, 92, 92, 92, 92, 92, 92, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 92, 92, 92, 93, 93, 93, 93, 93, 94, 94, 95, 95, 95, 94, 94, 93, 92, 92, 92, 91, 91, 90, 90, 90, 89, 89, 88, 88, 88, 87, 87, 86, 86, 86, 85, 85, 85, 84, 84, 83, 82, 82, 81, 80, 80, 80, 79, 79, 78, 78, 78, 77, 77, 77, 77, 77, 76, 76, 76, 75, 74, 74, 73, 73, 73, 72, 72, 71, 70, 69, 68, 66, 65, 63, 62, 61, 59, 58, 57, 56, 55, 54, 53, 52, 51, 51, 50, 49, 49, 49, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 47, 48, 48, 48, 49, 49, 49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51, 51, 51, 52, 52, 51, 51, 50, 50, 50, 50, 50, 50, 50, 49, 49, 48, 47, 46, 46, 45, 45, 44, 44, 45, 45, 45, 45, 46, 46, 47, 47, 46, 46, 46, 47, 47, 47, 47, 48, 47, 47, 47, 47, 46, 46, 47, 47, 47, 47, 46, 45, 44, 43, 42, 42, 42, 42, 42, 42, 42, 41, 41, 40, 41, 41, 42, 43, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 69, 70, 70, 71, 72, 72, 73, 74, 75, 75, 75, 76, 76, 77, 77, 78, 78, 79, 80, 81, 83, 84, 86, 87, 88, 88, 89, 90, 90, 91, 92, 92, 93, 94, 94, 94, 95, 95, 95, 96, 97, 98, 99, 99, 99, 99, 99, 99, 98, 99, 99, 100, 100, 100, 100, 100, 99, 99, 98, 98, 98, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 88, 87, 86, 85, 85, 84, 83, 82, 81, 80, 79, 78, 78, 78, 77, 77, 76, 76, 75, 74, 74, 73, 73, 72, 71, 71, 71, 70, 69, 69, 68, 67, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 55, 54, 53, 51, 50, 49, 47, 46, 44, 43, 41, 40, 39, 37, 36, 35, 34, 33, 33, 33, 33, 32, 32, 32, 32, 33, 34, 35, 36, 36, 37, 37, 38, 39, 40, 41, 42, 43, 43, 43, 43, 43, 43, 43, 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 46, 45, 45, 45, 44, 44, 44, 43, 42, 41, 40, 40, 39, 39, 38, 38, 38, 37, 36, 36, 35, 34, 33, 33, 32, 32, 32, 31, 30, 30, 29, 29, 29, 29, 28, 28, 28, 28, 28, 29, 30, 30, 30, 29, 29, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 27, 27, 27, 26, 26, 26, 26, 25, 25, 25, 24, 23, 23, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 21, 21, 21, 21, 20, 20, 20, 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 19, 18, 18, 18, 17, 17, 18, 18, 18, 18, 18, 18, 18, 19, 19, 21, 22, 23, 24, 24, 24, 24, 24, 25, 25, 26, 27, 28, 28, 29, 29, 30, 30, 30, 31, 31, 31, 30, 30, 30, 31, 31, 31, 32, 31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 29, 28, 28, 27, 27, 27, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 28, 28, 28, 28, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 29, 29, 29, 29, 30, 30, 30, 31, 31, 32, 32, 32, 32, 33, 34, 35, 35, 36, 36, 37, 37, 37, 37, 37, 38, 38, 38, 39, 39, 39, 40, 41, 41, 42, 42, 43, 44, 44, 45, 45, 46, 47, 48, 49, 50, 52, 54, 55, 57, 58, 60, 62, 63, 64, 65, 66, 67, 67, 68, 69, 71, 72, 73, 74, 74, 74, 75, 76, 76, 77, 77, 78, 78, 79, 79, 79, 79, 80, 80, 80, 81, 81, 81, 81, 80, 80, 79, 79, 78, 77, 77, 76, 76, 75, 75, 75, 76, 76, 75, 75, 74, 74, 73, 73, 73, 73, 73, 73, 73, 74, 74, 73, 73, 74, 74, 74, 75, 75, 76, 76, 76, 77, 77, 78, 79, 80, 82, 83, 84, 85, 85, 86, 87, 88, 89, 89, 90, 90, 91, 91, 92, 92, 92, 92, 91, 90, 90, 89, 89, 88, 87, 86, 86, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 85, 85, 85, 85, 84, 84, 84, 83, 83, 84, 83, 84, 84, 84, 84, 84, 84, 85, 85, 86, 86, 87, 88, 88, 89, 90, 91, 91, 92, 92, 92, 92, 93, 92, 92, 92, 92, 91, 90, 90, 89, 88, 88, 87, 86, 85, 84, 83, 82, 81, 81, 81, 80, 80, 79, 79, 78, 78, 78, 79, 79, 80, 80, 80, 81, 81, 81, 82, 82, 82, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 81, 81, 81, 81, 81, 81, 81, 81, 81, 82, 82, 82, 83, 84, 84, 85, 86, 87, 87, 87, 87, 88, 88, 88, 89, 89, 89, 89, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 87, 86, 85, 85, 84, 84, 83, 83, 82, 82, 82, 82, 82, 82, 82, 82, 81, 81, 81, 81, 81, 81, 81, 82, 82, 83, 83, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 87, 87, 88, 88, 88, 88, 88, 88, 88, 88, 89, 89, 89, 89, 89, 88, 88, 87, 86, 86, 86, 86, 86, 85, 85, 84, 84, 84, 83, 83, 82, 82, 81, 81, 81, 81, 82, 82, 82, 82, 81, 81, 80, 80, 79, 79, 78, 77, 77, 76, 76, 75, 75, 74, 74, 74, 74, 73, 73, 73, 73, 73, 74, 74, 73, 73, 73, 72, 72, 71, 72, 72, 72, 72, 71, 71, 71, 71, 71, 70, 70, 69, 68, 68, 68, 68, 69, 69, 68, 68, 68, 67, 67, 66, 66, 65, 64, 64, 63, 62, 62, 61, 61, 60, 60, 60, 60, 61, 61, 60, 60, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, 60, 60, 60, 60, 60, 61, 61, 62, 62, 61, 62, 62, 62, 62, 63, 64, 64, 65, 65, 64, 64, 63, 64, 64, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 64, 64, 64, 64, 64, 63, 63, 63, 62, 62, 62, 62, 62, 62, 61, 61, 60, 60, 60, 59, 59, 60, 60, 60, 59, 59, 58, 58, 58, 59, 59, 60, 61, 61, 61, 61, 61, 61, 61, 60, 60, 60, 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, 60, 61, 60, 60, 61, 61, 61, 62, 63, 63, 63, 64, 64, 64, 64, 65, 64, 64, 64, 64, 64, 64, 65, 65, 66, 67, 67, 68, 68, 69, 70, 70, 71, 71, 71, 72, 72, 73, 73, 74, 74, 74, 74, 73, 73, 73, 74, 75, 75, 76, 77, 77, 77, 76, 76, 75, 76, 76, 76, 76, 76, 76, 76, 75, 75, 75, 75, 75, 76, 76, 75, 76, 76, 76, 76, 76, 76, 76, 77, 76, 76, 76, 76, 76, 76, 75, 75, 74, 74, 73, 73, 72, 72, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 72, 72, 72, 72, 71, 71, 70, 70, 69, 68, 68, 67, 67, 66, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 65, 65, 64, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 67, 67, 67, 67, 67, 67, 67, 68, 68, 69, 69, 70, 70, 71, 72, 72, 72, 73, 73, 74, 74, 74, 75, 75, 75, 76, 76, 76, 76, 76, 76, 76, 77, 77, 78, 78, 78}; double perlin2[] = {0.16405449341855044, 0.16436980913340313, 0.16458945958484075, 0.16453406077584218, 0.1659403852878051, 0.16745543148524297, 0.16570745505522566, 0.16743756241980742, 0.17137382993514716, 0.17464092923996752, 0.1750265250509374, 0.17331893612768565, 0.1682536867711211, 0.16581239569962497, 0.16573755117057234, 0.16723396631889997, 0.16815777714078034, 0.17032851679019345, 0.17268266761366027, 0.1740365499374192, 0.17307081746466868, 0.17392228659653347, 0.17167375305156438, 0.16974960448024784, 0.1680727930339041, 0.1699982572072248, 0.1732817491669283, 0.1792438470956621, 0.18670192848081552, 0.1953648718449194, 0.200642329449582, 0.20502474940271118, 0.20879325233182117, 0.21263869972426536, 0.21611389553712645, 0.21842440649030948, 0.2229341972452273, 0.22487984326964192, 0.22519443936648617, 0.22354266104225148, 0.22272052821688224, 0.22455237509297188, 0.2242283186274469, 0.221839503135723, 0.2190332525205975, 0.2181743681415168, 0.2130958492418288, 0.20823212428249063, 0.20559557392455036, 0.20511846385356083, 0.20402108565092505, 0.20073948157948782, 0.20151669474838316, 0.2014136717881629, 0.20208403747931047, 0.20217710011657086, 0.20600533173570643, 0.21243940874652656, 0.2181851134074794, 0.22154886601627843, 0.22637987921702432, 0.23320264586807937, 0.23670168431989266, 0.2409551435465549, 0.247215902989917, 0.25261097468252497, 0.2599378796532515, 0.266045603351089, 0.27240011592056024, 0.2768534429984112, 0.2828935293779027, 0.29065540638064097, 0.2978095430431402, 0.3029927001902603, 0.30775383886916247, 0.3117880902790865, 0.31421899675535786, 0.3140579708636062, 0.31316337668980493, 0.3133494293922107, 0.3128321234051292, 0.3154798851072262, 0.31636897048064067, 0.31681273955241285, 0.315076473887383, 0.31422206792559026, 0.30777864904888314, 0.30242948474271086, 0.2978664765104692, 0.2964449886794669, 0.2923512610231875, 0.28359448287646966, 0.2742264437611754, 0.26524627881163315, 0.2565473894794186, 0.2503083114012604, 0.2462945181626665, 0.24462744903505568, 0.2437522702185654, 0.24349120423782541, 0.24040242029241773, 0.2377966531897683, 0.23426938497610122, 0.23414651139442316, 0.2370003146009213, 0.2387266572772933, 0.24148518299210248, 0.24378111150583642, 0.2471844508496927, 0.2507999432194392, 0.2533169398528967, 0.2586900996603624, 0.26650847963616064, 0.27496594542401526, 0.28266652696525213, 0.28907511233426647, 0.29472876432265327, 0.2958379451661154, 0.298029316858483, 0.3021943718332744, 0.30363370450933114, 0.30979717274564106, 0.31582377176572, 0.3189548915427271, 0.3202044211110815, 0.3227683131517399, 0.3260358908752648, 0.33104288674290977, 0.3351334890069964, 0.3388985501282153, 0.34188444555110636, 0.3477751155167215, 0.3537806180013186, 0.3592211356869619, 0.3636979001345938, 0.3690863992956245, 0.37414481502489866, 0.37683900239292656, 0.37867659603229675, 0.3823619326588035, 0.3886332948662338, 0.39395016326186005, 0.40210096155712394, 0.4077565125728066, 0.41350572543952974, 0.4173408460488609, 0.4200712392469245, 0.4225420113487327, 0.4255956057393897, 0.4275043386202841, 0.42964325754820093, 0.43002901111191905, 0.4312724408067467, 0.4317051101676594, 0.42967241239778503, 0.4284688945529887, 0.42814855407863306, 0.42968630145204056, 0.4298728283990974, 0.42865618959489055, 0.4289592172172587, 0.43129490059458353, 0.4361218594306839, 0.43853337800220693, 0.4391459090406834, 0.438533858360857, 0.4379608662457583, 0.4353523057250039, 0.4341992656094613, 0.4331633748955035, 0.4319234069346669, 0.42591530893434243, 0.4183587840821529, 0.41255793302459204, 0.40543700131678234, 0.39960135251916973, 0.39724344330309425, 0.3969702039723823, 0.3967459898626417, 0.39565148269661155, 0.3924947330448972, 0.38562345024364697, 0.3779432293555838, 0.37143379342287625, 0.3646442676809551, 0.3603748005007708, 0.3546940914726268, 0.34952230627060815, 0.3450927841527991, 0.34085496464403, 0.3383907073147426, 0.3348514583649542, 0.3319887955871138, 0.33009431455504656, 0.32871087932077286, 0.3271139537374888, 0.3255834873702208, 0.3255659686196287, 0.32447204458341794, 0.3216812090573595, 0.31940827780842307, 0.31826545641964776, 0.31703228266266714, 0.3146830425848377, 0.3123085307781673, 0.3111908000233309, 0.3156093453406463, 0.3209358467247551, 0.326320543290199, 0.33060805463103626, 0.3337479605662087, 0.33869474749594114, 0.342760137125999, 0.34697276979171693, 0.3507096373761861, 0.3556152189738581, 0.3608781288949752, 0.367034977164464, 0.36982848375317895, 0.37144731531590214, 0.3760851476619161, 0.3843694313032739, 0.3903071773887103, 0.39975310403502046, 0.4112203781559848, 0.42163789045713995, 0.4319441707760996, 0.44305961997968085, 0.45243699337271026, 0.46152824460742137, 0.47198509665874167, 0.48111290971419457, 0.4887354281786429, 0.4943541536946096, 0.4984905037874824, 0.5035420518913132, 0.510955860257822, 0.5201409907762476, 0.5268084236715772, 0.5301923871557969, 0.5334453312176263, 0.5396102073736269, 0.5464423651621501, 0.5524463209379151, 0.5582282548866908, 0.5609625304964277, 0.5622306490726081, 0.5603953506196252, 0.5592579018424871, 0.5599037890687546, 0.56106790979302, 0.5610363776025057, 0.5649871473369453, 0.5689786696524907, 0.5733418991393427, 0.5768291584252632, 0.579265536489147, 0.5810559738043258, 0.5828707168017346, 0.5850889152645586, 0.5871761998365878, 0.5928760471415772, 0.5971204654490119, 0.6011866887760265, 0.6051433601772565, 0.607846712070559, 0.611310235988724, 0.61295045530575, 0.6145031691589059, 0.6170849651563151, 0.6203991600058133, 0.6252472819516974, 0.628019623910508, 0.6305107256850632, 0.632004777374626, 0.6342237235241919, 0.6354125162052908, 0.6389998003111002, 0.6422355564168893, 0.6464496392784856, 0.6534342636692727, 0.6563302757243809, 0.6625732298100524, 0.6706993531597092, 0.678993645112149, 0.6846135980646526, 0.6873056219290624, 0.6928806858807154, 0.6959839568383154, 0.6977005252725947, 0.7012882324435276, 0.7036026601887866, 0.7062633599537815, 0.7086894088066321, 0.7098443778327179, 0.7121005963028857, 0.7150645821025318, 0.715916106853583, 0.7168321513466285, 0.718252063963596, 0.7190430674683633, 0.7183869367021433, 0.7182873142057414, 0.7185858505997446, 0.718584314391731, 0.7193763255220403, 0.7159233269549787, 0.7111305700316756, 0.7064039031717504, 0.7007905649092276, 0.6981546242312626, 0.6949438579751316, 0.693927557996346, 0.6930797194228917, 0.6936353643250982, 0.6924551611581612, 0.690706102132397, 0.6884895824756344, 0.6859611279745246, 0.6848591106310974, 0.6851422127378153, 0.6875325015543715, 0.6899011915918091, 0.6938268852211917, 0.6995541717763896, 0.6999842088570912, 0.7020392459002702, 0.700956585030976, 0.7008957327298857, 0.7022999583019269, 0.7018514838129516, 0.7032299102762805, 0.7039822716946094, 0.704382419360784, 0.7021781183680645, 0.7021044548692471, 0.7025495681277638, 0.7038255321448313, 0.7043823747439591, 0.7048183960629045, 0.7034452258794054, 0.6995274072095597, 0.6920151876196708, 0.6853090957990161, 0.6797767808924607, 0.6769101682579156, 0.6740202338552108, 0.670322388863834, 0.6663566270953357, 0.6606398751756286, 0.6577004627291686, 0.6567903602942727, 0.6555754628241218, 0.6547174699041737, 0.6546258507930525, 0.6535863691104242, 0.6511204411476353, 0.6492850218592419, 0.6462601939002788, 0.6420493497932278, 0.6385263104424943, 0.6321478179484012, 0.6218119956697439, 0.6124052904714649, 0.6022172899525925, 0.5925497308226024, 0.5853237125339372, 0.5753504618980195, 0.5670477558109676, 0.559230606138134, 0.5516052704254683, 0.5399223764706852, 0.5305038982364052, 0.5194560453217768, 0.5083691506771943, 0.4991178545709782, 0.49046913742399617, 0.48172574570022847, 0.4754591238727188, 0.4720850305698783, 0.4667876882908209, 0.46207691690861286, 0.4585688639547899, 0.45499093753707615, 0.45396906218371, 0.453324148315132, 0.45225777415892304, 0.4534986348832597, 0.45363475715740864, 0.45387457404901865, 0.45504154324854695, 0.4562574765944757, 0.45644438600071624, 0.4581322195422943, 0.4619316842620906, 0.4635388769754862, 0.4616894164791441, 0.45933439049703706, 0.4565024399076758, 0.4519757779638517, 0.4490332910771777, 0.44562871396621107, 0.44227303473738144, 0.43795897623358826, 0.4343579319337094, 0.43121309151654064, 0.42538109459348905, 0.41985460704352423, 0.41406082949905965, 0.4081853447466247, 0.40382857277958895, 0.40413055547913335, 0.40683994363739984, 0.40876515765983606, 0.41004536849577716, 0.4110839090940642, 0.41038243365001403, 0.4076700749750961, 0.4066274777976282, 0.4041613505253614, 0.40226030422172215, 0.4038276370597704, 0.402828249528849, 0.40216163008660677, 0.4010721113023049, 0.39997462307702364, 0.3991484294155273, 0.3969337923304753, 0.39607873753986117, 0.39677138751624935, 0.39551821558091593, 0.39537259478312137, 0.3971046865823285, 0.3990158205542275, 0.4024088987787383, 0.4020057263505775, 0.39986343314673084, 0.3961277204088461, 0.3929717576144255, 0.39245660638376423, 0.39264109486535875, 0.39462748250972085, 0.3967776141645626, 0.39791484569262253, 0.39656632506212103, 0.3994593332624334, 0.40409654420625296, 0.4119302446448318, 0.41770177130907926, 0.423427345230937, 0.42988007851200427, 0.43570472425437795, 0.44245354609506843, 0.4500008199301435, 0.457717204735447, 0.46384547031575746, 0.4673206920284319, 0.4712388102392258, 0.4740260411936774, 0.4785459298242611, 0.484991589185309, 0.4896834907420414, 0.4942076382780219, 0.4991495478393608, 0.501218980055189, 0.5035097771658148, 0.5013170021439006, 0.49927161712347146, 0.4955082550936845, 0.4919659802607409, 0.48996091137245146, 0.49012709577677654, 0.49035583868456833, 0.49206593508434554, 0.49474839989236363, 0.49563721040196196, 0.49265986879416124, 0.4887354415742959, 0.4837994270314573, 0.47992214998776805, 0.48001772657392355, 0.4805355267463271, 0.4853215126094959, 0.48987187543978283, 0.4919211687445407, 0.49241705934928043, 0.494291243948571, 0.4961368758080087, 0.4971092501417724, 0.4954713683660696, 0.49457344813568266, 0.49504204726843803, 0.4917852154427367, 0.48890567029700727, 0.4854110416737122, 0.48393701018320295, 0.4805835522103272, 0.48040602391430004, 0.47811971172856926, 0.47580616458036146, 0.47543115018615517, 0.47244986523628635, 0.4672327840164358, 0.46613545209864415, 0.4669246156250102, 0.4671698553880872, 0.465999525416522, 0.4658849607592951, 0.46669056979719536, 0.4683438583543723, 0.4681703182194631, 0.4674843081437072, 0.4674192485939329, 0.4678638205847102, 0.4670542878769581, 0.46778917798677583, 0.46571205421982537, 0.46545810999858234, 0.46426036607693766, 0.46294087121197514, 0.46210387191566044, 0.46467748997770963, 0.46878310553467456, 0.47152727179743587, 0.4728659135384254, 0.475579861521462, 0.47665623165189314, 0.4787058364321835, 0.480538550415495, 0.48198942446002396, 0.4830197243960576, 0.4845457325660537, 0.4856983880841847, 0.485868882166486, 0.4854130517034583, 0.4869364110326022, 0.4858535557111633, 0.485903541648895, 0.48947089338807537, 0.4921671610224285, 0.49167567559712055, 0.495064719480025, 0.4960796251667581, 0.494170915561311, 0.49352431250567663, 0.4914455505317551, 0.4891805281637835, 0.4854760089463993, 0.48121029779447483, 0.47885374520223, 0.47516331563748926, 0.471914479375848, 0.46745809906696745, 0.4652175729561263, 0.4660222297345215, 0.46590092217186135, 0.4654326258683815, 0.46623407336203615, 0.46845526962875056, 0.4730852806345525, 0.47811610446327596, 0.47716530159678405, 0.4761998358932013, 0.4767426193859602, 0.47835067779844526, 0.48227434469819674, 0.4868122042371375, 0.49310305305392166, 0.4977970297396809, 0.5016572076093289, 0.5041410335390798, 0.5065347496428181, 0.5083418206641913, 0.5134889300781195, 0.5202137772832466, 0.5239146760441264, 0.5256059331427695, 0.52517089377472, 0.5264754603607946, 0.5294869643464107, 0.5305023068316024, 0.5321563360099771, 0.5310804072892087, 0.5309312700535158, 0.5324276552186461, 0.5310260252045494, 0.5336574145127606, 0.5321257963870729, 0.5309920773200587, 0.5312357717716172, 0.532072906543856, 0.5335457230178812, 0.5365645697431585, 0.5382158672836993, 0.5385219962944368, 0.5401148845282381, 0.5407442959870983, 0.5427964480215639, 0.5448023718049784, 0.5441989597369695, 0.5461757913229809, 0.5451613815825422, 0.5412806779070061, 0.5379781371294821, 0.5368883917462407, 0.5339594399225827, 0.533264089570135, 0.5309758358585971, 0.5307139237214782, 0.531352117512198, 0.5288727606350926, 0.5252320208909091, 0.5214531601453751, 0.5171057171078292, 0.5118626143913857, 0.5089507230403135, 0.5032644478545774, 0.498332288727419, 0.4927454732396821, 0.4904483459116424, 0.4880282105775824, 0.48351920737846865, 0.4794979673388725, 0.47671580740011893, 0.47484524369242637, 0.4716101718777348, 0.4704566910266607, 0.47019204863829106, 0.4717625589788194, 0.47207011034681345, 0.46944655877312347, 0.46760192202287515, 0.46460662718833334, 0.46132538716613797, 0.45960988918352347, 0.4570611268237939, 0.4546086686160645, 0.4532370684759107, 0.4544858968113041, 0.45668725265380367, 0.45641234804913694, 0.45822047033303653, 0.46186587786707656, 0.46591397183733746, 0.4688073798800197, 0.4734233181003275, 0.48002399580962574, 0.48972888857911745, 0.4967241284885326, 0.5013662069777779, 0.5047671967175316, 0.513158158043665, 0.5180206561922254, 0.5198944681542478, 0.5236510246770912, 0.5282972849878751, 0.5331013526598023, 0.539210265300157, 0.5439654122052833, 0.545672223524514, 0.5469845377007035, 0.5497862809264974, 0.5530295368485691, 0.555490747292835, 0.5576677371039149, 0.5590862569897335, 0.5614854440689449, 0.5588569182755632, 0.5565932935253769, 0.5579584482992593, 0.5586621150780304, 0.5605076921994523, 0.5623449150261213, 0.5638268428870198, 0.5656668884396476, 0.5650115265573906, 0.5676448120664493, 0.5693256940879076, 0.5716942967318053, 0.5736030663976174, 0.5720469231412143, 0.5700342345978968, 0.5661897750024508, 0.5579984585865558, 0.5508815722156171, 0.5430231369604154, 0.5381297698018461, 0.5318503566932458, 0.5293075210299242, 0.5268067259415777, 0.5227891102572486, 0.5178322916510434, 0.5134790397095849, 0.5091124050069565, 0.5043112415974258, 0.49839753655530156, 0.49538251014114526, 0.4878143833732651, 0.48235206476857145, 0.47919680674195275, 0.47840230153053626, 0.4790788164901323, 0.4803051518298206, 0.4819890050659804, 0.48411868137945, 0.485690379038636, 0.49066619703222486, 0.49482107951661325, 0.5014180119063906, 0.5080452491353822, 0.5120098388945892, 0.5156743742126083, 0.518827786033695, 0.5224065618653915, 0.5273049614205724, 0.5307081150423681, 0.530858145867287, 0.5300798946445194, 0.5301645371658108, 0.5316774730892926, 0.5301049861574872, 0.526879966422091, 0.5219630445794834, 0.5154850603643718, 0.5062536845009313, 0.5003341562697393, 0.4942595952175063, 0.48688771015523863, 0.4792992781413167, 0.47240495757763634, 0.46494761040270355, 0.45996871820078855, 0.45291472213295797, 0.4436205920372367, 0.4334614446303529, 0.4256801948854786, 0.4194109482267277, 0.4130359696874429, 0.4080394083805911, 0.4035452563577706, 0.3975814467047559, 0.38989054889369684, 0.3824883164441789, 0.3783123132810469, 0.37477171748094373, 0.3682616207836475, 0.3635368297459984, 0.35735190448237325, 0.3517826578982882, 0.3474198374676293, 0.3437987914643898, 0.33959220278332886, 0.3341064146207778, 0.32851607770307134, 0.3242851904842458, 0.3200010961661079, 0.32013291214998196, 0.32152896792852653, 0.3223372229417653, 0.3225740706074309, 0.32026055303893436, 0.31909588248300813, 0.31778523304229117, 0.31656363708123275, 0.31655747537433165, 0.31432038180494126, 0.3154934275921564, 0.3171244608966367, 0.3201074812518524, 0.3237748913246648, 0.3246943462439513, 0.3262800655303702, 0.32834637553933516, 0.3322559909693665, 0.33711010736069624, 0.3423554035054805, 0.34292447369806855, 0.34541400784617116, 0.3499300517333619, 0.35507806769165895, 0.3588684036870387, 0.3636037385809367, 0.3660446072746786, 0.3687721900124642, 0.3696803647754605, 0.3736423525993382, 0.37636512595062804, 0.38305472393099194, 0.39016990599297247, 0.3962152593810159, 0.3991292703811017, 0.39881618210228975, 0.3991543307931303, 0.39767309369848236, 0.39708557208552087, 0.3967477856499614, 0.3955190323301606, 0.3933653582166478, 0.39119196803931217, 0.3911817120912201, 0.39228256475406476, 0.39300144560717426, 0.3940204149761635, 0.3942255152769907, 0.3948773578776728, 0.3933025004958802, 0.3929261913117423, 0.39293343771101913, 0.3923526541791614, 0.3919121690753494, 0.3911784848251229, 0.38895999182978847, 0.3863581890498391, 0.3843894588427426, 0.38380604161459697, 0.38166374168512734, 0.38226101443717286, 0.3814794933702128, 0.3807970731191084, 0.38001274006736524, 0.38147960135074077, 0.3832728237149227, 0.3879328992419269, 0.39368861537006344, 0.3983952855966123, 0.40421215778658914, 0.40764748229966286, 0.4118839599775994, 0.41562037875335467, 0.4209285868760603, 0.4270607220894863, 0.43437637629681475, 0.43938202684449856, 0.44489702676513004, 0.4490975959726314, 0.4552188961374031, 0.4605466251694264, 0.4646005538658019, 0.46737399266837965, 0.46843306990570854, 0.4720338595014818, 0.477248866264401, 0.48352716851706956, 0.4870099389161804, 0.48982910571257987, 0.49230795781139897, 0.49707138883673013, 0.49950400585906335, 0.5037944032313775, 0.5079497361822396, 0.5092854351814581, 0.5129877997104603, 0.5129509183928672, 0.5125715423792967, 0.5128784530871561, 0.5142463569555471, 0.5173280623473976, 0.5211197482365163, 0.523213868391976, 0.5251533113670236, 0.5273350740596996, 0.5305834626427722, 0.5324553994192998, 0.5346629342150149, 0.5377767737050931, 0.5397415718588603, 0.5422825821888774, 0.5472403963192196, 0.5506269761475556, 0.55115486342681, 0.5511037688038123, 0.5483519682947173, 0.5474714760107868, 0.5454430829104352, 0.5428367648029865, 0.5410564261186176, 0.5409510229737133, 0.543249709956906, 0.545541219006608, 0.5474431923835638, 0.551258572029332, 0.5545433070734651, 0.5630105071288071, 0.5709338300194166, 0.5772210541426304, 0.5836225669458246, 0.5880518833071117, 0.5892831092337695, 0.5913905403393356, 0.5954232094585783, 0.6033838503751827, 0.6102727998431561, 0.6190380700509517, 0.6292198144294999, 0.6415329618222586, 0.6513267403749863, 0.6576049266761704, 0.6642394274691682, 0.6725977222586421, 0.6817819846129715, 0.688965787664828, 0.6949081585797814, 0.7031089519308104, 0.7116812975568099, 0.7179292964207835, 0.7253208143249921, 0.7321424796232558, 0.7397795643348327, 0.7466638668562698, 0.7530904935279633, 0.7595015505314807, 0.7652309045082204, 0.7699283395266385, 0.7740049300168336, 0.7805772630915404, 0.7853907503532593, 0.7909792738802724, 0.7973788238501422, 0.8062286679288999, 0.8144902554268483, 0.822496402987177, 0.8276125844773141, 0.8314377232833642, 0.8346063755764717, 0.8360801149782384, 0.839435790660355, 0.839626336411643, 0.8392002087348834, 0.8374732794973659, 0.8368972325137846, 0.8372556795622444, 0.8333685595359288, 0.8296199086245959, 0.8266897980476519, 0.8251390175216926, 0.8210667335987676, 0.8187500656653693, 0.815686487103334, 0.8130729040771946, 0.811519551582745, 0.809633793211389, 0.8106074296040433, 0.8101487883662549, 0.8103834548674848, 0.8096689362764097, 0.8107060410524547, 0.813092979840827, 0.8155643038849726, 0.8197723020685151, 0.8232617652886604, 0.8245906648746748, 0.8249859557790176, 0.8232324330670453, 0.8216952367040258, 0.8218889768500776, 0.8193361718657615, 0.8188984261478411, 0.8162388752099422, 0.8158578849846835, 0.817149817140833, 0.8176840598261489, 0.8179890904227414, 0.8181880190693667, 0.8226127129592864, 0.8292593011122109, 0.8347027673403895, 0.8378618850331668, 0.8394293616511442, 0.8422148800509184, 0.8437975210956479, 0.8457988138922127, 0.8505125036193645, 0.8566130067722446, 0.8621787803625817, 0.8669305385571747, 0.8701098949634534, 0.8730327127117484, 0.8712452565974402, 0.8711916651994103, 0.8705554218722823, 0.8688926628057002, 0.869497072114131, 0.8691401570962598, 0.8656000258539166, 0.8598595540997402, 0.8566959223985614, 0.850416016641479, 0.8434492104998463, 0.8365255512976936, 0.8304186703425205, 0.8260786992169692, 0.8180433482012648, 0.814298593069489, 0.8109827241197873, 0.8095755542834362, 0.8075038483943887, 0.8008901220401119, 0.7965768767815806, 0.7929846028061407, 0.7914049246150973, 0.7906172107401872, 0.7883610842742363, 0.7831608526511321, 0.7766570721131523, 0.7713340426782733, 0.7704206241511536, 0.7708864699262836, 0.7733691586863489, 0.7771072229889691, 0.7811640292848514, 0.7818702387978723, 0.7824044578310037, 0.781489907868797, 0.7811317952453684, 0.7815047935460879, 0.7815551572577646, 0.7827689701647496, 0.7852485271399892, 0.7862628321285005, 0.7842137412530809, 0.7846202736914746, 0.7829249756026953, 0.7792323799301445, 0.7757408070979321, 0.7742757548204025, 0.7730708513726464, 0.77064026230398, 0.766268697491627, 0.7645092979272289, 0.7642046400177119, 0.7609759106375247, 0.7575663049364342, 0.7528930650700746, 0.7502959311577755, 0.7499212250486822, 0.7488926759298731, 0.7460714050526569, 0.7426995245025496, 0.7402042119171535, 0.7372124621306936, 0.7347365258248016, 0.7344883488725211, 0.7362676248128267, 0.7389360334245718, 0.7422539621709493, 0.7430442730473733, 0.7432074685207131, 0.7419873701887668, 0.7405584693908944, 0.7417900760279736, 0.7422483994571446, 0.7415378486858961, 0.7427327305922325, 0.7453666591447804, 0.7463495139290213, 0.7457673178366807, 0.7474320132321323, 0.7475055534487288, 0.7453705067348132, 0.7431757190049719, 0.7429283958663875, 0.7416338716212655, 0.7442776689859446, 0.7462238634857504, 0.7459433134209434, 0.7458633809959583, 0.74486922420364, 0.7423506932390508, 0.7406661587808038, 0.7405176606737606, 0.7394747143416733, 0.7352309924581908, 0.729459103787862, 0.7240942621011865, 0.7190929517184806, 0.7174659180703342, 0.718327795981856, 0.7182104455001048, 0.7168086041860116, 0.7129940208898488, 0.7101860485948823, 0.7121315904712122, 0.7147317700826652, 0.7163864327651489, 0.7143860044616217, 0.7114072749591127, 0.7060493252097338, 0.7041341702333592, 0.7002121547257487, 0.6963210430585978, 0.690908787476483, 0.6879775291573778, 0.682833015628488, 0.6783311422489172, 0.6727243730381042, 0.6663250310543388, 0.6610860293974833, 0.6576415003249951, 0.6526090067593763, 0.6457518052492697, 0.6402647357906218, 0.6344764359877524, 0.627664536172602, 0.6197763973848748, 0.611073875145615, 0.603470773410825, 0.5995438625919866, 0.598500376395989, 0.594998457778049, 0.5923946396846068, 0.589334938780973, 0.5836394336593306, 0.5806284852928131, 0.5768167446516926, 0.5732573452965032, 0.5707728433432124, 0.5687966454266465, 0.5692495060320374, 0.5702903434589797, 0.5734818830460611, 0.5745783510603232, 0.5729707138896862, 0.5688239778406683, 0.5679951741255032, 0.5670677611529685, 0.5684547655681161, 0.5712314512105534, 0.5749048711842856, 0.5791494531984814, 0.5845574175586147, 0.5897432307983126, 0.5933875477304558, 0.5996803607379947, 0.6048431321903194, 0.6115557688105234, 0.6156014882076701, 0.6205111331595448, 0.6228024963613215, 0.6259820382982, 0.6277669432761193, 0.6267421890023056, 0.6265589905743852, 0.62258018819118, 0.6174531702266608, 0.6140450657355289, 0.6145138068024525, 0.6151853682417059, 0.6181530914074117, 0.6215261767342735, 0.6229512612661005, 0.6220089022751802, 0.6202715405266203, 0.6162856517971277, 0.6112886509709715, 0.6060844443132072, 0.6022908275418175, 0.6019622661688278, 0.6030729707042002, 0.604420829802093, 0.6034269145350347, 0.6021077286747772, 0.6030464112253431, 0.6007289472776195, 0.5979821240802468, 0.5945673003270592, 0.5925123583768083, 0.5914993135921216, 0.5927368380113528, 0.5912849239650472, 0.5865486143997174, 0.5846399621230034, 0.5854757335134493, 0.5854266498491945, 0.5827192628966791, 0.5779296726369495, 0.5752165759765074, 0.5715899869222775, 0.5698459753342072, 0.5690561889705472, 0.5679403543357008, 0.5663694025515142, 0.5655948620052357, 0.5640013093594354, 0.5637256850088566, 0.5645100134475438, 0.5632107012823854, 0.5586816365364811, 0.5526870902454791, 0.5489126939113265, 0.5477430156099297, 0.5439322314927656, 0.5396472262857342, 0.5375952048612875, 0.5354645749784417, 0.534166322826228, 0.5326673916357373, 0.528818911756302, 0.5232844051472751, 0.5185064113606778, 0.5178327878114657, 0.5164372669113423, 0.5139827123429294, 0.5123143732201285, 0.5086949336539608, 0.5037270155701995, 0.5000501317426304, 0.497652055484928, 0.49862583981891856, 0.49668835332169164, 0.49281104299586137, 0.49123264031954617, 0.48848316240012063, 0.4882901985481529, 0.4870305950752331, 0.48335635702278645, 0.4820671619041487, 0.4824095879152356, 0.4843376194010337, 0.48499144441623415, 0.48312742378530954, 0.47961844451088015, 0.4759612997067823, 0.4695646659790124, 0.4633717710217249, 0.45781684303377845, 0.45051360956408104, 0.444229554365981, 0.4350172933708299, 0.42810330740205954, 0.42331620822807053, 0.4158494859924055, 0.40809452053520184, 0.398675475734948, 0.3907726120683589, 0.3835888855634368, 0.377189650355177, 0.3694753211621966, 0.36590914933774654, 0.36390144713448447, 0.3610552841205422, 0.35855546315397135, 0.35354009702401773, 0.34959734582221974, 0.3461786480743418, 0.34354193344434103, 0.34180176560975656, 0.34162183624646536, 0.34215128213020723, 0.34210989007142395, 0.34176555966826777, 0.3402086939037893, 0.3392889927368977, 0.34100480786942566, 0.3415326129931304, 0.3409918257431593, 0.34330441788881116, 0.3437996518048622, 0.3448829910962752, 0.34441054049222053, 0.3406555027959687, 0.33884697771806643, 0.3362095195599322, 0.3359885583478096, 0.33439341727624583, 0.3317697014012232, 0.32978342804381044, 0.3271129688154111, 0.32712630701882733, 0.3256355669059948, 0.32138071586470063, 0.31973665177218813, 0.3168245457376296, 0.3118005260816875, 0.30625469242102094, 0.302619895314252, 0.3030886335656986, 0.3020833527909419, 0.30332094909629087, 0.3050335022016981, 0.30447433178069494, 0.304974650553545, 0.30673182376396485, 0.3087170863821927, 0.3119561247981066, 0.31751834295031783, 0.3215614710501206, 0.32725864111124003, 0.3292265384699364, 0.334641644920425, 0.3406202149121857, 0.3465434366590106, 0.3535993889379014, 0.3648365808566757, 0.3764169186811099, 0.3895400704109695, 0.3991492409949406, 0.40593565600897674, 0.4100686506795408, 0.4131696509298707, 0.4156945129104692, 0.418684929219192, 0.42832436619339576, 0.4366180338180657, 0.4438621928272052, 0.4481545552323784, 0.4513313790277032, 0.45325015234049126, 0.45624311789158695, 0.46084878591091, 0.4644162625959158, 0.4666809252428185, 0.46913190137804867, 0.47014795424026473, 0.4735338611354408, 0.4779764469822494, 0.48106883825208246, 0.4822141918967824, 0.4810687213232153, 0.48046803847572805, 0.47907290640008804, 0.48125420671623614, 0.48410018998896776, 0.4858271252306795, 0.4878724386939264, 0.4903817347323513, 0.4925868741091893, 0.4934208257360378, 0.4940434688218002, 0.49501623007250406, 0.4963711097961742, 0.49698071909039426, 0.5009750894157872, 0.5031045187067795, 0.50317590107895, 0.5015318698665299, 0.501631734470035, 0.5029304082750186, 0.50740497965553, 0.5127504951145172, 0.5167080287572303, 0.5181567889589779, 0.5191645902354212, 0.5234790622162426, 0.526826404448308, 0.5298014304097912, 0.5317956438766488, 0.5356877649846373, 0.5404285409283595, 0.5430768025963357, 0.5443628462631082, 0.548034556885212, 0.5537842667269209, 0.5584975157189827, 0.5612354775171764, 0.564367290693099, 0.5676742515447157, 0.5713871313269308, 0.5753970642472785, 0.5764496209224723, 0.5756922025023234, 0.5761153792060894, 0.577291325453331, 0.5775497140929495, 0.5778613532635397, 0.577893726339988, 0.5742017917601914, 0.5669483392559989, 0.5619049160761207, 0.556657602872048, 0.5486250268762748, 0.5411156391149405, 0.5355235389702544, 0.5275856428166654, 0.5185761135184741, 0.5092936133443499, 0.5026509778215731, 0.5003289320604102, 0.49838942618792836, 0.494410309431908, 0.49005908732603193, 0.48758160571164344, 0.4846765927182098, 0.4822251857109164, 0.48096130330890857, 0.4788365306971178, 0.4774021796186697, 0.4727260224580246, 0.46902093714944293, 0.46446270792583094, 0.45956643854605717, 0.4543151359783269, 0.45402603498618666, 0.45419915627545204, 0.4515155197654084, 0.4452858961526374, 0.441705813229207, 0.4432298647556167, 0.4432757140308747, 0.4455199750465906, 0.44804316832947244, 0.4489597273804638, 0.4504289011697403, 0.45481510564722777, 0.46043735016444937, 0.4639149948163958, 0.46936498203798704, 0.47347626949617966, 0.4789937089726345, 0.48332006619312695, 0.4881234585281291, 0.49251409405741803, 0.4987059223870323, 0.5067244024306072, 0.5126570518897936, 0.5171895658521616, 0.5247573224220844, 0.5320374402272272, 0.5396232611724344, 0.5470623974734474, 0.5534124575314441, 0.5587155206085969, 0.5638260100316224, 0.5690537246811217, 0.5736146229237767, 0.5774347978430203, 0.5819384999335344, 0.5868850685579765, 0.5940269643766567, 0.5992953042873419, 0.6063997419689855, 0.6108106160246489, 0.6138604553309391, 0.6156923069642878, 0.6176565670217995, 0.6180081673297201, 0.6200564677235431, 0.623775426989284, 0.6296150970660875, 0.6331266950683027, 0.6355319385623694, 0.6365553138758023, 0.6365350684270076, 0.6354217804688326, 0.6339388278979977, 0.631193607653615, 0.6293579267029615, 0.6230684737518599, 0.6146566806526168, 0.6069536229829874, 0.6021116723715639, 0.5979835164926698, 0.5943589994523555, 0.5869343379644871, 0.5803603797362342, 0.5738362237136351, 0.5682614457234967, 0.5618001106592868, 0.5568331799834059, 0.550987445833349, 0.5452588193995818, 0.5410758729959941, 0.5400001572222893, 0.5409387793585413, 0.5406560041191206, 0.538640331517616, 0.5369808637895634, 0.5322259651746402, 0.5262576587075426, 0.521323286636374, 0.5165116996765932, 0.5152274294040028, 0.5142496194681321, 0.5134437091842835, 0.5129438287652882, 0.511135124348927, 0.5087044555479018, 0.5101712812055055, 0.5102443033149181, 0.5102007287587567, 0.5097949555780289, 0.5069983337252246, 0.5040939435392116, 0.49644622222813395, 0.488985265693496, 0.48348256959307756, 0.4784380832077874, 0.47834031201071275, 0.4776340748020242, 0.4763146841629148, 0.4722506368171408, 0.4673608302856983, 0.4641655915292885, 0.4605114501089317, 0.45654662736922824, 0.45147195674500507, 0.4474160767643253, 0.4444312615192368, 0.4425220922594561, 0.4395568404024353, 0.4369760700943665, 0.437258570834445, 0.43809082723063536, 0.43638622563642354, 0.4347724635411117, 0.43478900901662626, 0.4345629910502305, 0.4333582381023162, 0.4326604187367527, 0.4315327779581743, 0.4290867176615201, 0.42828889447486845, 0.42924336261169, 0.43457993405127854, 0.44053958237722135, 0.4440334215923051, 0.44732451549240204, 0.44770676997366815, 0.44970156482333473, 0.44896643454434715, 0.44588558041186993, 0.44628316067268614, 0.4451076532152545, 0.4466181869780822, 0.4467863495414356, 0.4463612203428395, 0.447304176148289, 0.4470894372689375, 0.44918485427810545, 0.45120404301773404, 0.45178644307030424, 0.4502709880056356, 0.4532367423497403, 0.4540345798854047, 0.45525849403554497, 0.4571122327292339, 0.45967543207001654, 0.4640271305670976, 0.46891659607743263, 0.4724985186322699, 0.47396287198332815, 0.47609860043989405, 0.4771506446905366, 0.4799357717575349, 0.4820605395196688, 0.4832412147622364, 0.48633046181438677, 0.4913032006479562, 0.49759148256913516, 0.5022648575511169, 0.5088977998220369, 0.5143529739324154, 0.5154802293713646, 0.5149379576134298, 0.5156425068411034, 0.5185714062696776, 0.5202470409866946, 0.5274418876597431, 0.5333334374951998, 0.5378609874410831, 0.5415470039764354, 0.5444429393086948, 0.5493436089486685, 0.5546486423497434, 0.558556102787636, 0.5627086781782068, 0.5690653195175664, 0.5733088473019338, 0.5741163107262024, 0.5794446292550424, 0.586401505066834, 0.5910856530259146, 0.594669974060758, 0.5962737497154836, 0.6003914298585007, 0.6076038798062088, 0.6147075555145761, 0.6187405795506856, 0.6239649389580646, 0.6304147944280142, 0.6338199563277981, 0.6353193067620324, 0.6353217421581048, 0.6346758477107581, 0.6357911127688675, 0.638437840711349, 0.6401189291526314, 0.6401904329275095, 0.6408381741206667, 0.6420076378391295, 0.6425327123811115, 0.6441558384035763, 0.6434982790388114, 0.6419703911492959, 0.6398353855257588, 0.6371154521910738, 0.6347193598381264, 0.6348024432309245, 0.6360420500798669, 0.6364295582928831, 0.6401672985551329, 0.640720580010984, 0.6406352231906249, 0.6402749963306413, 0.6415448741094619, 0.639924317955524, 0.6380449396488534, 0.6376571046347776, 0.6372296297962654, 0.6349876857783705, 0.6322074314220569, 0.6289684334940062, 0.6267088670420488, 0.6262705546364843, 0.6257216038367529, 0.6225102025053193, 0.619878039153885, 0.6174041032348618, 0.6140900736717382, 0.6110112377506661, 0.6101337113054596, 0.607191466991634, 0.6036650949179978, 0.5994235104126082, 0.5940680614752414, 0.5880120811627879, 0.5800012730469504, 0.5764571456598763, 0.5724995758137192, 0.568445475728615, 0.5629879313218885, 0.5556742602606917, 0.5502551685978168, 0.5468845287520006, 0.5407705769858342, 0.5354869967495308, 0.5305656366237963, 0.5242961339441119, 0.5182296437220831, 0.5139301142939059, 0.5110997532662627, 0.5111222097392535, 0.5111398256329421, 0.5137525718560901, 0.5190939254406308, 0.525862415395197, 0.5337196804540159, 0.541796887224794, 0.5484000604087435, 0.555712287081198, 0.5631929772169707, 0.5732491929617312, 0.5804166062892929, 0.5850745955295552, 0.5911645308273871, 0.5992405206804522, 0.6057505735275396, 0.6124655398160974, 0.6201635195567122, 0.6280521873262308, 0.6342939842324726, 0.6388353405403672, 0.6437645101566554, 0.6476874635410713, 0.6485415640354596, 0.649257870978785, 0.6531669436280573, 0.6515760093815497, 0.6505266134705467, 0.6507964849460027, 0.6533007439340325, 0.6534709042501393, 0.6538483003540324, 0.6560225726908774, 0.6570868587162043, 0.6567157808819398, 0.6542506856803184, 0.6543463882264309, 0.6508844888398054, 0.6478514193372302, 0.6469492169621113, 0.6474299482691616, 0.6488316724424469, 0.6525184128895868, 0.6543115155661374, 0.6571604064489195, 0.6575576209014231, 0.6551975361742182, 0.6524785137231136, 0.6509604870051415, 0.6480331614084449, 0.6469588158808912, 0.6478464390569024, 0.6467291977789899, 0.6453330819546363, 0.6418256428819044, 0.6411367619786781, 0.6405998362134336, 0.6407255419730016, 0.6393283628495582, 0.6358459420136149, 0.6337148990455516, 0.6334008177160464, 0.6360676181282745, 0.635852084974287, 0.632705498920404, 0.629272887699093, 0.6284199284295162, 0.6269710195611943, 0.6233422134404569, 0.6210004720006239, 0.6197002928120982, 0.6208219348564816, 0.6221989941159021, 0.6235772103427916, 0.6260965167854453, 0.6269965105260725, 0.6253489075902623, 0.6248766714469727, 0.6229020251736692, 0.6211192321929745, 0.6198719109267858, 0.618395743570037, 0.6184388363960522, 0.6171137847836333, 0.6140853353384749, 0.6141036878435686, 0.6124421910223807, 0.6138709384110594, 0.6153343965903176, 0.6143669853453829, 0.615071359349984, 0.6148401366998466, 0.6164942659217015, 0.6183159358614421, 0.6208443624954996, 0.6203637750581844, 0.6185668102428463, 0.6146546262819349, 0.6087943065905097, 0.6050038846681536, 0.5989506003273556, 0.5936657595081387, 0.5863256433214764, 0.5802017431773018, 0.5764712482600363, 0.5725158833234378, 0.5630414846938369, 0.5551743517030113, 0.545703547876869, 0.5371493739810042, 0.5294322245675919, 0.5222319189514736, 0.5169434835101354, 0.512505663523797, 0.5097451848531208, 0.5059766623129498, 0.502191417053517, 0.49931966885608037, 0.49478073377240717, 0.49185117569617576, 0.4926225248442412, 0.4917454129242524, 0.489636721618661, 0.4906048146598143, 0.493395729872045, 0.4959312478391472, 0.49526810055201015, 0.493824113469166, 0.49390151033225027, 0.49566173386094864, 0.49394463934624855, 0.49318352724290676, 0.4907213195919255, 0.48752055666917904, 0.4835926215777592, 0.4823962863914658, 0.48129992201819793, 0.48141445402243527, 0.48317963231679145, 0.4871289630894371, 0.49194724808676976, 0.4939669613210357, 0.4967314730347069, 0.5011412936146703, 0.504795923714141, 0.5109670378673264, 0.515765286206668, 0.52537099108346, 0.5331381692449387, 0.5394837228846677, 0.5459879528752205, 0.5492881301880471, 0.5506971001846434, 0.5520108102198027, 0.5542014451272185, 0.5572127708892644, 0.562389301748631, 0.5684424805544577, 0.5737637199515883, 0.5781615735226758, 0.5812657872496614, 0.5829297405329026, 0.5843814542610968, 0.5870464619460657, 0.5919633402232028, 0.5978936247900485, 0.6028698417131242, 0.6051719317524463, 0.608510050451986, 0.6131455818565329, 0.6195030370495452, 0.6249962230559921, 0.6311242312202563, 0.6379710149509782, 0.6445759326435827, 0.6522967364933271, 0.6566161716723471, 0.6613324334396558, 0.6651103464990631, 0.6699423245241551, 0.6718062850617778, 0.6748504592328138, 0.6752367807562657, 0.6764016301257617, 0.6768359001491312, 0.6755158660474221, 0.6775224567360689, 0.681093701858131, 0.6842864053393101, 0.685406283508691, 0.6849084384401953, 0.6842193139221165, 0.68230061842152, 0.6795866091715993, 0.6792585050315212, 0.6807585074217578, 0.6826760317602554, 0.684984987635328, 0.6894088611362263, 0.6938847761954676, 0.697380992158996, 0.700859152600792, 0.7027485232200644, 0.7052227356606703, 0.7078533181211984, 0.7089545908781887, 0.71264900149162, 0.7138310527520937, 0.715954671757793, 0.7185756353677833, 0.7221526330527268, 0.7240838259530288, 0.7243811089535294, 0.725218757395737, 0.7246815050414932, 0.7235909772032597, 0.7235384754250496, 0.7237231540642365, 0.7229105554398565, 0.7238451732184153, 0.7233391177666434, 0.7180729910020905, 0.7108695259577777, 0.7061359850252995, 0.6990162992913135, 0.6924603677871494, 0.6871884544662272, 0.6847119411093645, 0.6786463405291352, 0.6716130354599614, 0.6645099484011305, 0.6591790648483108, 0.652124748624765, 0.6457943938862248, 0.639720159996065, 0.6353518916411036, 0.6294025665545966, 0.6258711722403147, 0.622026604204054, 0.6189055708284985, 0.6166620796613983, 0.6180267180090829, 0.6195983993175866, 0.6204462425773087, 0.621320680882012, 0.6214714368135422, 0.6252128310136196, 0.625366537670109, 0.6275037430903637, 0.6304085849052976, 0.6346634393382595, 0.6395547277451884, 0.6448085173950461, 0.6496865103425632, 0.654810419519711, 0.6600904060463056, 0.6657282571780773, 0.6716585781876002, 0.6753034293866608, 0.6768408532503863, 0.6782697910360593, 0.6812785098614993, 0.6786748320464966, 0.6763792607274118, 0.6737402615005169, 0.6705289261201514, 0.6687726449118572, 0.6689017750528907, 0.6658994641416246, 0.661345258201029, 0.6554705380058472, 0.6521210629775651, 0.6480214515039988, 0.6418701637642105, 0.6364604331888648, 0.633077063223833, 0.6320934543416731, 0.6331278235852171, 0.6348460525990254, 0.636599599257791, 0.6359198925136937, 0.6345724235131953, 0.6362961191304131, 0.6359623224647738, 0.6348409354782224, 0.6381906172500759, 0.645164839585324, 0.6538537896578652, 0.6641915698628535, 0.6748315471279103, 0.6825688401716692, 0.687912012391649, 0.6960182002479863, 0.7014996071166797, 0.7063664369619155, 0.7127684284911565, 0.7188890768005823, 0.722510322943376, 0.7260606787407247, 0.7283004360598027, 0.7310178755420688, 0.7351221891948738, 0.7398437625384162, 0.7442632155724603, 0.7481565387778683, 0.7508893103650435, 0.7544608322458289, 0.756985648726496, 0.7595740638624411, 0.7636108134121204, 0.7641166411312434, 0.7684957215282551, 0.7707966049306074, 0.770754320576525, 0.7684207693776357, 0.7676171917921488, 0.7706247842825077, 0.7718512907505723, 0.7716861807127243, 0.7706584599201437, 0.770702843687203, 0.7712436786852153, 0.7723962709301102, 0.7724340968949618, 0.771938711516396, 0.7677823027630405, 0.763239675080027, 0.7563247814812305, 0.7500160802384536, 0.7453435414284013, 0.7417841822468181, 0.734758276219443, 0.7285419720576131, 0.7206136968858187, 0.7139519475902052, 0.7078191308285672, 0.7013899752087223, 0.6962738040265614, 0.6934602557087535, 0.6909228425030964, 0.6872457134408764, 0.6795233362133322, 0.6693677993806801, 0.6628471320734116, 0.6577771499318497, 0.652198417234304, 0.6486143229717178, 0.6460526156538243, 0.6459619308753768, 0.6452744382165909, 0.6421293462763581, 0.6360249433092584, 0.6286095503556247, 0.6226317729784288, 0.6184704100126827, 0.616574210015648, 0.6111199462635978, 0.608871569843928, 0.6099780408746273, 0.6117889198432864, 0.6095892251588617, 0.610045376534435, 0.6078980578073956, 0.6050901613982331, 0.6023583322631648, 0.6001346564739379, 0.594508754765829, 0.5912141494971833, 0.588020417664922, 0.5858272097755036, 0.5881264549532934, 0.5886014568989815, 0.5888369097583745, 0.5899375565867523, 0.5922102808760106, 0.594277931944604, 0.5978841671171942, 0.603721290413647, 0.605736132715936, 0.6056429362233086, 0.6083055296864576, 0.6100370029699296, 0.6103032717042586, 0.6101799054656734, 0.6109254277104122, 0.611632879419568, 0.6144511719851112, 0.6171353071496083, 0.619772185544428, 0.6223787456683559, 0.623824446187047, 0.626344885102996, 0.6306330901777006, 0.6355583911036816, 0.6401273905008207, 0.6432809814883826, 0.6446258175163703, 0.6432407862908737, 0.6414908043415559, 0.6413290285147257, 0.6427338190782135, 0.6418480163280095, 0.6422786103619913, 0.6414849813582182, 0.638683996465236, 0.6377005115683406, 0.6370534334763706, 0.6376307665787014, 0.6392287642556074, 0.6418032587842312, 0.6416419519368461, 0.6413290869801992, 0.6375125177819853, 0.6328654202258197, 0.6296865509032676, 0.6283392341415345, 0.62867623137047, 0.6299519618192083, 0.6320445465545091, 0.6321519546028562, 0.6287173446343589, 0.6263340200401899, 0.6215711640166978, 0.6156159392773654, 0.6085170834334412, 0.6040688673535993, 0.601717700338573, 0.6009668940676812, 0.6011685562879574, 0.6005575617167452, 0.5980931923496938, 0.5948078543746297, 0.5922102858085132, 0.5879196577605799, 0.5845731484446872, 0.5834161795588343, 0.5798114273501803, 0.5772448220897222, 0.5756057927660059, 0.5733764936481719, 0.5718628021339232, 0.5716711842295352, 0.5739666415337819, 0.57663235551658, 0.5798519205499033, 0.5842657161831838, 0.5860309491326043, 0.5914558667200723, 0.5945192385246204, 0.5969232609382643, 0.5993217788643571, 0.6013842982593913, 0.6047067174563241, 0.6052944819533577, 0.605734825141816, 0.6045397441326777, 0.6070383309031209, 0.6104511996609261, 0.6152490962773867, 0.6176251513576052, 0.6184293985460975, 0.6189061654265913, 0.616233609345307, 0.6153194813172095, 0.6158448532451056, 0.6178514925741221, 0.6184625870316462, 0.6188467834461702, 0.6179684803605532, 0.6168265054500023, 0.616394296827449, 0.6183916905256024, 0.6216345814503463, 0.6247051295318501, 0.626605599349522, 0.6271452316887767, 0.6257109788897348, 0.6235280970699176, 0.6231387258102525, 0.6248372003847293, 0.6241330585672233, 0.624206850569694, 0.6215006078327537, 0.6201808423110406, 0.6230830358356143, 0.6237341966081039, 0.6214549864606089, 0.6177790194164845, 0.6159185886335575, 0.6137480168887481, 0.6114347921082263, 0.6072418643744663, 0.6061177794194568, 0.6035496615580068, 0.598801086287727, 0.5958831785002956, 0.5933136607995643, 0.5934081729917688, 0.5938150830598045, 0.5937161517914405, 0.5919238545749689, 0.5905183978756495, 0.5859508170308542, 0.5827266631969124, 0.5799441355744593, 0.5812226042335025, 0.5784075801912312, 0.5774284007006151, 0.5781905748921043, 0.5791582080194485, 0.5815974996707564, 0.5852138294027447, 0.5913129655628957, 0.5947948092408216, 0.5976013585370245, 0.5993601622747274, 0.6001840356654832, 0.5966175200888314, 0.5940767040402937, 0.5923697080686792, 0.590189531666104, 0.5926162108529908, 0.596268794497731, 0.6002775647924287, 0.6035548181319782, 0.6055874675667164, 0.6043677818864922, 0.6017916182426902, 0.5973412095047416, 0.5928094699916819, 0.5908839989485167, 0.5863591924399181, 0.5845154751652676, 0.5840627850270971, 0.5855437894675138, 0.5825306308658824, 0.5818483452629907, 0.5799766946741922, 0.5775457046744858, 0.5748837556588068, 0.5706097900557179, 0.5685239083761078, 0.5666601744729447, 0.5632502513014452, 0.5579157269895451, 0.5535479805160879, 0.5493316501765173, 0.5440356128906129, 0.5360041042987661, 0.5282154074500113, 0.5223290779406402, 0.517215298570459, 0.5157483997259151, 0.5142765508678026, 0.5137040043463683, 0.5109114430592193, 0.5074710394706642, 0.5004579055762641, 0.49537404366808097, 0.4924478376834118, 0.48751679933657993, 0.48392043200731605, 0.480609226625402, 0.47667279652291156, 0.47289508748517417, 0.4680547375585556, 0.46344414469525286, 0.4561033039918529, 0.4490823570528386, 0.44235629043580915, 0.436656639246925, 0.4336451375250608, 0.4327043390285178, 0.43378544656039375, 0.43453451955637373, 0.43240364275680676, 0.4292093005519773, 0.4279244854914416, 0.426623141625882, 0.42369842013742465, 0.4226989307845665, 0.4165550588603584, 0.4124420155295451, 0.4104500506305559, 0.40932305712108535, 0.40684583881321507, 0.4059499208164312, 0.40488214697354713, 0.402031709329972, 0.4001345408475142, 0.401729575553134, 0.40136640257486084, 0.40248543089752736, 0.405270982639254, 0.4072866128372736, 0.40952581755894374, 0.41101827542741576, 0.4159472593885096, 0.420333415444553, 0.4237869359276064, 0.42431185406669564, 0.4233276649243362, 0.41878601630390666, 0.41159781615332536, 0.4060215506409383, 0.4029921232451284, 0.4012245401122978, 0.3977726625163916, 0.39533216312241165, 0.395059044356866, 0.39181366698228726, 0.39065211992759136, 0.391913775086011, 0.39314576406086, 0.3935571350807182, 0.3935546605418096, 0.39638856688228874, 0.3996270963653685, 0.402562702423177, 0.4061667302711487, 0.4111191580465793, 0.41523258421850756, 0.4188231117311965, 0.4256087182268854, 0.43215218399845645, 0.43744766311436467, 0.44320858699260857, 0.4514455433054008, 0.459049277895431, 0.4636617206736769, 0.46845110070196405, 0.4737047113614483, 0.4781664069171462, 0.4811967996941936, 0.48211883503454245, 0.48264141907985353, 0.4877285618687678, 0.4894566743558329, 0.48972765896768716, 0.4890671744399595, 0.4868490791109907, 0.4880367806434908, 0.48995621193861116, 0.49058945627031764, 0.4894603823342191, 0.4885779831673909, 0.48864984090882974, 0.48903267166212344, 0.49165487364882404, 0.4969851463268645, 0.4995674642605525, 0.503254014546937, 0.5057980662954382, 0.5085533245518835, 0.5129509230240253, 0.5170620094302846, 0.5190515263234659, 0.5208264636073705, 0.5221687398963408, 0.5213702281551715, 0.5205136747273931, 0.5199522106230873, 0.5192197437416002, 0.5183960254447647, 0.5159411709026759, 0.5136080224312661, 0.5113882406106631, 0.5086312301489635, 0.5059880800528962, 0.5004492683002217, 0.5000104081768103, 0.4988470359029949, 0.5001110717856322, 0.5005197873000204, 0.5010278093512641, 0.5035197646333767, 0.5024036918683995, 0.4997349751379446, 0.4970465682145529, 0.4946269868852023, 0.49434942894021394, 0.49685601853322753, 0.4986979913347123, 0.4994651870645817, 0.4968630293355893, 0.49551791435357645, 0.49246733515357594, 0.4886639021938076, 0.4846776418750316, 0.48169711986452296, 0.47899660026414675, 0.47870666310159904, 0.47806015934138046, 0.4799476728997297, 0.4832910943340042, 0.48470395708691844, 0.4804099533856801, 0.4737238929366287, 0.46986898648729114, 0.46734592478663495, 0.46655205988898796, 0.4677297352074915, 0.47299948002759734, 0.4769335428131964, 0.47885414326232795, 0.47923803034613466, 0.47713136868880845, 0.4729149733930577, 0.4694005666441538, 0.4671969989653031, 0.46498001956059587, 0.4627931640647205, 0.4580416018261004, 0.455291596178256, 0.45478285315537936, 0.45415930125812565, 0.45562958532692893, 0.4563745703768878, 0.4570900344377163, 0.4570045504016132, 0.45765573509198, 0.45681369661291654, 0.4580506128518193, 0.4574172143773117, 0.4562617055339481, 0.4573182824045543, 0.45870443275804024, 0.4621642289007651, 0.4658442660992474, 0.468754214762183, 0.4695510152523857, 0.4686515572215242, 0.46596816425657256, 0.46383646406237766, 0.4597771832660275, 0.45777127288270364, 0.45896274262049264, 0.46262184098661224, 0.4642877647752644, 0.4624646047425491, 0.4618386008311455, 0.45849342573177154, 0.4555821148885348, 0.4539682180893848, 0.4530596987842702, 0.45091156171382296, 0.4511223339877765, 0.4510485060264183, 0.45252126456440367, 0.4535894539820154, 0.45535457420650627, 0.45471711913013674, 0.4534219133682941, 0.45163943082459884, 0.44981434750489674, 0.44824891314322535, 0.44849748884498886, 0.45360398411503833, 0.45574214026735005, 0.4575661224283115, 0.45913648131965845, 0.4587345854929208, 0.4565260139942245, 0.4558398192848414, 0.4561376413595483, 0.4529040542994487, 0.44988387938738617, 0.4434478590660068, 0.4372130471145008, 0.4311343164881701, 0.427825421026045, 0.42407350174261793, 0.421700754074326, 0.4224678915312254, 0.4253028702936175, 0.4248647300485693, 0.42138778056817133, 0.4167299347356597, 0.413281585694264, 0.4106003287589335, 0.4118594993434383, 0.4108580347892411, 0.41028292000143723, 0.4113400983402612, 0.4140445682498207, 0.417234696324945, 0.414213572047175, 0.41218791541344807, 0.4096109752825549, 0.4089992461048813, 0.40893631278514336, 0.41083606565458325, 0.413816716849516, 0.41615302065887616, 0.4194724645914561, 0.4200438855020152, 0.42031873944997633, 0.41768150899761985, 0.41478640269580036, 0.4121966709804516, 0.40987162024833673, 0.40668842461077154, 0.40501981533211373, 0.40086637177939766, 0.3959623089048372, 0.39246838395226324, 0.3879215779444082, 0.3851573934326245, 0.38184596726649606, 0.37700498336259936, 0.37116299142342307, 0.3666860716360307, 0.36048641250181157, 0.35376280581963093, 0.34548361878007494, 0.33913901209908576, 0.3361141686488751, 0.3356134176152748, 0.334026099146786, 0.32856562101534675, 0.3236490243097426, 0.3183242285764875, 0.31036877706120175, 0.30159558252916185, 0.29375028476327286, 0.28621874320678936, 0.28090582018166405, 0.2751614783145653, 0.2677251578347276, 0.2613567906208599, 0.25568057268923383, 0.25006878327393445, 0.24240754333789857, 0.2373733121932815, 0.23600552013624096, 0.23587285772858713, 0.23236509076290224, 0.22965807507175096, 0.22823314368839537, 0.22756277592126822, 0.22522219775255437, 0.22173059610297174, 0.21667846370696575, 0.21245812791043134, 0.21021601989903907, 0.20759668555486332, 0.20385625500430607, 0.2025407559205108, 0.1998294793428419, 0.19683509307193647, 0.19578483585787115, 0.1951131018867869, 0.19559768980841546, 0.19651036565267585, 0.19706390124685935, 0.19763488325431172, 0.1963595398690245, 0.19566944235162273, 0.19365418813396465, 0.19033240537857715, 0.19052875143649164, 0.19167096589425842, 0.19097904053207612, 0.19234547067362132, 0.19719461360634608, 0.1995516812712987, 0.20209669842155464, 0.20283811250042186, 0.2052665490079653, 0.2099148566819762, 0.21562493987324538, 0.21756157168615411, 0.22319936100488327, 0.22825058238154997, 0.23188779967132736, 0.23440987197156057, 0.23393784683575752, 0.23042966757745248, 0.22672903134113312, 0.22539748023138895, 0.2229294515990038, 0.2219236433772137, 0.21886530061240236, 0.2178006820872301, 0.21788328534135443, 0.2161712851993486, 0.21292324131272053, 0.20875338920912687, 0.2049749472357336, 0.2026393663848056, 0.19791474657368774, 0.1950034586371483, 0.19124212571249907, 0.18916489259832003, 0.18992050895376755, 0.18739425356848327, 0.18388704336551118, 0.17744052859684362, 0.17338455186003235, 0.171006345185899, 0.17024831094335946, 0.16863901620106642, 0.1660534398145175, 0.16486261270336963, 0.16273507346448876, 0.15895612387207902, 0.15974832018275836, 0.1602149171336466, 0.16145728134410342, 0.16423617033829183, 0.16853687027728484, 0.16814882161828462, 0.16976046177592066, 0.17171088448428798, 0.17391330112675557, 0.1779304008207474, 0.1772965332961, 0.17705324664541866, 0.17428488228941794, 0.17372801726454323, 0.17395950652866124, 0.17511993558095393, 0.17811095975847777, 0.1815381228398194, 0.18409051930996975, 0.18671105833444948, 0.19014111808854026, 0.1966573882146783, 0.20238593188030032, 0.2059732407554383, 0.21075450141760488, 0.21802115900055408, 0.22245131487096684, 0.2258991182499984, 0.22705013974450555, 0.23073003532064074, 0.23837317944326045, 0.24536829406401886, 0.24987567478753192, 0.2542384934331907, 0.2598464578259882, 0.26600729701286757, 0.27075311472024044, 0.2787273364630556, 0.2884958086184587, 0.2977032780491817, 0.30554453352801864, 0.31715795687310455, 0.3285251864547453, 0.3384241443004369, 0.34579510568788513, 0.3530038440533301, 0.3593771638392193, 0.3650811566201761, 0.36974679086648987, 0.37435851937298376, 0.37870117061208214, 0.38163611922095747, 0.382369058178918, 0.3821672211737479, 0.38518308203777485, 0.39273557618809646, 0.40104621596038414, 0.40790313338044687, 0.4122739045485313, 0.4143683129274957, 0.4170300820762203, 0.41609839628554746, 0.4133679059992946, 0.410971905958146, 0.4097844497019539, 0.40541699618197263, 0.40355339167287163, 0.40049757024343124, 0.3985858881647536, 0.39894923091279294, 0.39805867714004933, 0.3987900293679833, 0.4003310982383502, 0.40095966627891905, 0.4011080304206731, 0.4033561911176725, 0.4038539403425484, 0.40294966142154814, 0.40294189938429803, 0.4060934829181196, 0.4086289249529445, 0.4129447957401307, 0.4201857331482072, 0.4256042520401684, 0.42919577409075793, 0.43108413040345633, 0.4328364130770302, 0.43234016711799433, 0.4328820593327746, 0.43478591500593905, 0.43605346258609207, 0.43556812978500353, 0.43638347243119213, 0.4390744027448809, 0.4428319447244942, 0.4447937652671974, 0.4490185244100015, 0.4534489040898739, 0.45459003509991297, 0.458458902929351, 0.46167584826563923, 0.4660631823457803, 0.46782854509579386, 0.4720055823835008, 0.47602334344857716, 0.47952189364624803, 0.4809341677516094, 0.48395577345679164, 0.4865741750587038, 0.4894956088942605, 0.49304200040039975, 0.4966071393137954, 0.49901603076415646, 0.501469323366147, 0.5014129288773659, 0.5049434667077146, 0.5104437555604883, 0.5131481094258072, 0.512865718494214, 0.5110899340335543, 0.5096684563623044, 0.5033993112265845, 0.49887571954238635, 0.4969674467499492, 0.49206260718184486, 0.4900489025644008, 0.48737224034083565, 0.4873681267682271, 0.4873336824687076, 0.4875810969826302, 0.48864266082289143, 0.48863517090152586, 0.4879604032871723, 0.4881544921059174, 0.48691095575476145, 0.4879549706628085, 0.4914772209996169, 0.4965330835035351, 0.5029836148079802, 0.5093926830814676, 0.5120850172064744, 0.5161963329087684, 0.5190754500104718, 0.5216803027743808, 0.5249886537520555, 0.5311209602687685, 0.5381502308202438, 0.546186359063381, 0.553689822548406, 0.5600794458648691, 0.5631913406731488, 0.5649545447541018, 0.5659282984134966, 0.569225338806694, 0.5738869652008979, 0.5791814410493874, 0.5885308003137968, 0.596953643065141, 0.6046338535714516, 0.609935638112369, 0.6164078180097191, 0.622554184944918, 0.6286328837256618, 0.6352947685244618, 0.641290993587663, 0.6490490165314581, 0.6557366154147668, 0.6637062161992893, 0.6713873358216813, 0.6769752762013025, 0.6794475506740875, 0.680720747843136, 0.6827266195512854, 0.6833719718695468, 0.684871253908567, 0.6843673988198983, 0.6853695559091426, 0.6827262755375431, 0.6790399048715712, 0.6742737209197628, 0.6697929553841179, 0.6662094386132831, 0.6612302466794912, 0.6532984574946847, 0.645322500871167, 0.6358141708264154, 0.6249380873188519, 0.617321899408617, 0.6099290772608182, 0.6038267912808857, 0.5965903985627768, 0.5863942485625974, 0.5765315308113461, 0.5679291049693923, 0.5619349903791284, 0.5580403945826711, 0.5561958326724534, 0.5551629046088418, 0.5511613572340562, 0.5492313459871859, 0.5449557899827074, 0.5408294199245405, 0.5356387609436187, 0.5318136100094891, 0.5312545563061692, 0.5331981048961026, 0.5368137205844239, 0.5418914751428036, 0.5443688331635472, 0.5428035411293407, 0.5431192419876252, 0.5404910715685182, 0.5392453823890275, 0.539347230058601, 0.5371531186044294, 0.5347118635656116, 0.5330536236931915, 0.5302663479806607, 0.5279618466442728, 0.5249383558395745, 0.5250565846007326, 0.522265713737165, 0.5200776536976263, 0.5186497095447246, 0.5185935829838143, 0.5163277720608217, 0.5153722853561935, 0.5161327558623819, 0.5161256595946953, 0.5154363469266726, 0.5141706176477232, 0.5130853225331239, 0.5096952970367049, 0.5054476333498177, 0.5018475998162444, 0.5025105748077702, 0.5033014264830591, 0.5040594765378743, 0.5049145422948911, 0.5028132403411689, 0.4959555594517731, 0.48576344894155155, 0.47642628677551285, 0.4693272408545808, 0.4631686552395953, 0.4604159763604722, 0.45943822278492724, 0.4572422287060983, 0.45338053702530573, 0.45158405642229804, 0.45087961296234264, 0.4515141628392626, 0.45040133118099845, 0.4496331592650358, 0.45066410208827606, 0.45244632455856804, 0.4535654043846048, 0.4566026562508736, 0.46058361180342583, 0.4651450889604777, 0.4687469947456071, 0.4692658381648959, 0.4719380485377043, 0.4771667874170418, 0.4812499397108827, 0.48309339654752304, 0.4876654109520441, 0.49246560273133916, 0.4980204304808193, 0.5017043007277444, 0.5055620520090766, 0.5090107158448719, 0.5115726989454685, 0.5141964977868675, 0.5184412975955435, 0.5250344818345158, 0.5317159129369416, 0.5403070532405624, 0.5511284137266673, 0.5609292762787879, 0.5673270394846819, 0.5731868337567724, 0.5801058303690696, 0.5880336137192087, 0.5986127630724986, 0.6067700685979519, 0.6168600883211399, 0.6263134281093129, 0.6344195268772437, 0.6447005072360084, 0.6502849280080866, 0.6573589972765942, 0.6618864333493378, 0.6648297179652867, 0.6703522142726479, 0.6747008872117743, 0.6786866185675209, 0.6838037516242274, 0.6901389759000697, 0.695741106709876, 0.6993603404749812, 0.7038446792900993, 0.7069267375624286, 0.7095760684833494, 0.7157934667117655, 0.719807893448619, 0.7267416443138868, 0.733397193634414, 0.7401973515685706, 0.7467418665315642, 0.7503921442092466, 0.7576236475304523, 0.7658501797250903, 0.7703825691005379, 0.77447771042032, 0.7765819939337332, 0.7776199011721449, 0.7772974061435642, 0.7777767099747166, 0.7784681882247622, 0.7802325916216469, 0.7789149667820779, 0.7794241278637135, 0.7803345791649706, 0.7816702443575395, 0.78377433082528, 0.7889654560495514, 0.7942871887319334, 0.7994283459632768, 0.8007117346156823, 0.8027347839008858, 0.804372559046988, 0.8036436065834719, 0.8031695226747806, 0.8034239603567827, 0.8038974617993778, 0.8023257129015561, 0.7999005081561983, 0.7979130764216426, 0.7934757213941046, 0.7912791296463952, 0.7857127075524702, 0.7826724933378002, 0.7822712802489591, 0.7767776672749092, 0.7689172785353713, 0.7595896722456411, 0.7504862645025887, 0.7395188371098335, 0.7294696624132851, 0.7239896524248076, 0.720295960388277, 0.7171159603496764, 0.713900927040748, 0.7104519305712208, 0.7061427593809751, 0.7041543473035385, 0.6992674687359752, 0.6911511226675977, 0.6857632939771755, 0.6804568780462033, 0.6753674053232753, 0.6696384564828973, 0.6637976275247367, 0.659049833811697, 0.6550479684015736, 0.6489932622956988, 0.6441183638496646, 0.6415170096543732, 0.6383271923261322, 0.6322791248389997, 0.6267479811669155, 0.62371113144229, 0.621432239022036, 0.6171839724931405, 0.6158551079006636, 0.6149361575870584, 0.6158204593474778, 0.6153931106656192, 0.6133429416646607, 0.6103448277162608, 0.6052585296480724, 0.600276908732061, 0.595528635190921, 0.5928323931179931, 0.5876107049397921, 0.5823754796362879, 0.5768052725558421, 0.5707186827645572, 0.5671924430657407, 0.5632788094425824, 0.5600104672762349, 0.5567572124601002, 0.5555668214528204, 0.5560767087145496, 0.555551243395795, 0.5547297147886411, 0.5535423214628631, 0.5535604293107933, 0.5512347528193557, 0.5520635073864841, 0.550658125826607, 0.5484370524537918, 0.5469480795751316, 0.5451259822254052, 0.5472867820618488, 0.5490683226792432, 0.5493273087784647, 0.5492393670518292, 0.5480370174644469, 0.5464357560051709, 0.5457035176424959, 0.5438577417455934, 0.5402544043579699, 0.5375617357779232, 0.5359847132711162, 0.533249556846136, 0.5279039727997813, 0.5205405667458162, 0.5151286036392779, 0.5113115729367518, 0.5084726617790198, 0.5067366803206006, 0.5044922840324046, 0.49961672215354824, 0.5000718480979766, 0.5000131078386639, 0.49722623139944794, 0.49627075054172487, 0.4942851597011681, 0.49017313200329204, 0.48215446709893583, 0.47520098794626614, 0.46721045918337284, 0.4608427307791021, 0.45706173489078744, 0.45428396089538553, 0.45239454349575187, 0.44811730436687686, 0.4439692855650303, 0.4395248887694315, 0.4336940748373669, 0.426803049625727, 0.4210984808257498, 0.4166383112287255, 0.413517429285389, 0.4096580766277477, 0.40649011683099046, 0.40545133605240286, 0.40284835164932353, 0.39889740960513553, 0.3951670937710493, 0.39305193585129383, 0.3939079177987614, 0.3933465848909829, 0.39257141757524544, 0.3910478497836338, 0.3886286716262918, 0.38271389109312437, 0.37802636930303213, 0.3722324574683666, 0.3690122214102008, 0.36434466000213805, 0.3605851596949715, 0.3557478530298347, 0.3517231237434032, 0.34693004969239877, 0.3437963251439479, 0.34219051616530494, 0.3407066899435325, 0.3361944768470629, 0.33189784707866055, 0.3268619943206526, 0.3239451514096966, 0.3233102332317177, 0.3220096754540175, 0.3224935512533497, 0.3258047077546917, 0.3293407517744085, 0.33545866555717785, 0.3366634203469711, 0.33890561647108136, 0.3405752111236361, 0.3425148141871187, 0.3470923218841744, 0.3500827413231851, 0.3528124972179255, 0.3577960005810497, 0.36412546171094795, 0.3670233722268606, 0.36757139854867965, 0.3657939675820473, 0.36392836053167105, 0.36382667362199844, 0.36587484244449064, 0.3641264917939656, 0.36374027420816785, 0.3655157494434693, 0.3684102008346062, 0.3688104563593217, 0.3695631310342056, 0.3689988976334258, 0.3695521772045924, 0.36937345461211923, 0.37048945048487486, 0.371053569594523, 0.3689370597918952, 0.3700274207288624, 0.37226362733391666, 0.3740544902966206, 0.3739344056501522, 0.37381160436636224, 0.37057373132622895, 0.3659672551682014, 0.365612417494529, 0.369213764273743, 0.37193818346261, 0.37467964408813026, 0.37695788310325057, 0.37927587306497784, 0.38312808086862693, 0.3870304801639429, 0.3916936131779814, 0.39704934432986005, 0.4014571518742989, 0.40490338463808395, 0.4115485818527344, 0.41799888290846204, 0.4223479238806629, 0.4254783750156691, 0.42743806431304027, 0.42686747788477314, 0.4265453858266789, 0.4274745939533421, 0.42860267725858464, 0.42912384449933894, 0.4317624311380656, 0.43529689981864783, 0.4387964266365697, 0.4414851634034665, 0.44487272378981274, 0.44599122696541726, 0.4483235240050596, 0.4525626340527066, 0.45601234171064503, 0.4607628458413333, 0.46653350382069264, 0.4734323026627239, 0.47982788439871815, 0.48506273230238006, 0.48854247773014425, 0.49450663164835806, 0.5028551119007851, 0.5100842912758214, 0.5137139497592615, 0.5154936863278039, 0.5163554573786676, 0.5147990442170021, 0.5153572517012056, 0.5169068326795856, 0.520503691725395, 0.5265389677158443, 0.5307448844935868, 0.5337412093429358, 0.5363886015265968, 0.543112993702586, 0.5505890431886046, 0.5564736103234347, 0.5623019789953424, 0.5661492952713373, 0.5703204891156164, 0.5731849476145183, 0.5753600126030817, 0.5778598400718373, 0.5803685080193338, 0.585661867902837, 0.5896622944219505, 0.5943668997361103, 0.5984003249304043, 0.6024577730678121, 0.6028774138797954, 0.6045523535425787, 0.6076380216242796, 0.6127803270099418, 0.6151605958759231, 0.6184232543890666, 0.6182213170077024, 0.6169552388361949, 0.614527467432992, 0.6161119216666973, 0.6222968816892553, 0.629697891419062, 0.6353582813957683, 0.6391342475493591, 0.6450204951941404, 0.6490236478937148, 0.652902845763343, 0.6558525775468295, 0.6597389637814698, 0.6655057474794414, 0.6758587445691825, 0.6877294343305438, 0.7009263625236428, 0.7155668864469932, 0.725494041736674, 0.7332749449677207, 0.7393963154702367, 0.7457551453024645, 0.7525389988311602, 0.7611455593358047, 0.767456130709596, 0.7713883511054361, 0.7745198285994374, 0.7749071750323508, 0.7777252624245372, 0.7783236650396632, 0.7765455795916147, 0.7742113852128691, 0.772603467370362, 0.7721065773753527, 0.7704930914481366, 0.7715992985878904, 0.7731143685961503, 0.7730828105982721, 0.7713507272332254, 0.769535074427485, 0.767210481109508, 0.7651479517248777, 0.7634812810023406, 0.764696600711669, 0.7610336785253244, 0.760057122490078, 0.7581458805640883, 0.7597392857675233, 0.7607954733940623, 0.7604252812330393, 0.7605772022788398, 0.7612510325184653, 0.7605064002875352, 0.7581194229778407, 0.7580528388103537, 0.7559966341552664, 0.7530238973064027, 0.747849039283722, 0.7463937353225302, 0.7463317250802775, 0.7437403409512212, 0.7429867666640751, 0.7441508049470293, 0.7417083435529723, 0.7423387320494891, 0.7469008788648052, 0.7499646555255092, 0.7514307444119922, 0.7517769863677791, 0.7515874870700275, 0.7522291530038062, 0.7532060588176355, 0.7534628618515221, 0.7559892840884175, 0.7583941231418834, 0.7586971957647511, 0.7574527267433125, 0.7559152419397279, 0.7565382562947441, 0.7588266150728494, 0.7618297153751413, 0.7637165546865284, 0.7663216551737208, 0.7657516874783139, 0.7660493209156511, 0.76482646833281, 0.7633250151452372, 0.7605687592919271, 0.7582508958580378, 0.756744861617193, 0.7550276971479513, 0.753227598608761, 0.7544374783263482, 0.7544911252826715, 0.7555567013092224, 0.7523839170037854, 0.7492431135674893, 0.7477667702908647, 0.7480155148835802, 0.748417355631443, 0.748897597344154, 0.7478569821400407, 0.7474927705294904, 0.7483557301891773, 0.7475657690793027, 0.7505443404593816, 0.7524859394842858, 0.7520121481630414, 0.7498640170884864, 0.7475874352729751, 0.7443464947206003, 0.7390647113623525, 0.7367121763458262, 0.7325463492452639, 0.7277083801166936, 0.7231042689693633, 0.7182500753091097, 0.7099298241069024, 0.7038013873518576, 0.6998841467901139, 0.6964735270257529, 0.692183801386416, 0.6879694585602708, 0.6836428700344771, 0.6780523253413385, 0.6715964040981854, 0.665178095913213, 0.6559266511782784, 0.6506350337704632, 0.6445757806160961, 0.6409009270062237, 0.638764855969101, 0.6372275348974314, 0.6332903882027445, 0.6260949744846447, 0.6199742622909422, 0.6151821137441061, 0.6112207026421769, 0.6069272682575212, 0.6028081361563107, 0.5960639799765881, 0.5898539609162115, 0.5871059483920746, 0.5849542221439479, 0.5829785262258077, 0.5822284332387214, 0.5822960238814158, 0.5825495999550486, 0.5854294482282466, 0.5848001325887409, 0.5822614825486405, 0.5811931384931065, 0.5813891854616517, 0.5840008319123768, 0.5879232812415071, 0.5922008731887022, 0.5988336459797056, 0.607691676034998, 0.6134450929039181, 0.6198520796937147, 0.6280143692685675, 0.6345472023079939, 0.6391430707720094, 0.645350250574354, 0.6520361642478806, 0.6573025275687686, 0.6651032374063178, 0.6733266787872854, 0.6826133066545051, 0.6896942252481794, 0.6936367667084008, 0.6964100743582035, 0.698213413008434, 0.7002468905787456, 0.7063154931282092, 0.7132554474153643, 0.7182453042769389, 0.7220075814618224, 0.7251597899320139, 0.7269742143997109, 0.7286482365819218, 0.7311057717354702, 0.73430928418367, 0.7361217956566246, 0.7398291008921797, 0.7415430419340352, 0.7439091987028991, 0.7470306133255478, 0.749068671620277, 0.7524678511506723, 0.7586372896757212, 0.7630360309421295, 0.7672589993858524, 0.7684189219387663, 0.7697282804253934, 0.7698122100616024, 0.7717674938620254, 0.7751369084950845, 0.7787832407749385, 0.7763159940739967, 0.7725642208899577, 0.7694111870991504, 0.7670801768013951, 0.7648160632676521, 0.7670788253540062, 0.7710292046140553, 0.7748473523123908, 0.7760999970675407, 0.7755002698392867, 0.7758771392017922, 0.7734717968195376, 0.7738364447035684, 0.7750491919760217, 0.7744777730625981, 0.7732021490825042, 0.7710293885141714, 0.7678992431246251, 0.7634341868240871, 0.7594713844530161, 0.757534180043304, 0.7585718616911226, 0.7560049166074514, 0.75173801427313, 0.7487297074113931, 0.7470598801207877, 0.7479849357492545, 0.7480683911066351, 0.749623693141462, 0.7510729585135145, 0.7512867180037933, 0.7549334402612883, 0.7586940826310666, 0.7627184464072333, 0.764578830530426, 0.7662292478065235, 0.7703040280508034, 0.7724760636577347, 0.7744987828882745, 0.7756557795608611, 0.7764150423892984, 0.7751395858890338, 0.7739431490031242, 0.772396918178258, 0.7701672509244819, 0.7727229849399618, 0.7706503906600648, 0.768390246883854, 0.767869628456842, 0.7671737413476096, 0.7679154663017749, 0.7712800796309685, 0.7752339084001192, 0.7747521859617772, 0.7758775208222701, 0.7759232089384959, 0.7735770760064589, 0.7705881527479475, 0.770639591198734, 0.7714158145617289, 0.772956734269186, 0.7753901696021732, 0.7795657116340262, 0.7821572654335074, 0.7819550563834746, 0.7828896969667896, 0.7799529495689259, 0.7764467940582119, 0.7732425530594396, 0.7715272739150468, 0.7709687507741467, 0.7714080136748573, 0.772212529904908, 0.7752097041684336, 0.7763435783585398, 0.770764227270861, 0.763974130581732, 0.7572255071392958, 0.7494030807102153, 0.7438111924737628, 0.7410023728361795, 0.739021179209529, 0.7370445615995137, 0.73545632818719, 0.7334604211534357, 0.7283885336872529, 0.7248549337971915, 0.7228749715886817, 0.723021482930332, 0.7211779846782154, 0.7222709568182685, 0.7214788311214256, 0.719362132871584, 0.718393495532558, 0.717194939433202, 0.716200179628198, 0.7163405613566043, 0.7180479866999238, 0.7193032079613221, 0.7175708713120171, 0.7160023241959653, 0.7128599275366613, 0.7117193822857325, 0.7123721353465109, 0.7108215708551108, 0.7077526552452467, 0.705805332387746, 0.703477798045282, 0.7015816787885263, 0.7003606187471458, 0.7003919648844934, 0.699738981659006, 0.7014308269359227, 0.7043660247797084, 0.7062632415241258, 0.705495124405701, 0.7037823612425033, 0.702501372777724, 0.7020479196381472, 0.7054596254902898, 0.7038026438506298, 0.7040910565555123, 0.7064055066271747, 0.7094944778403575, 0.7114077316917718, 0.7134914050833534, 0.7116462588752549, 0.7112916137839342, 0.7132481785453275, 0.7135364252169548, 0.7142095251476266, 0.7145548280017827, 0.7166748250658851, 0.719697615483571, 0.723404004862549, 0.7256143672913431, 0.730654444306552, 0.736126656698371, 0.7400367514214962, 0.7418635525629087, 0.7447879265830166, 0.74710628700035, 0.7472331086910197, 0.7477535481881356, 0.7468786563994578, 0.7453755011168506, 0.7462307404292765, 0.7460276052535513, 0.7422969448090073, 0.7382724677938451, 0.7338508301721173, 0.7274813860235622, 0.7189026748734477, 0.709106792622907, 0.7019390863269936, 0.6948937852554219, 0.6921459599556634, 0.6886824515845114, 0.6855282268918936, 0.6806905623082269, 0.6711491468552109, 0.659774184607882, 0.6507850520532998, 0.6444871456482109, 0.6361298487368766, 0.627088091478002, 0.6195556881391001, 0.6112720902801899, 0.602895413887309, 0.5969836437541164, 0.5905581409513361, 0.5830517822033455, 0.5769049108533046, 0.5707566512303978, 0.5638820835685807, 0.5612881377516113, 0.5579650931977048, 0.5556626318150674, 0.5511501184821601, 0.5481507669290845, 0.5443230390197148, 0.5417828382889867, 0.5397648235357632, 0.5389706751461714, 0.5342595629574226, 0.5318914070754309, 0.5279523046757784, 0.5282238451518787, 0.530609572580614, 0.5308490620740296, 0.5293084285297031, 0.526529473158168, 0.5238441916724592, 0.5212699010829693, 0.5200800663871926, 0.5250416917292967, 0.5299676926758553, 0.5368521269549833, 0.5428526621968294, 0.5471311376397842, 0.5468052397956753, 0.5477706803911179, 0.5459645137423119, 0.5431902988689314, 0.5422165212532105, 0.5432216639390364, 0.5449144920291379, 0.5460357319013276, 0.5435285836286489, 0.5407668589157183, 0.5387555582389381, 0.5384556307605692, 0.5361724246838552, 0.53144655112523, 0.5271312147359638, 0.5207131423133171, 0.5121116453212917, 0.5047895941818075, 0.49984110691955846, 0.4925561703114281, 0.4867611913165411, 0.4798413402542763, 0.47317108324890034, 0.46808993266388654, 0.4656522290951328, 0.46162336393179737, 0.46117340198363005, 0.4621798952266195, 0.46609156372751087, 0.4678130469875587, 0.4686905856981094, 0.46911234531269047, 0.46928540097983723, 0.4718428012964543, 0.47683767778951847, 0.4794042180520472, 0.48174393553515327, 0.48674523395181885, 0.4940272619686459, 0.4998132089066655, 0.5030805157602841, 0.5099227940635362, 0.51817040316967, 0.5277473139992946, 0.5362879741204696, 0.5391480320593055, 0.542874808101667, 0.5487658710446743, 0.5540705541739426, 0.5587236215232353, 0.5607581382750675, 0.5619934665270758, 0.5626472745933511, 0.5637472833484749, 0.5652932633909208, 0.5679632831960684, 0.5705893277245196, 0.5747894815158806, 0.5779250431798915, 0.580702649965884, 0.5853376695650704, 0.5883766230620496, 0.5913506770956931, 0.5963769689905719, 0.6024587875562989, 0.6028560984534708, 0.60442184594733, 0.606136694191721, 0.606130286589037, 0.6079744645031461, 0.608418692963885, 0.6080227519682636, 0.6085722560548105, 0.6102122703958244, 0.6121586509057381, 0.6158164577214089, 0.6218232130454091, 0.6271640313593022, 0.6333037253541777, 0.6394296677096096, 0.6437913396398288, 0.6477894746778563, 0.6499566150805562, 0.6517570270034642, 0.6558717370456575, 0.6588571372493698, 0.6630181257917068, 0.666808591846344, 0.6713150649537772, 0.6765587856906142, 0.6798423696521481, 0.6830141592415838, 0.6864683629091944, 0.6887692940194186, 0.6917090033218364, 0.6962733252979392, 0.6992745702545548, 0.7035595649700161, 0.709089051591898, 0.7131211537623791, 0.7149200005312702, 0.7144642986211492, 0.7147527727890618, 0.7162814618335487, 0.7176322570802655, 0.718003027086135, 0.7202371669112556, 0.7230089520616366, 0.7231703510763812, 0.7219544871888763, 0.7231843762650121, 0.7240417354883785, 0.7234437111348055, 0.7196833663704736, 0.7173843284487145, 0.7160173450283084, 0.7152155900594646, 0.7099834564577013, 0.7037962433459629, 0.6987017101981878, 0.6971656756539367, 0.6935479246525249, 0.6914620621769997, 0.6895875705972971, 0.6859611686798396, 0.6832621261826302, 0.6779169565512406, 0.6731571988361701, 0.6680517515240698, 0.6636384699888366, 0.6618040580321117, 0.6599004562217506, 0.6583140655282883, 0.657413108558855, 0.6566381776701915, 0.6552091580584053, 0.6571572908659369, 0.6588177378204744, 0.6618499913788676, 0.6659763882712629, 0.6666530716531096, 0.6709283460813531, 0.6730547640224568, 0.6749822830629834, 0.6787067416414648, 0.6821142339625487, 0.6857788236793689, 0.6884269477327951, 0.6907132449839822, 0.69195819022944, 0.6943346221349308, 0.6948157205870413, 0.6963596571285143, 0.6953577455447513, 0.6931897886146023, 0.6955063242423927, 0.6965212005405279, 0.6951234619057219, 0.6932480777586011, 0.6919894416978937, 0.692296157587697, 0.6947697729792167, 0.693797924975894, 0.6923962309737776, 0.6927026352198228, 0.6952262813843388, 0.6968286929662917, 0.7002035834018786, 0.703275429188544, 0.7056527290448885, 0.7063285800226637, 0.7053956796662685, 0.7035222643455413, 0.7017929398788249, 0.7008109005000404, 0.7005708048720111, 0.6983746059390727, 0.6942902380955852, 0.6893435971896613, 0.6863982313606211, 0.6829570020490059, 0.6805431686118629, 0.6783688349166487, 0.6751265708870083, 0.6723310902220947, 0.667953033350338, 0.667239331323927, 0.6679708212496132, 0.6675808109298219, 0.6649926075905394, 0.6590705777862654, 0.6507165744845583, 0.6415997486898821, 0.6314835492314266, 0.6253592954345131, 0.6187557949648423, 0.6097555201437486, 0.6004775928966204, 0.5909734858444691, 0.5837280061197943, 0.5771085258091678, 0.5710795500956705, 0.5674117901317035, 0.5639559166410117, 0.5560560458091454, 0.5464042235432061, 0.5369886802907742, 0.5260578689872003, 0.5146942875545939, 0.5068464006094964, 0.4991527514619581, 0.49423852577881255, 0.48860701940595674, 0.480221019272567, 0.47124972447065516, 0.46495378247342484, 0.45704732548525057, 0.44898495855463616, 0.4426334344547195, 0.43806772913461306, 0.43022296527856185, 0.42347889626241403, 0.41720007630985184, 0.4136276869636345, 0.4089280354808196, 0.4027458523551993, 0.39820332302728856, 0.3937278848014541, 0.3899979151916994, 0.3863044166008794, 0.38688964836641204, 0.38702391715971096, 0.38649290066490144, 0.38734360208623686, 0.3848141375882084, 0.38430750886525855, 0.3830044620397153, 0.38133477761041634, 0.37916097982650326, 0.37782452091082525, 0.37940892673171794, 0.3812241713489519, 0.3813121265306453, 0.3796927584302036, 0.3812097934867209, 0.38305331552211686, 0.3853952140356717, 0.38796371948789987, 0.3901950842556388, 0.3935788616269071, 0.39654696336237316, 0.39922273283572546, 0.4017385607462756, 0.4053883001564296, 0.40776210886701675, 0.4116475553130135, 0.41456614252999274, 0.42003068666167676, 0.4248321032970293, 0.42865293746139527, 0.43325038298548857, 0.4383075430320017, 0.4427771399171737, 0.44788332250396995, 0.45105116820610336, 0.45225311885082614, 0.45067507031866594, 0.45158521929561535, 0.45154470923516843, 0.450552072662967, 0.4523468841117481, 0.45253595016451825, 0.4490765189951407, 0.44301776123429787, 0.43937301275233553, 0.43355354354997305, 0.42757262148554326, 0.4223364688466113, 0.41742423003266793, 0.40993061523180957, 0.40404421766678095, 0.4000609522093555, 0.39593784773148355, 0.3930802414283757, 0.38882062899405356, 0.3800817205351201, 0.3720332450728715, 0.36424142225219275, 0.35489368219905026, 0.34787922237488006, 0.3441374029623767, 0.33926147303022863, 0.33383843179482875, 0.32975049581244387, 0.32327573346326016, 0.3169562319364436, 0.3102998401124513, 0.3056780002171619, 0.3011689225289589, 0.29581008262433434, 0.2940872933970155, 0.29101009060610844, 0.2889018450230598, 0.28813968102068804, 0.2886561479492506, 0.286537935407239, 0.28586389891804975, 0.2856317995603207, 0.2845265915630776, 0.2833930310712931, 0.2830182753590919, 0.28304689375446834, 0.2868883583532526, 0.29318081276286245, 0.296740627890248, 0.2992495114211546, 0.2989271799995348, 0.30159483387796204, 0.3063912853856686, 0.3115947686359715, 0.3198222054044539, 0.3274698387788456, 0.3348551383414612, 0.3440736094527661, 0.3529637141641392, 0.36286967356376754, 0.373097715512391, 0.38146993049954503, 0.3884176661877383, 0.39564020850546405, 0.39996734618762797, 0.4051318697929706, 0.4122529781765717, 0.4189305625329652, 0.423656352180917, 0.42692009259388475, 0.42816497448002244, 0.4316818747055874, 0.4355191019071501, 0.4385685541239111, 0.44121350069318027, 0.44679121460090354, 0.45261866023779007, 0.4540865776025045, 0.4570388476801059, 0.45925524362672654, 0.4598777377293258, 0.4610728434878764, 0.46248564393353214, 0.4648503148494518, 0.46741176723567085, 0.4727802343246143, 0.47866888796552415, 0.48452959818031804, 0.4893236910311349, 0.49730222733427637, 0.5036440903539712, 0.5080844948331608, 0.5121083102108824, 0.5185012449044457, 0.5245650316369126, 0.5316773750994408, 0.5379657204254725, 0.5427952944315851, 0.5478144360609146, 0.5543182436367468, 0.5622680294927683, 0.566952056877051, 0.5675476937869053, 0.5693363941343147, 0.5737352817065056, 0.5788858527112133, 0.582302598797372, 0.5850869877686545, 0.584475239993816, 0.5834724696523955, 0.5787348365928072, 0.5748562000020513, 0.5731370568910655, 0.5700692350763074, 0.5702474189867942, 0.5748194295245395, 0.5775317921092726, 0.5769592925762324, 0.5770683413136036, 0.5745557921112358, 0.5722768903866534, 0.5683708021784426, 0.5659344366568441, 0.5676975497970463, 0.56757219370248, 0.5712507096762454, 0.5748768393981593, 0.5769695153756225, 0.5770067176970881, 0.5781297117849662, 0.5788159646202838, 0.5788568848307851, 0.5770578406165945, 0.5724618525956365, 0.56995717096345, 0.5655271582957052, 0.5601454713555023, 0.5545708527637575, 0.5494945068059172, 0.5475183514044918, 0.5465350829535307, 0.5460797564469599, 0.5458567119641885, 0.5442339060993434, 0.5398892032281408, 0.5335555239177805, 0.528028017463116, 0.5242229113803992, 0.5191945422950112, 0.511743076906009, 0.506620649962875, 0.5037119842822743, 0.4993421216411793, 0.4941865917963776, 0.4871329010313892, 0.4811994486556068, 0.47366859465188543, 0.4666305017639574, 0.46264690853312007, 0.4604112348256128, 0.45809363739084163, 0.4577986790911489, 0.4563819757343496, 0.4542103005579692, 0.4507884413800718, 0.4435798733562135, 0.4376971649764914, 0.4309119825819406, 0.42792241672135417, 0.42980858241089975, 0.43243570336087955, 0.43345299070799287, 0.4338762390918839, 0.43448923906849235, 0.43411730472483256, 0.4352330395333535, 0.4353800850431325, 0.4349920492607554, 0.4358276349150365, 0.4379947537125004, 0.4388834035979543, 0.4400288948904474, 0.4410648681029845, 0.43838016247216477, 0.43560638311770183, 0.42948172003922774, 0.4233417411844637, 0.4180953538192523, 0.41386356271541974, 0.41158102587483786, 0.4104404021815804, 0.40848674473469415, 0.4094255054178947, 0.41048809845887, 0.4069838138159847, 0.40332758061395535, 0.4016152584169082, 0.40028281542353816, 0.4020990134281787, 0.4051077223546318, 0.4098740523326818, 0.41211338337969405, 0.41209455185745986, 0.41162912122699236, 0.4136999435117465, 0.4145588651135917, 0.4139408899709703, 0.41068551926994057, 0.40482817593688974, 0.4028559118220928, 0.39857633129730397, 0.3926782453827667, 0.38789418103189155, 0.3831905177567022, 0.3748820287099873, 0.3636382118113768, 0.3548494999333428, 0.34977981391983487, 0.3439382192075092, 0.34075117588819015, 0.33642956571451904, 0.3358312660426383, 0.3392062989062321, 0.34110185650295666, 0.34164427605052383, 0.3443828875429207, 0.34701780389077713, 0.34731014631079504, 0.3488235136127961, 0.3538398933031367, 0.3577019427528265, 0.36256016143293457, 0.3660696742070618, 0.371136292414616, 0.37574496687947356, 0.3838025568746557, 0.39238423421566393, 0.40086312763062265, 0.4046390875692236, 0.4073997820930714, 0.4060005620439857, 0.4058270657141621, 0.4078064596247222, 0.41070317909077175, 0.4136582785292148, 0.4158119666399514, 0.417401307137382, 0.4189210897698848, 0.42030608500516237, 0.42092328837142656, 0.42236479511791275, 0.42398480940415095, 0.424837053112262, 0.4244081093524877, 0.4258427273074591, 0.42717890279066034, 0.42883449357948994, 0.4301004872589619, 0.4306716606821444, 0.43308619190723147, 0.43491107280260505, 0.4357365904862324, 0.43682934843575494, 0.4378294979149925, 0.44094634344800127, 0.44290365890001837, 0.4456656294194499, 0.45003806491900405, 0.45393225398532255, 0.4585828612586327, 0.4616589844881937, 0.4667430865676973, 0.471764677486785, 0.47433440326816456, 0.47814701084998185, 0.4797323108088622, 0.48102851675177005, 0.48147827557109374, 0.4800935333614972, 0.4828859512059914, 0.4853750750493839, 0.4893840391128349, 0.4933006525019699, 0.4963059660100401, 0.49527197178324867, 0.4957728169696612, 0.4968349504506793, 0.49703487839231375, 0.49712784939688687, 0.4940185892437942, 0.4899420938813112, 0.4847623989193565, 0.4813357610803472, 0.4804188602348639, 0.47862178574032127, 0.4778633195819506, 0.4780210843669026, 0.4766053434613943, 0.4776923282763413}; // 0=Air, 1=Log, 2=Leaves, 3=Random fruit // Coal, Iron, Copper and Tin int treemap[][][] = { {{0,0,0,0,0,0,0}, {0,0,2,2,2,0,0}, {0,2,2,2,2,2,0}, {0,2,2,2,2,2,0}, {0,3,2,1,2,3,0}, {0,0,3,1,3,0,0}, {0,0,0,1,0,0,0}}, {{0,0,0,2,0,0,0}, {0,0,2,2,2,0,0}, {0,2,2,2,2,2,0}, {0,0,2,2,2,0,0}, {0,2,2,2,2,2,0}, {2,2,2,1,2,2,2}, {0,0,0,1,0,0,0}}, {{0,2,2,0,2,2,0}, {2,3,3,2,3,3,2}, {3,0,0,1,0,0,3}, {0,0,0,1,0,0,0}, {0,0,0,1,0,0,0}, {0,0,0,1,0,0,0}, {0,0,0,1,0,0,0}}, {{0,2,2,2,2,2,0}, {2,2,2,2,2,2,2}, {2,2,2,2,2,2,2}, {2,2,2,2,2,2,2}, {0,2,0,1,0,2,0}, {0,0,0,1,0,0,0}, {0,0,0,1,0,0,0}} }; class InventoryEntry { Block block; int count; InventoryEntry(Block b, int a) { count = a; block = b; } } InventoryEntry[] inventory = new InventoryEntry[10]; class CraftingRecipe { InventoryEntry input1; InventoryEntry input2; InventoryEntry input3; InventoryEntry input4; InventoryEntry output; boolean onhand = false; boolean onsmall = false; boolean onbig = false; boolean onfurnace = false; boolean onsmoker = false; boolean onanvil = false; CraftingRecipe(InventoryEntry i1, InventoryEntry i2, InventoryEntry i3, InventoryEntry i4, InventoryEntry out, boolean on1, boolean on2, boolean on3, boolean on4, boolean on5, boolean on6) { input1 = i1; input2 = i2; input3 = i3; input4 = i4; output = out; onhand = on1; onsmall = on2; onbig = on3; onfurnace = on4; onsmoker = on5; onanvil = on6; } } void breakanim(double subX, double subY, int state) { if (state == 0) { image("https://i.ibb.co/hLBrJSq/sprite-0.png", subX*16, subY*16, 16, 16); } else if (state == 1) { image("https://i.ibb.co/y6mnbsk/sprite-1.png", subX*16, subY*16, 16, 16); } else if (state == 2) { image("https://i.ibb.co/2jn6CBJ/sprite-2.png", subX*16, subY*16, 16, 16); } else if (state == 3) { image("https://i.ibb.co/mvrCpnM/sprite-3.png", subX*16, subY*16, 16, 16); } else if (state == 4) { image("https://i.ibb.co/Wxk7PkN/sprite-4.png", subX*16, subY*16, 16, 16); } else if (state == 5) { image("https://i.ibb.co/YfTmq1S/sprite-5.png", subX*16, subY*16, 16, 16); } else if (state == 6) { image("https://i.ibb.co/z7rCYFV/sprite-6.png", subX*16, subY*16, 16, 16); } else if (state == 7) { image("https://i.ibb.co/HTwPpR8/sprite-7.png", subX*16, subY*16, 16, 16); } } // 10 minutes = 1 day cycle // 4 min. day and 4 min. night // 1 min. sunrise/sunfall double daystate = 0; // In minutes void player(int state) { image("https://i.ibb.co/7YMFP7y/sprite-0.png", 154, 154, 12, 12); } double grad2(double x, double a, double b) { return (b*x)+(a*(1.0-x)); } double grad4(double x, double a, double b, double c, double d) { double x2 = (x*3.0)%1.0; if (x < 1.0/3.0) { return grad2(x2, a, b); } else if (x >= 1.0/3.0 && x < 2.0/3.0) { return grad2(x2, b, c); } else { return grad2(x2, c, d); } } class LightPoint { int level; int x; int y; LightPoint(int _x, int _y, int _level) { level=_level;x=_x;y=_y; } } int minheight[] = new int[4096]; class Block { int id; int x; int y; int light; LightPoint lights[] = new LightPoint[61]; // Can have maximum 61 light sources int count = 0; boolean haslightfrom(int x, int y) { for (int i = 0; i < count; i++) { if (lights[i].x == x && lights[i].y == y) { return true; } } return false; } void removelightfrom(int x, int y) { int index = -1; for (int i = 0; i < count; i++) { if (lights[i].x == x && lights[i].y == y) { index = i; i = count; } } if (index != -1) { for (int i = index+1; i < count; i++) { lights[i-1] = new LightPoint(lights[i].x, lights[i].y, lights[i].level); } count--; updatelight(); } } void addlightfrom(int x, int y, int level) { lights[count] = new LightPoint(x, y, level); count++; updatelight(); } void updatelight() { light = 0; for (int i = 0; i < count; i++) { light = round(max(lights[i].level, light)); } } Block(int _id, int _x, int _y) { id=_id;x=_x;y=_y; light = 0; } void show(double subX, double subY, int k) { noStroke(); noFill(); if (!notfull(id)) { int pid = id; id = 0; show(subX, subY, k); id = pid; } else if (id == 4 && y > 0) { if (world[x][y-1].id == 0) { int pid = id; id = 0; show(subX, subY, k); id = pid; } } if (id == 3) { image("https://i.ibb.co/K9cWWpQ/sprite-00.png", subX*16, subY*16, 16, 16); } else if (id == 2) { image("https://i.ibb.co/ydnBwwj/sprite-01.png", subX*16, subY*16, 16, 16); } else if (id == 1) { image("https://i.ibb.co/SXmHx1b/sprite-02.png", subX*16, subY*16, 16, 16); } else if (id == 5) { image("https://i.ibb.co/JBHJZTQ/sprite-03.png", subX*16, subY*16, 16, 16); } else if (id == 6) { image("https://i.ibb.co/vZ10zBS/sprite-04.png", subX*16, subY*16, 16, 16); } else if (id == 7) { image("https://i.ibb.co/5KRnZtM/sprite-05.png", subX*16, subY*16, 16, 16); } else if (id == 8) { image("https://i.ibb.co/30yJ225/sprite-07.png", subX*16, subY*16, 16, 16); } else if (id == 9) { image("https://i.ibb.co/fHwkBmj/sprite-08.png", subX*16, subY*16, 16, 16); } else if (id == 11) { image("https://i.ibb.co/ftLZyRy/sprite-06.png", subX*16, subY*16, 16, 16); } else if (id == 10) { image("https://i.ibb.co/vQrDxTm/New-Piskel-14-png.png", subX*16, subY*16, 16, 16); } else if (id == 12) { image("https://i.ibb.co/Nm6cnxt/sprite-09.png", subX*16, subY*16, 16, 16); } else if (id == 13) { image("https://i.ibb.co/dKQVZ1b/sprite-10.png", subX*16, subY*16, 16, 16); } else if (id == 15) { image("https://i.ibb.co/7rscYmp/sprite-11.png", subX*16, subY*16, 16, 16); } else if (id == 14) { image("https://i.ibb.co/KrwrGzD/sprite-12.png", subX*16, subY*16, 16, 16); } else if (id == 16) { image("https://i.ibb.co/WcVxLb3/New-Piskel-16-png-1.png", subX*16, subY*16, 16, 16); } else if (id == 17) { image("https://i.ibb.co/yRvf77q/New-Piskel-17-png-1.png", subX*16, subY*16, 16, 16); } else if (id == 18) { image("https://i.ibb.co/ZhVptc4/New-Piskel-18-png-1.png", subX*16, subY*16, 16, 16); } else if (id == 19) { image("https://i.ibb.co/C1JvPJn/New-Piskel-19-png-1.png", subX*16, subY*16, 16, 16); } else if (id == 20) { image("https://i.ibb.co/jvWBKQq/New-Piskel-1-png-3.png", subX*16, subY*16, 16, 16); } else if (id == 21) { image("https://i.ibb.co/dk0X38G/sprite-0.png", subX*16, subY*16, 16, 16); } else if (id == 22) { image("https://i.ibb.co/WHvc4KP/sprite-1.png", subX*16, subY*16, 16, 16); } else if (id == 23) { image("https://i.ibb.co/YfYRhL6/sprite-2.png", subX*16, subY*16, 16, 16); } else if (id == 24) { image("https://i.ibb.co/WyR3dLC/sprite-0.png", subX*16, subY*16, 16, 16); } else if (id == 25) { image("https://i.ibb.co/T4prx2v/sprite-1.png", subX*16, subY*16, 16, 16); } else if (id == 27) { image("https://i.ibb.co/mJ8bzwt/sprite-0.png", subX*16, subY*16, 16, 16); } else if (id == 28) { image("https://i.ibb.co/tB84jBm/sprite-1.png", subX*16, subY*16, 16, 16); } else if (id == 29) { image("https://i.ibb.co/yY6WNh5/sprite-2.png", subX*16, subY*16, 16, 16); } else if (id == 30) { image("https://i.ibb.co/9s1Rhvw/sprite-3.png", subX*16, subY*16, 16, 16); } else if (id == 26) { image("https://i.ibb.co/f0Pnb11/Ironitm-1-png.png", subX*16, subY*16, 16, 16); } else if (id == -2) { int uk = (millis()/500)%3; if (uk == 0) { image("https://i.ibb.co/dk0X38G/sprite-0.png", subX*16, subY*16, 16, 16); } else if (uk == 1) { image("https://i.ibb.co/WHvc4KP/sprite-1.png", subX*16, subY*16, 16, 16); } else if (uk == 2) { image("https://i.ibb.co/YfYRhL6/sprite-2.png", subX*16, subY*16, 16, 16); } } else if (id == 31) { image("https://i.ibb.co/Mh9jfD7/sprite-0.png", subX*16, subY*16, 16, 16); } else if (id == 32) { image("https://i.ibb.co/dpq825w/sprite-1.png", subX*16, subY*16, 16, 16); } else if (id == 33) { image("https://i.ibb.co/pfdwjg8/sprite-2.png", subX*16, subY*16, 16, 16); } else if (id == 34) { image("https://i.ibb.co/qkKsnZg/sprite-00.png", subX*16, subY*16, 16, 16); } else if (id == 35) { image("https://i.ibb.co/HhHdp3N/sprite-01.png", subX*16, subY*16, 16, 16); } else if (id == 36) { image("https://i.ibb.co/sQbYgyX/sprite-02.png", subX*16, subY*16, 16, 16); } else if (id == 37) { image("https://i.ibb.co/0mydKrK/sprite-03.png", subX*16, subY*16, 16, 16); } else if (id == 38) { image("https://i.ibb.co/T4PRhdL/sprite-04.png", subX*16, subY*16, 16, 16); } else if (id == 39) { image("https://i.ibb.co/SKHqkLD/sprite-05.png", subX*16, subY*16, 16, 16); } else if (id == 40) { image("https://i.ibb.co/y07Jqgs/sprite-06.png", subX*16, subY*16, 16, 16); } else if (id == 41) { image("https://i.ibb.co/KLsQxJy/sprite-07.png", subX*16, subY*16, 16, 16); } else if (id == 42) { image("https://i.ibb.co/cDxrK5x/sprite-08.png", subX*16, subY*16, 16, 16); } else if (id == 43) { image("https://i.ibb.co/LpL3KZ5/sprite-09.png", subX*16, subY*16, 16, 16); } else if (id == 44) { image("https://i.ibb.co/B28V4kd/sprite-10.png", subX*16, subY*16, 16, 16); } else if (id == 47) { image("https://i.ibb.co/D8T7Cdd/New-Piskel-1-png-6.png", subX*16, subY*16, 16, 16); } else if (id == 4) { fill(0, 0, 255); stroke(0, 0, 255); int l = 16; if (id == 4 && y > 0) { if (world[x][y-1].id == 0) { l = 12; } } rect(subX*16, subY*16 + (16-l), 16, l); } else if (id == 0) { fill(82, 194, 255); stroke(82, 194, 255); if (k > 0) { fill(51); stroke(51); } rect(subX*16, subY*16, 16, 16); } if (k >= 1) { noFill(); stroke(0); if (sel == k - 1) { stroke(255); } if (k >= 11) { int cnt = 0; for (int i = 0; i < 10; i++) { if (compatible(inventory[i].block.id, id)) { cnt += inventory[i].count; } } if (cnt < k - 10) { stroke(255, 0, 0); } } strokeWeight(2); rect(subX*16, subY*16, 16, 16); strokeWeight(1); } } } // MAGIC IDs // -1 = Any log type // -2 = Any plank type // -3 = Any stone type CraftingRecipe[] recipes = { /* Apple Log -> 4x Apple Planks */ new CraftingRecipe(new InventoryEntry(new Block(6, 0, 0), 1), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(21, 0, 0), 4), true, false, false, false, false, false), /* Palm Log -> 4x Palm Planks */ new CraftingRecipe(new InventoryEntry(new Block(25, 0, 0), 1), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(22, 0, 0), 4), true, false, false, false, false, false), /* Spruce Log -> 4x Spruce Planks */ new CraftingRecipe(new InventoryEntry(new Block(24, 0, 0), 1), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(23, 0, 0), 4), true, false, false, false, false, false), /* 2x Planks -> 4x Sticks */ new CraftingRecipe(new InventoryEntry(new Block(-2, 0, 0), 2), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(26, 0, 0), 4), true, false, false, false, false, false), /* 3x Planks + 2x Sticks -> Small Workbench */ new CraftingRecipe(new InventoryEntry(new Block(-2, 0, 0), 3), new InventoryEntry(new Block(26, 0, 0), 2), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(35, 0, 0), 1), true, false, false, false, false, false), /* (Small workbench) 4x Stone + 5x Planks -> Furnace */ new CraftingRecipe(new InventoryEntry(new Block(-2, 0, 0), 5), new InventoryEntry(new Block(1, 0, 0), 4), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(39, 0, 0), 1), false, true, true, false, false, false), /* (Small workbench) 6x Sticks -> 2x Ladders */ new CraftingRecipe(new InventoryEntry(new Block(26, 0, 0), 6), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(20, 0, 0), 2), false, true, true, false, false, false), /* (Furnace) 1x Iron Ore -> 2x Iron Ingots */ new CraftingRecipe(new InventoryEntry(new Block(13, 0, 0), 1), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(27, 0, 0), 2), false, false, false, true, false, false), /* (Furnace) 1x Copper Ore -> 2x Copper Ingots */ new CraftingRecipe(new InventoryEntry(new Block(14, 0, 0), 1), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(28, 0, 0), 2), false, false, false, true, false, false), /* (Furnace) 1x Tin Ore -> 2x Tin Ingots */ new CraftingRecipe(new InventoryEntry(new Block(15, 0, 0), 1), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(29, 0, 0), 2), false, false, false, true, false, false), /* (Furnace) 1x Gold Ore -> 2x Gold Ingots */ new CraftingRecipe(new InventoryEntry(new Block(16, 0, 0), 1), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(0, 0, 0), 0), new InventoryEntry(new Block(30, 0, 0), 2), false, false, false, true, false, false) }; double breaktime[] = { 0.0, 5.0, 1.0, 1.0, 0.0, 0.5, 2.0, 0.1, 0.1, 0.1, 0.1, 0.1, 6.0, 6.5, 7.0, 5.5, 6.5, 7.5, 5.5, 8.0, 0.5, 1.5, 1.5, 1.5, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.5, 1.5, 1.5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, }; class Entity { // ToDo: Implement 3 basic entities: Items, Clouds and Particles vec2d pos; String type; int state; } int sel = 0; double min(double a, double b) { return a
b?a:b; } class vec2d { double x = 0; double y = 0; vec2d(double ux, double uy) { x = ux; y = uy; } vec2d set(vec2d v) { x = v.x; y = v.y; return this; } vec2d add(vec2d v) { x += v.x; y += v.y; return this; } vec2d sub(vec2d v) { x -= v.x; y -= v.y; return this; } vec2d mul(vec2d v) { x *= v.x; y *= v.y; return this; } vec2d vpow(vec2d v) { x = pow(x, v.x); y = pow(y, v.y); return this; } vec2d div(vec2d v) { x /= v.x; y /= v.y; return this; } vec2d lim(vec2d v) { x = (x > v.x) ? v.x : x; y = (y < v.y) ? v.y : y; return this; } vec2d slm(vec2d v) { x = (x < v.x) ? v.x : x; y = (y < v.y) ? v.y : y; return this; } void rot(double a) { x = x * cos(a); y = y * sin(a); } } Block world[][] = new Block[4096][256]; // Blocks are 16x16 in screen, using 4x4 images vec2d pos; vec2d vel; vec2d acc; void main() { println("Just squares, made by Julio Meroño Sáez"); println("Sprites done with Aseprite"); println("Please wait until the world is generated"); println("Controls(Play mode):"); println("Space -> Jump"); println("A -> Move left"); println("D -> Move right"); println("1, 2, 3, 4, ..., 0 -> Select inventory slot"); println("Hold right click on air or water -> Place selected block"); println("Hold left click on block -> Break block"); println("R -> Open/Close crafting menu"); println("Controls(Crafting menu):"); println("W -> Move up in crafting list"); println("S -> Move down in crafting list"); println("Space -> Craft item"); println("Now I'm working in a offline version with multiplayer, game saves, a soundtrack, better graphics, etc."); println("Thank you for playing and please vote :)"); pos = new vec2d(2241, 135); vel = new vec2d(0, 0); acc = new vec2d(0, 0); for (int i = 0; i < 10; i++) { inventory[i] = new InventoryEntry(new Block(0, 0, 0), 0); } inventory[0].block.id = 31; inventory[0].count = 1; inventory[1].block.id = 32; inventory[1].count = 1; inventory[2].block.id = 33; inventory[2].count = 1; for (int i = 0; i < 24; i++) { for (int j = 0; j < 24; j++) { loadmap[i][j] = 1; } } for (int c = 0; c < 240; c++) { mpos.add(new vec2d(0.1, 0)); if (mpos.x >= 1.0) { int dirty = round(perlin2[makeupos] * 5); for (int i = 1; i < 24; i++) { for (int j = 0; j < 24; j++) { loadmap[i-1][j] = loadmap[i][j]; } } for (int i = -1; i < 22; i++) { loadmap[23][i+2] = 1; if (random(0, 1) >= 0.9) { loadmap[23][i+2] = 12; } if (i <= dirty) { loadmap[23][i+2] = 2; } } loadmap[23][2] = 3; mpos.x = 0; } makeupos++; } for (int i = 0; i < 4096; i++) { minheight[i] = 255; } animate(make, 10); } void btest() { background(0); for (int i = 0; i < 20; i++) { for (int j = 0; j < 20; j++) { Block b = new Block(i + (j*20), 0, 0); b.show(i, j, 0); } } } int k = 10; int t2 = 0; int imax(int a, int b) { return a>b?a:b; } int imin(int a, int b) { return a
= 1.0) { int dirty = round(perlin2[makeupos] * 5); for (int i = 1; i < 24; i++) { for (int j = 0; j < 24; j++) { loadmap[i-1][j] = loadmap[i][j]; } } for (int i = -1; i < 22; i++) { loadmap[23][i+2] = 1; if (random(0, 1) >= 0.9) { loadmap[23][i+2] = 12; } if (i <= dirty) { loadmap[23][i+2] = 2; } } loadmap[23][2] = 3; mpos.x = 0; } makeupos++; if (!done1) { for (int c = 0; c < k; c++) { for (int i = 0; i < 4096; i++) { int id = 0; if (perlin[i] <= 95 && 255-t <= 95) { id = 4; } if (255-t <= perlin[i]) { id = 1; } world[i][t] = new Block(id, i, t); if (id != 0) { minheight[i] = round(min(minheight[i], t)); } } if (t == 255) { done1 = true; c = k; } t++; } } double ms = millis(); double pm = pmillis; if (1000/(ms-pm) < 12) { k--; } else if (1000/(ms-pm) > 36) { k++; } stroke(255); fill(255); rect(20, 280, 280, 20); noStroke(); fill(63, 63, 255); rect(20, 280, ((280*(t+1))+(280*(t2+1)))/512, 20); pmillis = millis(); if (done1) { for (int w = 0; w < k; w++) { int j = round(t2); for (int i = 0; i < 4096; i++) { if ((255-j < 111) && world[i][j].id == 1 && (world[i][j-1].id == 0 || world[i][j-1].id == 4 || world[i][j-1].id == 6 || world[i][j-1].id == 7 || world[i][j-1].id == 8 || world[i][j-1].id == 9 || world[i][j-1].id == 10 || world[i][j-1].id == 11)) { int nid = 0; if (world[i][j-1].id == 4) { nid = 5; } else { nid = 2; } if (i > 0) { if (world[i-1][j].id == 4) { nid = 5; } } if (i < 4095) { if (world[i+1][j].id == 4) { nid = 5; } } world[i][j].id = nid; if (world[i][j+1].id == 1 && perlin2[i] > 0.2) { world[i][j+1].id = nid; if (world[i][j+2].id == 1 && perlin2[i] > 0.4) { world[i][j+2].id = nid; if (world[i][j+3].id == 1 && perlin2[i] > 0.6) { world[i][j+3].id = nid; if (world[i][j+4].id == 1 && perlin2[i] > 0.8) { world[i][j+4].id = nid; } } } } } if (world[i][j].id == 2 && (world[i][j-1].id == 0 || world[i][j-1].id == 7 || world[i][j-1].id == 8 || world[i][j-1].id == 9 || world[i][j-1].id == 10 || world[i][j-1].id == 11)) { world[i][j].id = 3; int mkt = 0; int mky = 0; if (255-j >= 96 && 255-j <= 100) { mkt = 8; mky = 2; if (random(0, 1) > 0.75) { mky = 0; } } else if (255-j >= 100 && 255-j <= 108) { mkt = 4; mky = 0; if (random(0, 1) > 0.9) { if (random(0, 1) >= 0.5) { mky = 1; } else { mky = 3; } } } else if (255-j >= 108) { mkt = 6; if (random(0, 1) >= 0.5) { mky = 1; } else { mky = 3; } } if (tst >= mkt) { double rnd = random(0, 1); boolean dotree = rnd >= 0.5; if (dotree) { world[i][j].id = 2; int x = 0; int treetype = mky; for (int i2 = -3; i2 < 4; i2++) { int y = 0; for (int j2 = -7; j2 < 0; j2++) { if (treemap[treetype][y][x] == 1) { minheight[i] = round(min(minheight[i], j+j2)); if (treetype == 0) { world[i+i2][j+j2].id = 6; } else if (treetype == 2) { world[i+i2][j+j2].id = 25; } else { world[i+i2][j+j2].id = 24; } } else if (treemap[treetype][y][x] == 2) { minheight[i] = round(min(minheight[i], j+j2)); if (treetype == 0) { world[i+i2][j+j2].id = 7; } else if (treetype == 2) { world[i+i2][j+j2].id = 10; } else { world[i+i2][j+j2].id = 11; } } else if (treemap[treetype][y][x] == 3) { minheight[i] = round(min(minheight[i], j+j2)); if (random(0, 1) >= 0.8) { if (treetype == 2) { world[i+i2][j+j2].id = 9; } else { world[i+i2][j+j2].id = 8; } } } y++; } x++; } tst = 0; } } } if (world[i][j].id == 1) { if (255-j < 96) { if (random(0, 1) >= 0.995) { world[i][j].id = 12; } if (world[i][imax(j-1,0)].id == 12 || world[i][imin(j+1,255)].id == 12 || world[imax(i-1,0)][j].id == 12 || world[imin(i+1,4095)][j].id == 12) { if (random(0, 1) >= 0.60) { world[i][j].id = 12; } } } if (255-j < 80) { if (random(0, 1) >= 0.997) { world[i][j].id = 13; } if (world[i][imax(j-1,0)].id == 13 || world[i][imin(j+1,255)].id == 13 || world[imax(i-1,0)][j].id == 13 || world[imin(i+1,4095)][j].id == 13) { if (random(0, 1) >= 0.575) { world[i][j].id = 13; } } } if (255-j > 64) { if (random(0, 1) >= 0.9925) { world[i][j].id = 15; } if (world[i][imax(j-1,0)].id == 15 || world[i][imin(j+1,255)].id == 15 || world[imax(i-1,0)][j].id == 15 || world[imin(i+1,4095)][j].id == 15) { if (random(0, 1) >= 0.60) { world[i][j].id = 15; } } } if (255-j > 64) { if (random(0, 1) >= 0.99) { world[i][j].id = 18; } if (world[i][imax(j-1,0)].id == 18 || world[i][imin(j+1,255)].id == 18 || world[imax(i-1,0)][j].id == 18 || world[imin(i+1,4095)][j].id == 18) { if (random(0, 1) >= 0.80) { world[i][j].id = 18; } } } if (255-j < 32) { if (random(0, 1) >= 0.99) { world[i][j].id = 14; } if (world[i][imax(j-1,0)].id == 14 || world[i][imin(j+1,255)].id == 14 || world[imax(i-1,0)][j].id == 14 || world[imin(i+1,4095)][j].id == 14) { if (random(0, 1) >= 0.60) { world[i][j].id = 14; } } } if (255-j > 16 && 255-j < 24) { if (random(0, 1) >= 0.95) { world[i][j].id = 16; } if (world[i][imax(j-1,0)].id == 16 || world[i][imin(j+1,255)].id == 16 || world[imax(i-1,0)][j].id == 16 || world[imin(i+1,4095)][j].id == 16) { if (random(0, 1) >= 0.80) { world[i][j].id = 16; } } } } } tst++; if (t2 == 255) { done2 = true; w = k; } t2++; } } if (done2) { animate(draw, 16); } } double blocksdone = 0; int t = 0; boolean done1 = false; boolean done2 = false; int pmillis = 0; double framerate = 100; int health = 16; void draw() { background(0); if (!mousePressed) { breakticks = 0; } int sx = -2; for (int i = floor(pos.x) - 12; i < floor(pos.x) + 12; i++) { int sy = -2; for (int j = floor(pos.y) - 12; j < floor(pos.y) + 12; j++) { if (j < 255 && j > 0) { if (i < 4095 && i > 0) { double mx = mouseX; double my = mouseY; double toolspeed = 1; if (compatible(world[i][j].id, -1) || compatible(world[i][j].id, -2)) { if (inventory[sel].block.id == 32) { toolspeed = 2; } } if (compatible(world[i][j].id, -3)) { if (inventory[sel].block.id == 31) { toolspeed = 5; } } if (compatible(world[i][j].id, -4)) { if (inventory[sel].block.id == 33) { toolspeed = 3; } } if (world[i][j].id == 35) { if (world[i+1][j].id == 0) { world[i][j].id = 34; world[i+1][j].id = 36; } else if (world[i-1][j].id == 0) { world[i][j].id = 36; world[i-1][j].id = 34; } else { world[i][j].id = 0; pushinv(35); } } if (world[i][j].id == 39 && world[i][j-1].id == 0) { // Furnace if (world[i][j-1].id == 0) { if (world[i+1][j].id == 0 && world[i+1][j-1].id == 0) { world[i][j].id = 39; world[i+1][j].id = 40; world[i][j-1].id = 37; world[i+1][j-1].id = 38; } else if (world[i-1][j].id == 0 && world[i-1][j-1].id == 0) { world[i][j].id = 40; world[i-1][j].id = 39; world[i][j-1].id = 38; world[i-1][j-1].id = 37; } else { world[i][j].id = 0; pushinv(39); } } else { world[i][j].id = 0; pushinv(39); } } else if (world[i][j].id == 46) { if (world[i][j-1].id == 0) { if (world[i+1][j].id == 0 && world[i+1][j-1].id == 0) { world[i][j].id = 39+4; world[i+1][j].id = 40+4; world[i][j-1].id = 37+4; world[i+1][j-1].id = 38+4; } else if (world[i-1][j].id == 0 && world[i-1][j-1].id == 0) { world[i][j].id = 40+4; world[i-1][j].id = 39+4; world[i][j-1].id = 38+4; world[i-1][j-1].id = 37+4; } else { world[i][j].id = 0; pushinv(46); } } else { world[i][j].id = 0; pushinv(46); } } world[i][j].show(sx - (pos.x % 1), sy - (pos.y % 1), 0); if (sx >= 6 && sy >= 6 && sx <= 13 && sy <= 13) { if (inbox(new vec2d((mx/16), (my/16)), new vec2d(sx - (pos.x % 1), sy - (pos.y % 1)), new vec2d(0.99, 0.99))) { if (!placableon(world[i][j].id)) { if (placableon(world[i+1][j].id) || placableon(world[i-1][j].id) || placableon(world[i][j+1].id) || placableon(world[i][j-1].id)) { if (i != floor(pos.x) || j != floor(pos.y)) { noFill(); stroke(255); rect(16*(sx - (pos.x % 1)), 16*(sy - (pos.y % 1)), 16, 16); if (mousePressed) { if (mouseButton == RIGHTBUTTON) { if (inventory[sel].count > 0 && inventory[sel].block.id != 0) { world[i][j].id = inventory[sel].block.id; inventory[sel].count--; if (inventory[sel].count == 0) { inventory[sel].block.id = 0; } } } } } } } if (placableon(world[i][j].id)) { if (!placableon(world[i+1][j].id) || !placableon(world[i-1][j].id) || !placableon(world[i][j+1].id) || !placableon(world[i][j-1].id)) { if (i != floor(pos.x) || j != floor(pos.y)) { noFill(); stroke(63, 63, 63); rect(16*(sx - (pos.x % 1)), 16*(sy - (pos.y % 1)), 16, 16); if (mousePressed) { if (mouseButton == LEFTBUTTON) { if (breakticks >= (framerate*breaktime[world[i][j].id]) / toolspeed) { int old_id = world[i][j].id; if (world[i-1][j].id == 4 || world[i+1][j].id == 4 || world[i][j-1].id == 4) { world[i][j].id = 4; } else { world[i][j].id = 0; } boolean idone = false; if (old_id == 3) { old_id = 2; } if (old_id == 7 || old_id == 10 || old_id == 11) { old_id = 0; } if (old_id == 34) { old_id = 35; world[i][j].id = 0; world[i+1][j].id = 0; } if (old_id == 36) { old_id = 35; world[i][j].id = 0; world[i-1][j].id = 0; } if (old_id != 0) { for (int p = 0; p < 10; p++) { if (inventory[p].block.id == old_id && inventory[p].count < 96 && inventory[p].count > 0) { inventory[p].count++; p = 10; idone = true; } } if (!idone) { for (int p = 0; p < 10; p++) { if (inventory[p].block.id == 0) { inventory[p].block.id = old_id; inventory[p].count = 1; p = 10; idone = true; } } } if (!idone) { println("NO HAY ESPACIO"); } } breakticks = 0; } else { breakticks++; double bt = breakticks; bt /= (framerate*breaktime[world[i][j].id]) / toolspeed; breakanim(sx - (pos.x % 1), sy - (pos.y % 1), floor(bt*8.0)); } } } } } } } } } } sy++; } sx++; } strokeWeight(1); noStroke(); int state = 0; if (vel.y < -0.05) { state = 1; blinkticks = 0; } else { if (blinkticks >= ceil(framerate)) { blinkticks = 0; state = 2; } else { blinkticks++; } } player(state); for (int i = 0; i < 10; i++) { double d = i; d *= 1.5; inventory[i].block.show(d + 0.5, 0.5, 1 + i); if (inventory[i].count > 1) { bcolor(255, 255, 255); btext("" + inventory[i].count, round((d + 0.5)*16), 26); } } noFill(); stroke(51); rect(16*(6 - (pos.x % 1)), 16*(6 - (pos.y % 1)), 16*8, 16*8); for (int i = 0; i < 16; i++) { double di = i; if (health > i) { image("https://i.ibb.co/yN8Mrkd/sprite-0.png", 250 + (i%8)*8, 8 + (8*floor(di/8)), 8, 8); } else { image("https://i.ibb.co/xzHVsPB/sprite-1.png", 250 + (i%8)*8, 8 + (8*floor(di/8)), 8, 8); } } update(); double ms = millis(); double pm = pmillis; framerate = (framerate * 0.9) + ((1000/(ms-pm)) * 0.1); fill(0); daystate += (ms-pm)/60000.0; if (daystate > 10) { daystate -= 10; } btext(floor(framerate) + " FPS", 10, 300); pmillis = millis(); } int blinkticks = 0; double atan2(double y, double x) { // This should be in Descubre if (x > 0) { return atan(y/x); } else if (x < 0) { if (y >= 0) { return atan(y/x) + PI; } else { return atan(y/x) - PI; } } else { if (y > 0) { return PI/2; } else if (y < 0) { return -PI/2; } else { return 0; } } } double spdX = 0.35; double spdY = 1; boolean kLeft = false; boolean kRight = false; boolean kUp = false; boolean kDown = false; final int PLAYING = 0; final int CRAFTING = 1; final int INVENTORY = 2; int playmode = PLAYING; int maxsel2 = 9; void takeinv(int id) { for (int i = 0; i < 10; i++) { if (compatible(inventory[i].block.id, id)) { if (inventory[i].count >= 1) { inventory[i].count--; if (inventory[i].count == 0) { inventory[i].block.id = 0; } i = 10; } } } } void pushinv(int id) { for (int i = 0; i < 10; i++) { if (inventory[i].block.id == id) { if (inventory[i].count < 96) { inventory[i].count++; i = 10; } } else if (inventory[i].block.id == 0) { inventory[i].block.id = id; inventory[i].count = 1; i = 10; } } } void onKeyPressed(String k) { if (playmode == PLAYING) { if (k == "a") { kLeft = true; } else if (k == "d") { kRight = true; } else if (k == " ") { kUp = true; if (ssolid(world[floor(pos.x)][floor(pos.y + 1)].id) && (pos.y % 1) >= 0.575) { dojump = true; } } else if (k == "down") { kDown = true; } else if (k == "1") { sel = 0; } else if (k == "2") { sel = 1; } else if (k == "3") { sel = 2; } else if (k == "4") { sel = 3; } else if (k == "5") { sel = 4; } else if (k == "6") { sel = 5; } else if (k == "7") { sel = 6; } else if (k == "8") { sel = 7; } else if (k == "9") { sel = 8; } else if (k == "0") { sel = 9; } else if (k == "e") { //playmode = INVENTORY; //animate(fullinv, 16); } else if (k == "r") { playmode = CRAFTING; animate(craft, 16); } } else if (playmode == CRAFTING) { if (k == "w") { if (sel2 <= 0) { sel2 = maxsel2 - 1; } else { sel2--; } } else if (k == "s") { if (sel2 >= (maxsel2 - 1)) { sel2 = 0; } else { sel2++; } } else if (k == " ") { int cnt1 = 0; for (int i = 0; i < 10; i++) { if (compatible(inventory[i].block.id, recipes[sel2].input1.block.id)) { cnt1 += inventory[i].count; } } int cnt2 = 0; for (int i = 0; i < 10; i++) { if (compatible(inventory[i].block.id, recipes[sel2].input2.block.id)) { cnt2 += inventory[i].count; } } int cnt3 = 0; for (int i = 0; i < 10; i++) { if (compatible(inventory[i].block.id, recipes[sel2].input3.block.id)) { cnt3 += inventory[i].count; } } int cnt4 = 0; for (int i = 0; i < 10; i++) { if (compatible(inventory[i].block.id, recipes[sel2].input4.block.id)) { cnt4 += inventory[i].count; } } if (cnt1 >= recipes[sel2].input1.count) { if (cnt2 >= recipes[sel2].input2.count) { if (cnt3 >= recipes[sel2].input3.count) { if (cnt4 >= recipes[sel2].input4.count) { for (int i = 0; i < recipes[sel2].input1.count; i++) { takeinv(recipes[sel2].input1.block.id); } for (int i = 0; i < recipes[sel2].input2.count; i++) { takeinv(recipes[sel2].input2.block.id); } for (int i = 0; i < recipes[sel2].input3.count; i++) { takeinv(recipes[sel2].input3.block.id); } for (int i = 0; i < recipes[sel2].input4.count; i++) { takeinv(recipes[sel2].input4.block.id); } for (int i = 0; i < recipes[sel2].output.count; i++) { pushinv(recipes[sel2].output.block.id); } } } } } } else if (k == "r" || k == "esc") { playmode = PLAYING; animate(draw, 16); } } else if (playmode == INVENTORY) { if (k == "e" || k == "esc") { playmode = PLAYING; animate(draw, 16); } } } int sel2 = 0; int breakticks = -1; boolean compatible(int a, int b) { if (a == b) return true; if (b == -1) { if (a == 6 || a == 24 || a == 25) { return true; } } if (b == -2) { if (a == 21 || a == 22 || a == 23) { return true; } } if (b == -3) { if (a == 1 || (a >= 12 && a <= 19)) { return true; } } if (b == -4) { if (a == 2 || a == 3 || a == 5) { return true; } } return false; } void fullinv() { background(0); } void craft() { noStroke(); image("https://i.ibb.co/p0GZknZ/New-Piskel-1-png-1.png", 0, 0, 320, 320); image("https://i.ibb.co/6NpWK6C/New-Piskel-1-png-8.png", 10, 10, 300, 300); boolean allowsmall = false; boolean allowbig = false; boolean allowanvil = false; boolean allowfurnace = false; boolean allowsmoker = false; int sx = -2; for (int i = floor(pos.x) - 12; i < floor(pos.x) + 12; i++) { int sy = -2; for (int j = floor(pos.y) - 12; j < floor(pos.y) + 12; j++) { if (j < 255 && j > 0) { if (i < 4095 && i > 0) { if (world[i][j].id == 34 || world[i][j].id == 36) { allowsmall = true; } if (world[i][j].id == 39) { allowfurnace = true; } } } } } int i = 0; maxsel2 = 0; for (int c = 0; c < 8; c++) { if ((allowsmall&&recipes[c].onsmall)||(allowbig&&recipes[c].onbig)||(allowanvil&&recipes[c].onanvil)||(allowfurnace&&recipes[c].onfurnace)||(allowsmoker&&recipes[c].onsmoker)||(recipes[c].onhand)) { maxsel2++; noStroke(); if (sel2 == i) { image("https://i.ibb.co/J790kP0/sprite-0.png", 22, 62 + (30*i), 70, 30); } else { image("https://i.ibb.co/55DMDgx/sprite-1.png", 22, 62 + (30*i), 70, 30); } recipes[c].output.block.show(30.0 / 16.0, (67.0 + (30.0*i)) / 16.0, 10); noStroke(); if (i == sel2) { if (recipes[c].input1.block.id != 0) { recipes[c].input1.block.show(100.0 / 16.0, 40.0 / 16.0, 11); fill(255); btext("x" + recipes[c].input1.count, 124, 44); } if (recipes[c].input2.block.id != 0) { recipes[c].input2.block.show(100.0 / 16.0, 60.0 / 16.0, 11); fill(255); btext("x" + recipes[c].input2.count, 124, 64); } if (recipes[c].input3.block.id != 0) { recipes[c].input3.block.show(100.0 / 16.0, 80.0 / 16.0, 11); fill(255); btext("x" + recipes[c].input3.count, 124, 84); } if (recipes[c].input4.block.id != 0) { recipes[c].input4.block.show(100.0 / 16.0, 100.0 / 16.0, 11); fill(255); btext("x" + recipes[c].input4.count, 124, 104); } stroke(0); strokeWeight(4); line(160, 40, 160, 116); line(160, 78, 190, 78); strokeWeight(1); noStroke(); recipes[c].output.block.show(200.0 / 16.0, 70.0 / 16.0, 10); fill(255); btext("x" + recipes[c].output.count, 224, 74); noStroke(); } i++; } } } void onKeyReleased(String k) { if (k == "a") { kLeft = false; } else if (k == "d") { kRight = false; } else if (k == " ") { kUp = false; dojump = false; } else if (k == "down") { kDown = false; } } boolean inbox(vec2d p, vec2d b, vec2d s) { return (p.x >= b.x && p.y >= b.y) && (p.x <= (b.x + s.x) && p.y <= (b.y + s.y)); } boolean dojump = false; boolean solid(int id) { if (id == 0) return false; if (id == 4) return false; if (id == 8) return false; if (id == 9) return false; if (id == 20) return false; if (id == 34) return false; if (id == 35) return false; if (id == 36) return false; if (id == 47) return false; return true; } boolean ssolid(int id) { if (id == 0) return false; if (id == 4) return false; if (id == 8) return false; if (id == 9) return false; if (id == 20) return false; if (id == 47) return false; return true; } boolean placableon(int id) { if (id == 0) return false; if (id == 4) return false; return true; } boolean notfull(int id) { if (id == 20) return false; if (id == 34) return false; if (id == 35) return false; if (id == 36) return false; if (id == 37) return false; if (id == 38) return false; if (id == 41) return false; if (id == 42) return false; if (id == 43) return false; if (id == 44) return false; if (id == 47) return false; if (id == 48) return false; if (id == 8) return false; if (id == 9) return false; return true; } boolean transparent(int id) { if (id == 0) return true; if (id == 4) return true; if (id == 7) return true; if (id == 10) return true; if (id == 11) return true; return false; } vec2d org = new vec2d(0, 0); void update() { if (kUp) { if (world[floor(pos.x)][floor(pos.y)].id == 4 || world[floor(pos.x)][floor(pos.y)].id == 20) { if (world[floor(pos.x)][floor(pos.y)].id == 4) { acc.add((new vec2d(0, -0.05))); } else { acc.add((new vec2d(0, -0.1))); } dojump = true; } else if (dojump && !solid(world[floor(pos.x)][floor(pos.y)].id)) { dojump = false; acc.add((new vec2d(0, -0.67))); org.set(pos); } //if (solid(world[floor(pos.x)][floor(pos.y + 1)].id) && (pos.y % 1) >= 0.95) { // dojump = true; //} } //if (kDown) acc.add(new vec2d(0, 0.1)); if (solid(world[floor(pos.x)][floor(pos.y + 1)].id) && world[floor(pos.x)][floor(pos.y)].id == 0 && (pos.y % 1) >= 0.95) { if (kLeft) acc.add((new vec2d(-0.05, 0))); if (kRight) acc.add((new vec2d(0.05, 0))); } else { if (kLeft) acc.add((new vec2d(-0.02, 0))); if (kRight) acc.add((new vec2d(0.02, 0))); } double spdlimX = spdX; double spdlimY = spdY; vec2d abp = new vec2d(floor(pos.x), floor(pos.y)); if (world[floor(abp.x)][floor(abp.y)].id == 4 || world[floor(abp.x)][floor(abp.y)].id == 20) { acc.add((new vec2d(0, 0.025))); spdlimX = spdX / 3; spdlimY = spdX / 3; } else if (!solid(world[floor(abp.x)][floor(abp.y)].id)) { acc.add((new vec2d(0, 0.05))); } vel.add(acc); if (abs(vel.x) > spdlimX) { double sign = vel.x / abs(vel.x); vel.set(new vec2d(spdlimX*sign, vel.y)); } if (abs(vel.y) > spdlimY) { double sign = vel.y / abs(vel.y); vel.set(new vec2d(vel.x, spdlimY*sign)); } // ..lim thing boolean yplim = false; boolean ynlim = false; boolean xplim = false; boolean xnlim = false; while (solid(world[floor(pos.x)][floor(pos.y)].id)) { pos.y--; } if (pos.y < 255) { if (ssolid(world[floor(pos.x)][floor(pos.y+1)].id)) { yplim = true; } } if (pos.x < 4095) { if (solid(world[floor(pos.x+1)][floor(pos.y)].id)) { xplim = true; } } if (pos.y >= 1) { if (solid(world[floor(pos.x)][floor(pos.y-1)].id)) { ynlim = true; } } if (pos.x >= 1) { if (solid(world[floor(pos.x-1)][floor(pos.y)].id)) { xnlim = true; } } pos.add(vel); // boundary calculation if (xplim) { pos.x = (pos.x>=abp.x+(0.625))?(abp.x+(0.615)):(pos.x); } if (xnlim) { pos.x = (pos.x
=abp.y+(0.625))?(abp.y+(0.615)):(pos.y); } if (ynlim) { pos.y = (pos.y
Canvas not supported.
Programado por
segfaultdev
11 votos
1207 descargas
121 usos