tx · GVigW9kJ7L5kKsj4N9WQkGSwosJv6oNaS5FM7MXUjXCy 3MqbTfLJ5nrYh6fUbS38Hfpe6T8MP5K5HiT: -0.04000000 Waves 2020.08.26 14:53 [1149640] smart account 3MqbTfLJ5nrYh6fUbS38Hfpe6T8MP5K5HiT > SELF 0.00000000 Waves
{ "type": 13, "id": "GVigW9kJ7L5kKsj4N9WQkGSwosJv6oNaS5FM7MXUjXCy", "fee": 4000000, "feeAssetId": null, "timestamp": 1598442851913, "version": 1, "sender": "3MqbTfLJ5nrYh6fUbS38Hfpe6T8MP5K5HiT", "senderPublicKey": "EzWkAi3pMjNqjjV3PpJiHWrButTm4aorR4p173qwdGeL", "proofs": [ "6oGQKiBt1Bfe6mpk72jmHucfvSfmsDywj9t7Rm6toEUegif27u4AEyGKYjBKD19Qjgko5eF19rweAJhypQFb6zT" ], "script": "base64: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AAACCQAAaAAAAAIJAQAAAANzaW4AAAABBQAAAAN5YXcFAAAABXNpblRoBQAAAAZjb3NMYXQAAAAAAAABhqAJAABlAAAAAgUAAAAFY29zVGgJAABpAAAAAgkAAGgAAAACBQAAAAZzaW5MYXQJAQAAAANzaW4AAAABBQAAAAZuZXdMYXQAAAAAAAABhqAJAARMAAAAAgUAAAAGbmV3TGF0CQAETAAAAAIFAAAABm5ld0xvbgUAAAADbmlsAQAAAA1jYWxjdWxhdGVTaG90AAAABQAAAAVwaXRjaAAAAAN5YXcAAAAFZm9yY2UAAAAJcGxheWVyS2V5AAAAC29wcG9uZW50S2V5BAAAAA5wbGF5ZXJMYXRpdHVkZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxwb3NpdGlvbkxhdF8FAAAACXBsYXllcktleQQAAAAPcGxheWVyTG9uZ2l0dWRlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAICAAAADHBvc2l0aW9uTG9uXwUAAAAJcGxheWVyS2V5BAAAABBvcHBvbmVudExhdGl0dWRlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAICAAAADHBvc2l0aW9uTGF0XwUAAAALb3Bwb25lbnRLZXkEAAAAEW9wcG9uZW50TG9uZ2l0dWRlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAICAAAADHBvc2l0aW9uTG9uXwUAAAALb3Bwb25lbnRLZXkEAAAAFmRpc3RhbmNlQmV0d2VlblBsYXllcnMJAQAAAAtncHNEaXN0YW5jZQAAAAQFAAAADnBsYXllckxhdGl0dWRlBQAAAA9wbGF5ZXJMb25naXR1ZGUFAAAAEG9wcG9uZW50TGF0aXR1ZGUFAAAAEW9wcG9uZW50TG9uZ2l0dWRlBAAAAA9vcHRpbWFsVmVsb2NpdHkJAABpAAAAAgkAAGgAAAACBQAAABZkaXN0YW5jZUJldHdlZW5QbGF5ZXJzAAAAAAAADva5AAAAAAAAAYagBAAAAA9wbGF5ZXJTaG90UmVhY2gJAQAAABVjYWxjdWxhdGVTaG90RGlz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", "chainId": 84, "height": 1149640, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DfNpWHBxSUcJti3jxdDgaZZv75RiuWqLpy6a1kzoqvHH Next: 7MS76qDfDaU8kAu19e9Nb1fkVMHKNnPpGDHppaouzmxb Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | func a (b,c,d) = [DataEntry(("positionLat_" + b), c), DataEntry((" | |
4 | + | func a (b,c,d) = [DataEntry(("positionLat_" + b), c), DataEntry(("positionLon_" + b), d)] | |
5 | 5 | ||
6 | 6 | ||
7 | 7 | func e (f,g) = { | |
23 | 23 | let n = (m + (l * 628318)) | |
24 | 24 | if ((n > 314159)) | |
25 | 25 | then { | |
26 | - | let o = (n - 314159) | |
27 | - | let p = ((16 * o) * (314159 - o)) | |
28 | - | let q = (493480220050 - (p / 4)) | |
29 | - | ((p * 100000) / q) | |
26 | + | let o = ((16 * (n - 314159)) * (314159 - (n - 314159))) | |
27 | + | ((o * 100000) / (493480220050 - (o / 4))) | |
30 | 28 | } | |
31 | 29 | else { | |
32 | - | let p = ((16 * n) * (314159 - n)) | |
33 | - | let q = (493480220050 - (p / 4)) | |
34 | - | ((-(p) * 100000) / q) | |
30 | + | let o = ((16 * n) * (314159 - n)) | |
31 | + | ((-(o) * 100000) / (493480220050 - (o / 4))) | |
35 | 32 | } | |
36 | 33 | } | |
37 | 34 | else if ((m > 314159)) | |
38 | 35 | then { | |
39 | - | let n = (m - 314159) | |
40 | - | let p = ((16 * n) * (314159 - n)) | |
41 | - | let q = (493480220050 - (p / 4)) | |
42 | - | ((p * 100000) / q) | |
36 | + | let o = ((16 * (m - 314159)) * (314159 - (m - 314159))) | |
37 | + | ((o * 100000) / (493480220050 - (o / 4))) | |
43 | 38 | } | |
44 | 39 | else { | |
45 | - | let p = ((16 * m) * (314159 - m)) | |
46 | - | let q = (493480220050 - (p / 4)) | |
47 | - | ((-(p) * 100000) / q) | |
40 | + | let o = ((16 * m) * (314159 - m)) | |
41 | + | ((-(o) * 100000) / (493480220050 - (o / 4))) | |
48 | 42 | } | |
49 | 43 | } | |
50 | 44 | else if ((k > 628318)) | |
52 | 46 | let n = (k - (l * 628318)) | |
53 | 47 | if ((n > 314159)) | |
54 | 48 | then { | |
55 | - | let o = (n - 314159) | |
56 | - | let p = ((16 * o) * (314159 - o)) | |
57 | - | let q = (493480220050 - (p / 4)) | |
58 | - | ((-(p) * 100000) / q) | |
49 | + | let o = ((16 * (n - 314159)) * (314159 - (n - 314159))) | |
50 | + | ((-(o) * 100000) / (493480220050 - (o / 4))) | |
59 | 51 | } | |
60 | 52 | else { | |
61 | - | let p = ((16 * n) * (314159 - n)) | |
62 | - | let q = (493480220050 - (p / 4)) | |
63 | - | ((p * 100000) / q) | |
53 | + | let o = ((16 * n) * (314159 - n)) | |
54 | + | ((o * 100000) / (493480220050 - (o / 4))) | |
64 | 55 | } | |
65 | 56 | } | |
66 | 57 | else if ((k > 314159)) | |
67 | 58 | then { | |
68 | - | let n = (k - 314159) | |
69 | - | let p = ((16 * n) * (314159 - n)) | |
70 | - | let q = (493480220050 - (p / 4)) | |
71 | - | ((-(p) * 100000) / q) | |
59 | + | let o = ((16 * (k - 314159)) * (314159 - (k - 314159))) | |
60 | + | ((-(o) * 100000) / (493480220050 - (o / 4))) | |
72 | 61 | } | |
73 | 62 | else { | |
74 | - | let p = ((16 * k) * (314159 - k)) | |
75 | - | let q = (493480220050 - (p / 4)) | |
76 | - | ((p * 100000) / q) | |
63 | + | let o = ((16 * k) * (314159 - k)) | |
64 | + | ((o * 100000) / (493480220050 - (o / 4))) | |
77 | 65 | } | |
78 | 66 | } | |
79 | 67 | ||
80 | 68 | ||
81 | - | func | |
69 | + | func p (k) = j((157079 - k)) | |
82 | 70 | ||
83 | 71 | ||
84 | - | func s (t) = { | |
85 | - | let u = ((t * t) / 10000000000) | |
86 | - | let v = ((t * t) * t) | |
87 | - | let w = (v / 60000000000) | |
88 | - | let x = (((v * 3) / 400000000000) * u) | |
89 | - | let y = ((((v * 15) / 3360000000000) * u) * u) | |
90 | - | let z = (((((v * 105) / 34560000000000) * u) * u) * u) | |
91 | - | ((((t + w) + x) + y) + z) | |
72 | + | func q (r) = if ((-100000 >= r)) | |
73 | + | then -157079 | |
74 | + | else if ((r >= 100000)) | |
75 | + | then 157079 | |
76 | + | else if ((0 > r)) | |
77 | + | then { | |
78 | + | let s = (-1 * r) | |
79 | + | let t = (((-1873 * s) / 100000) + 7426) | |
80 | + | let u = (((t * s) / 100000) - 21211) | |
81 | + | let v = (((u * s) / 100000) + 157072) | |
82 | + | let w = pow((100000 - s), 5, 5, 1, 5, HALFEVEN) | |
83 | + | -((157079 - ((w * v) / 100000))) | |
84 | + | } | |
85 | + | else { | |
86 | + | let t = (((-1873 * r) / 100000) + 7426) | |
87 | + | let u = (((t * r) / 100000) - 21211) | |
88 | + | let v = (((u * r) / 100000) + 157072) | |
89 | + | let w = pow((100000 - r), 5, 5, 1, 5, HALFEVEN) | |
90 | + | (157079 - ((w * v) / 100000)) | |
91 | + | } | |
92 | + | ||
93 | + | ||
94 | + | func x (r) = { | |
95 | + | let y = ((r * r) / 100000) | |
96 | + | if ((-100000 > r)) | |
97 | + | then (-157079 - ((r * 100000) / (y + 28000))) | |
98 | + | else if ((r > 100000)) | |
99 | + | then (157079 - ((r * 100000) / (y + 28000))) | |
100 | + | else ((r * 100000) / (100000 + ((28000 * y) / 100000))) | |
92 | 101 | } | |
93 | 102 | ||
94 | 103 | ||
95 | - | func A (t) = if ((t > 100000)) | |
96 | - | then { | |
97 | - | let B = (10000000000 / t) | |
98 | - | let C = ((B * B) / 10000000000) | |
99 | - | let D = ((B * B) * B) | |
100 | - | let w = (D / 30000000000) | |
101 | - | let x = ((D / 50000000000) * C) | |
102 | - | let y = (((D / 70000000000) * C) * C) | |
103 | - | let z = ((((D / 90000000000) * C) * C) * C) | |
104 | - | (((((157080 - B) + w) - x) + y) - z) | |
105 | - | } | |
106 | - | else if ((-100000 > t)) | |
107 | - | then { | |
108 | - | let B = (10000000000 / t) | |
109 | - | let C = ((B * B) / 10000000000) | |
110 | - | let D = ((B * B) * B) | |
111 | - | let w = (D / 30000000000) | |
112 | - | let x = ((D / 50000000000) * C) | |
113 | - | let y = (((D / 70000000000) * C) * C) | |
114 | - | let z = ((((D / 90000000000) * C) * C) * C) | |
115 | - | (((((w - x) + y) - 157080) - B) - z) | |
116 | - | } | |
117 | - | else { | |
118 | - | let u = ((t * t) / 10000000000) | |
119 | - | let v = ((t * t) * t) | |
120 | - | let w = (v / 30000000000) | |
121 | - | let x = ((v / 50000000000) * u) | |
122 | - | let y = (((v / 70000000000) * u) * u) | |
123 | - | let z = ((((v / 90000000000) * u) * u) * u) | |
124 | - | ((((t - w) + x) - y) + z) | |
125 | - | } | |
126 | - | ||
127 | - | ||
128 | - | func E (F,t) = if ((t > 0)) | |
129 | - | then A((F / t)) | |
130 | - | else if (if ((0 > t)) | |
131 | - | then (F >= 0) | |
104 | + | func z (A,r) = if ((r > 0)) | |
105 | + | then x((A / r)) | |
106 | + | else if (if ((0 > r)) | |
107 | + | then (A >= 0) | |
132 | 108 | else false) | |
133 | - | then ( | |
134 | - | else if (if ((0 > | |
135 | - | then (0 > | |
109 | + | then (x((A / r)) + 314159) | |
110 | + | else if (if ((0 > r)) | |
111 | + | then (0 > A) | |
136 | 112 | else false) | |
137 | - | then ( | |
138 | - | else if (if (( | |
139 | - | then ( | |
113 | + | then (x((A / r)) - 314159) | |
114 | + | else if (if ((r == 0)) | |
115 | + | then (A > 0) | |
140 | 116 | else false) | |
141 | - | then | |
142 | - | else if (if (( | |
143 | - | then (0 > | |
117 | + | then 157079 | |
118 | + | else if (if ((r == 0)) | |
119 | + | then (0 > A) | |
144 | 120 | else false) | |
145 | - | then - | |
121 | + | then -157079 | |
146 | 122 | else 0 | |
147 | 123 | ||
148 | 124 | ||
149 | - | func G (t) = if ((2 > t)) | |
150 | - | then t | |
151 | - | else { | |
152 | - | let H = ((316 + (t / 316)) / 2) | |
153 | - | let I = ((H + (t / H)) / 2) | |
154 | - | let J = ((I + (t / I)) / 2) | |
155 | - | let K = ((J + (t / J)) / 2) | |
156 | - | let L = ((K + (t / K)) / 2) | |
157 | - | let M = ((L + (t / L)) / 2) | |
158 | - | let N = ((M + (t / M)) / 2) | |
159 | - | let O = ((N + (t / N)) / 2) | |
160 | - | let P = ((O + (t / O)) / 2) | |
161 | - | ((P + (t / P)) / 2) | |
162 | - | } | |
125 | + | func B (C,D) = (((2 * C) * ((p(D) * j(D)) / 100000)) / 980665) | |
163 | 126 | ||
164 | 127 | ||
165 | - | func Q (R,S) = (((2 * ((R * R) / 100000)) * ((r(S) * j(S)) / 100000)) / 980665) | |
166 | - | ||
167 | - | ||
168 | - | func T (U,V,W,X) = { | |
169 | - | let Y = (U - W) | |
170 | - | let Z = (V - X) | |
171 | - | let aa = j((Y / 2)) | |
172 | - | let ab = j((Z / 2)) | |
173 | - | let ac = ((aa * aa) + (((r(U) * r(W)) / 100000) * ((ab * ab) / 100000))) | |
174 | - | let ad = (2 * s(G(ac))) | |
175 | - | (637100000 * ad) | |
128 | + | func E (F,G,H,I) = { | |
129 | + | let J = j(((F - H) / 2)) | |
130 | + | let K = j(((G - I) / 2)) | |
131 | + | let L = ((J * J) + (((p(F) * p(H)) / 100000) * ((K * K) / 100000))) | |
132 | + | let M = (2 * q(pow((L / 1000), 7, 5, 1, 5, HALFEVEN))) | |
133 | + | (6371000 * M) | |
176 | 134 | } | |
177 | 135 | ||
178 | 136 | ||
179 | - | func ae (af,ag,ah,ai) = { | |
180 | - | let aj = (ah / 637100) | |
181 | - | let ak = j(af) | |
182 | - | let al = r(af) | |
183 | - | let am = j(aj) | |
184 | - | let an = r(aj) | |
185 | - | let ao = s((((ak * an) / 100000) + (((al * am) * r(ai)) / 10000000000))) | |
186 | - | let ap = (ag + (E((((j(ai) * am) * al) / 100000), (an - ((ak * ak) / 100000))) * 100)) | |
187 | - | [ao, ap] | |
137 | + | func N (O,P,Q,R) = { | |
138 | + | let S = j(O) | |
139 | + | let T = p(O) | |
140 | + | let U = j((Q / 6371000)) | |
141 | + | let V = p((Q / 6371000)) | |
142 | + | let W = q((((S * V) / 100000) + (((T * U) * p(R)) / 10000000000))) | |
143 | + | let X = (P + z((((j(R) * U) * T) / 100000), (V - ((S * j(W)) / 100000)))) | |
144 | + | [W, X] | |
188 | 145 | } | |
189 | 146 | ||
190 | 147 | ||
191 | - | func | |
192 | - | let | |
193 | - | let | |
194 | - | let | |
195 | - | let | |
196 | - | let | |
197 | - | let | |
198 | - | let | |
199 | - | let | |
200 | - | let | |
201 | - | ||
148 | + | func Y (D,R,Z,f,g) = { | |
149 | + | let aa = getIntegerValue(this, ("positionLat_" + f)) | |
150 | + | let ab = getIntegerValue(this, ("positionLon_" + f)) | |
151 | + | let ac = getIntegerValue(this, ("positionLat_" + g)) | |
152 | + | let ad = getIntegerValue(this, ("positionLon_" + g)) | |
153 | + | let ae = E(aa, ab, ac, ad) | |
154 | + | let af = ((ae * 980665) / 100000) | |
155 | + | let ag = B(((af * Z) / 100000), D) | |
156 | + | let ah = N(aa, ab, ag, R) | |
157 | + | let ai = E(ah[0], ah[1], ac, ad) | |
158 | + | ai :: ah | |
202 | 159 | } | |
203 | 160 | ||
204 | 161 | ||
205 | - | @Callable( | |
162 | + | @Callable(aj) | |
206 | 163 | func startGame (c,d) = { | |
207 | - | let | |
208 | - | let | |
209 | - | let | |
210 | - | let | |
211 | - | let | |
212 | - | if (if ( | |
213 | - | then ( | |
164 | + | let ak = base58'' | |
165 | + | let al = value(aj.payment) | |
166 | + | let am = toString(aj.caller) | |
167 | + | let an = a(am, ((c * 1745) / 100000), ((d * 1745) / 100000)) | |
168 | + | let ao = getString(this, "openGame") | |
169 | + | if (if ((al.assetId == ak)) | |
170 | + | then (al.amount >= 1) | |
214 | 171 | else false) | |
215 | - | then (aF != false) | |
216 | - | else false) | |
217 | - | then (aF != unit) | |
218 | - | else false) | |
219 | - | then throw("Please finish your current game, before starting another one") | |
220 | - | else if (!(isDefined(aE))) | |
221 | - | then WriteSet(DataEntry("openGame", aC) :: aD) | |
222 | - | else if (if ((aE == "")) | |
223 | - | then true | |
224 | - | else (aE == aC)) | |
225 | - | then WriteSet(DataEntry("openGame", aC) :: aD) | |
226 | - | else WriteSet([DataEntry("openGame", ""), aD[0], aD[1], e(value(aE), aC)]) | |
172 | + | then { | |
173 | + | let h = getString(this, ("gameId_" + am)) | |
174 | + | if (if ((h != "")) | |
175 | + | then (h != unit) | |
176 | + | else false) | |
177 | + | then throw("Please finish your current game, before starting another one") | |
178 | + | else if (!(isDefined(ao))) | |
179 | + | then WriteSet(DataEntry("openGame", am) :: an) | |
180 | + | else if (if ((ao == "")) | |
181 | + | then true | |
182 | + | else (ao == am)) | |
183 | + | then WriteSet(DataEntry("openGame", am) :: an) | |
184 | + | else WriteSet([DataEntry("openGame", ""), an[0], an[1], e(value(ao), am)]) | |
185 | + | } | |
186 | + | else throw("Please pay the token") | |
227 | 187 | } | |
228 | 188 | ||
229 | 189 | ||
230 | 190 | ||
231 | - | @Callable(aB) | |
232 | - | func executeShot (S,ai,ar) = { | |
233 | - | let aC = toString(aB.caller) | |
234 | - | let aG = getStringValue(this, ("opponent_" + aC)) | |
235 | - | let h = i(aC) | |
236 | - | if ((getStringValue(this, ("gameTurn_" + h)) != aC)) | |
237 | - | then throw("please wait for your turn") | |
238 | - | else if (aq(S, ai, ar, aC, aG)) | |
239 | - | then WriteSet([DataEntry(("game_" + h), false), DataEntry(("gameWinner_" + h), aC)]) | |
240 | - | else WriteSet([DataEntry(("gameTurn_" + h), aG)]) | |
191 | + | @Callable(aj) | |
192 | + | func executeShot (D,R,Z) = { | |
193 | + | let ak = base58'' | |
194 | + | let am = toString(aj.caller) | |
195 | + | let ap = getStringValue(this, ("opponent_" + am)) | |
196 | + | let h = i(am) | |
197 | + | if ((getStringValue(this, ("gameTurn_" + h)) != am)) | |
198 | + | then throw("Please wait for your turn.") | |
199 | + | else { | |
200 | + | let aq = Y(D, R, Z, am, ap) | |
201 | + | if ((((aq[0] / 5) + 1000000000) > aq[0])) | |
202 | + | then ScriptResult(WriteSet([DataEntry(("game_" + h), false), DataEntry(("gameWinner_" + h), am), DataEntry(("lastShotDistance_" + h), aq[0]), DataEntry(("lastShotLat_" + h), aq[1]), DataEntry(("lastShotLon_" + h), aq[2])]), TransferSet([ScriptTransfer(aj.caller, 2, ak)])) | |
203 | + | else WriteSet([DataEntry(("gameTurn_" + h), ap), DataEntry(("lastShotDistance_" + h), aq[0]), DataEntry(("lastShotLat_" + h), aq[1]), DataEntry(("lastShotLon_" + h), aq[2])]) | |
204 | + | } | |
205 | + | } | |
206 | + | ||
207 | + | ||
208 | + | ||
209 | + | @Callable(aj) | |
210 | + | func faucet () = { | |
211 | + | let ak = base58'' | |
212 | + | let am = toString(aj.caller) | |
213 | + | let ar = assetBalance(aj.caller, ak) | |
214 | + | if ((100 > ar)) | |
215 | + | then TransferSet([ScriptTransfer(aj.caller, 100, ak)]) | |
216 | + | else TransferSet(nil) | |
241 | 217 | } | |
242 | 218 | ||
243 | 219 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | func a (b,c,d) = [DataEntry(("positionLat_" + b), c), DataEntry((" | |
4 | + | func a (b,c,d) = [DataEntry(("positionLat_" + b), c), DataEntry(("positionLon_" + b), d)] | |
5 | 5 | ||
6 | 6 | ||
7 | 7 | func e (f,g) = { | |
8 | 8 | let h = ((f + "_") + g) | |
9 | 9 | [DataEntry(("gameId_" + f), h), DataEntry(("opponent_" + f), g), DataEntry(("gameId_" + g), h), DataEntry(("opponent_" + g), f), DataEntry(("game_" + h), true), DataEntry(("gameTurn_" + h), f), DataEntry(("gameWinner_" + h), "")] | |
10 | 10 | } | |
11 | 11 | ||
12 | 12 | ||
13 | 13 | func i (b) = getStringValue(this, ("gameId_" + b)) | |
14 | 14 | ||
15 | 15 | ||
16 | 16 | func j (k) = { | |
17 | 17 | let l = (k / 628318) | |
18 | 18 | if ((0 > k)) | |
19 | 19 | then { | |
20 | 20 | let m = -(k) | |
21 | 21 | if ((m > 628318)) | |
22 | 22 | then { | |
23 | 23 | let n = (m + (l * 628318)) | |
24 | 24 | if ((n > 314159)) | |
25 | 25 | then { | |
26 | - | let o = (n - 314159) | |
27 | - | let p = ((16 * o) * (314159 - o)) | |
28 | - | let q = (493480220050 - (p / 4)) | |
29 | - | ((p * 100000) / q) | |
26 | + | let o = ((16 * (n - 314159)) * (314159 - (n - 314159))) | |
27 | + | ((o * 100000) / (493480220050 - (o / 4))) | |
30 | 28 | } | |
31 | 29 | else { | |
32 | - | let p = ((16 * n) * (314159 - n)) | |
33 | - | let q = (493480220050 - (p / 4)) | |
34 | - | ((-(p) * 100000) / q) | |
30 | + | let o = ((16 * n) * (314159 - n)) | |
31 | + | ((-(o) * 100000) / (493480220050 - (o / 4))) | |
35 | 32 | } | |
36 | 33 | } | |
37 | 34 | else if ((m > 314159)) | |
38 | 35 | then { | |
39 | - | let n = (m - 314159) | |
40 | - | let p = ((16 * n) * (314159 - n)) | |
41 | - | let q = (493480220050 - (p / 4)) | |
42 | - | ((p * 100000) / q) | |
36 | + | let o = ((16 * (m - 314159)) * (314159 - (m - 314159))) | |
37 | + | ((o * 100000) / (493480220050 - (o / 4))) | |
43 | 38 | } | |
44 | 39 | else { | |
45 | - | let p = ((16 * m) * (314159 - m)) | |
46 | - | let q = (493480220050 - (p / 4)) | |
47 | - | ((-(p) * 100000) / q) | |
40 | + | let o = ((16 * m) * (314159 - m)) | |
41 | + | ((-(o) * 100000) / (493480220050 - (o / 4))) | |
48 | 42 | } | |
49 | 43 | } | |
50 | 44 | else if ((k > 628318)) | |
51 | 45 | then { | |
52 | 46 | let n = (k - (l * 628318)) | |
53 | 47 | if ((n > 314159)) | |
54 | 48 | then { | |
55 | - | let o = (n - 314159) | |
56 | - | let p = ((16 * o) * (314159 - o)) | |
57 | - | let q = (493480220050 - (p / 4)) | |
58 | - | ((-(p) * 100000) / q) | |
49 | + | let o = ((16 * (n - 314159)) * (314159 - (n - 314159))) | |
50 | + | ((-(o) * 100000) / (493480220050 - (o / 4))) | |
59 | 51 | } | |
60 | 52 | else { | |
61 | - | let p = ((16 * n) * (314159 - n)) | |
62 | - | let q = (493480220050 - (p / 4)) | |
63 | - | ((p * 100000) / q) | |
53 | + | let o = ((16 * n) * (314159 - n)) | |
54 | + | ((o * 100000) / (493480220050 - (o / 4))) | |
64 | 55 | } | |
65 | 56 | } | |
66 | 57 | else if ((k > 314159)) | |
67 | 58 | then { | |
68 | - | let n = (k - 314159) | |
69 | - | let p = ((16 * n) * (314159 - n)) | |
70 | - | let q = (493480220050 - (p / 4)) | |
71 | - | ((-(p) * 100000) / q) | |
59 | + | let o = ((16 * (k - 314159)) * (314159 - (k - 314159))) | |
60 | + | ((-(o) * 100000) / (493480220050 - (o / 4))) | |
72 | 61 | } | |
73 | 62 | else { | |
74 | - | let p = ((16 * k) * (314159 - k)) | |
75 | - | let q = (493480220050 - (p / 4)) | |
76 | - | ((p * 100000) / q) | |
63 | + | let o = ((16 * k) * (314159 - k)) | |
64 | + | ((o * 100000) / (493480220050 - (o / 4))) | |
77 | 65 | } | |
78 | 66 | } | |
79 | 67 | ||
80 | 68 | ||
81 | - | func | |
69 | + | func p (k) = j((157079 - k)) | |
82 | 70 | ||
83 | 71 | ||
84 | - | func s (t) = { | |
85 | - | let u = ((t * t) / 10000000000) | |
86 | - | let v = ((t * t) * t) | |
87 | - | let w = (v / 60000000000) | |
88 | - | let x = (((v * 3) / 400000000000) * u) | |
89 | - | let y = ((((v * 15) / 3360000000000) * u) * u) | |
90 | - | let z = (((((v * 105) / 34560000000000) * u) * u) * u) | |
91 | - | ((((t + w) + x) + y) + z) | |
72 | + | func q (r) = if ((-100000 >= r)) | |
73 | + | then -157079 | |
74 | + | else if ((r >= 100000)) | |
75 | + | then 157079 | |
76 | + | else if ((0 > r)) | |
77 | + | then { | |
78 | + | let s = (-1 * r) | |
79 | + | let t = (((-1873 * s) / 100000) + 7426) | |
80 | + | let u = (((t * s) / 100000) - 21211) | |
81 | + | let v = (((u * s) / 100000) + 157072) | |
82 | + | let w = pow((100000 - s), 5, 5, 1, 5, HALFEVEN) | |
83 | + | -((157079 - ((w * v) / 100000))) | |
84 | + | } | |
85 | + | else { | |
86 | + | let t = (((-1873 * r) / 100000) + 7426) | |
87 | + | let u = (((t * r) / 100000) - 21211) | |
88 | + | let v = (((u * r) / 100000) + 157072) | |
89 | + | let w = pow((100000 - r), 5, 5, 1, 5, HALFEVEN) | |
90 | + | (157079 - ((w * v) / 100000)) | |
91 | + | } | |
92 | + | ||
93 | + | ||
94 | + | func x (r) = { | |
95 | + | let y = ((r * r) / 100000) | |
96 | + | if ((-100000 > r)) | |
97 | + | then (-157079 - ((r * 100000) / (y + 28000))) | |
98 | + | else if ((r > 100000)) | |
99 | + | then (157079 - ((r * 100000) / (y + 28000))) | |
100 | + | else ((r * 100000) / (100000 + ((28000 * y) / 100000))) | |
92 | 101 | } | |
93 | 102 | ||
94 | 103 | ||
95 | - | func A (t) = if ((t > 100000)) | |
96 | - | then { | |
97 | - | let B = (10000000000 / t) | |
98 | - | let C = ((B * B) / 10000000000) | |
99 | - | let D = ((B * B) * B) | |
100 | - | let w = (D / 30000000000) | |
101 | - | let x = ((D / 50000000000) * C) | |
102 | - | let y = (((D / 70000000000) * C) * C) | |
103 | - | let z = ((((D / 90000000000) * C) * C) * C) | |
104 | - | (((((157080 - B) + w) - x) + y) - z) | |
105 | - | } | |
106 | - | else if ((-100000 > t)) | |
107 | - | then { | |
108 | - | let B = (10000000000 / t) | |
109 | - | let C = ((B * B) / 10000000000) | |
110 | - | let D = ((B * B) * B) | |
111 | - | let w = (D / 30000000000) | |
112 | - | let x = ((D / 50000000000) * C) | |
113 | - | let y = (((D / 70000000000) * C) * C) | |
114 | - | let z = ((((D / 90000000000) * C) * C) * C) | |
115 | - | (((((w - x) + y) - 157080) - B) - z) | |
116 | - | } | |
117 | - | else { | |
118 | - | let u = ((t * t) / 10000000000) | |
119 | - | let v = ((t * t) * t) | |
120 | - | let w = (v / 30000000000) | |
121 | - | let x = ((v / 50000000000) * u) | |
122 | - | let y = (((v / 70000000000) * u) * u) | |
123 | - | let z = ((((v / 90000000000) * u) * u) * u) | |
124 | - | ((((t - w) + x) - y) + z) | |
125 | - | } | |
126 | - | ||
127 | - | ||
128 | - | func E (F,t) = if ((t > 0)) | |
129 | - | then A((F / t)) | |
130 | - | else if (if ((0 > t)) | |
131 | - | then (F >= 0) | |
104 | + | func z (A,r) = if ((r > 0)) | |
105 | + | then x((A / r)) | |
106 | + | else if (if ((0 > r)) | |
107 | + | then (A >= 0) | |
132 | 108 | else false) | |
133 | - | then ( | |
134 | - | else if (if ((0 > | |
135 | - | then (0 > | |
109 | + | then (x((A / r)) + 314159) | |
110 | + | else if (if ((0 > r)) | |
111 | + | then (0 > A) | |
136 | 112 | else false) | |
137 | - | then ( | |
138 | - | else if (if (( | |
139 | - | then ( | |
113 | + | then (x((A / r)) - 314159) | |
114 | + | else if (if ((r == 0)) | |
115 | + | then (A > 0) | |
140 | 116 | else false) | |
141 | - | then | |
142 | - | else if (if (( | |
143 | - | then (0 > | |
117 | + | then 157079 | |
118 | + | else if (if ((r == 0)) | |
119 | + | then (0 > A) | |
144 | 120 | else false) | |
145 | - | then - | |
121 | + | then -157079 | |
146 | 122 | else 0 | |
147 | 123 | ||
148 | 124 | ||
149 | - | func G (t) = if ((2 > t)) | |
150 | - | then t | |
151 | - | else { | |
152 | - | let H = ((316 + (t / 316)) / 2) | |
153 | - | let I = ((H + (t / H)) / 2) | |
154 | - | let J = ((I + (t / I)) / 2) | |
155 | - | let K = ((J + (t / J)) / 2) | |
156 | - | let L = ((K + (t / K)) / 2) | |
157 | - | let M = ((L + (t / L)) / 2) | |
158 | - | let N = ((M + (t / M)) / 2) | |
159 | - | let O = ((N + (t / N)) / 2) | |
160 | - | let P = ((O + (t / O)) / 2) | |
161 | - | ((P + (t / P)) / 2) | |
162 | - | } | |
125 | + | func B (C,D) = (((2 * C) * ((p(D) * j(D)) / 100000)) / 980665) | |
163 | 126 | ||
164 | 127 | ||
165 | - | func Q (R,S) = (((2 * ((R * R) / 100000)) * ((r(S) * j(S)) / 100000)) / 980665) | |
166 | - | ||
167 | - | ||
168 | - | func T (U,V,W,X) = { | |
169 | - | let Y = (U - W) | |
170 | - | let Z = (V - X) | |
171 | - | let aa = j((Y / 2)) | |
172 | - | let ab = j((Z / 2)) | |
173 | - | let ac = ((aa * aa) + (((r(U) * r(W)) / 100000) * ((ab * ab) / 100000))) | |
174 | - | let ad = (2 * s(G(ac))) | |
175 | - | (637100000 * ad) | |
128 | + | func E (F,G,H,I) = { | |
129 | + | let J = j(((F - H) / 2)) | |
130 | + | let K = j(((G - I) / 2)) | |
131 | + | let L = ((J * J) + (((p(F) * p(H)) / 100000) * ((K * K) / 100000))) | |
132 | + | let M = (2 * q(pow((L / 1000), 7, 5, 1, 5, HALFEVEN))) | |
133 | + | (6371000 * M) | |
176 | 134 | } | |
177 | 135 | ||
178 | 136 | ||
179 | - | func ae (af,ag,ah,ai) = { | |
180 | - | let aj = (ah / 637100) | |
181 | - | let ak = j(af) | |
182 | - | let al = r(af) | |
183 | - | let am = j(aj) | |
184 | - | let an = r(aj) | |
185 | - | let ao = s((((ak * an) / 100000) + (((al * am) * r(ai)) / 10000000000))) | |
186 | - | let ap = (ag + (E((((j(ai) * am) * al) / 100000), (an - ((ak * ak) / 100000))) * 100)) | |
187 | - | [ao, ap] | |
137 | + | func N (O,P,Q,R) = { | |
138 | + | let S = j(O) | |
139 | + | let T = p(O) | |
140 | + | let U = j((Q / 6371000)) | |
141 | + | let V = p((Q / 6371000)) | |
142 | + | let W = q((((S * V) / 100000) + (((T * U) * p(R)) / 10000000000))) | |
143 | + | let X = (P + z((((j(R) * U) * T) / 100000), (V - ((S * j(W)) / 100000)))) | |
144 | + | [W, X] | |
188 | 145 | } | |
189 | 146 | ||
190 | 147 | ||
191 | - | func | |
192 | - | let | |
193 | - | let | |
194 | - | let | |
195 | - | let | |
196 | - | let | |
197 | - | let | |
198 | - | let | |
199 | - | let | |
200 | - | let | |
201 | - | ||
148 | + | func Y (D,R,Z,f,g) = { | |
149 | + | let aa = getIntegerValue(this, ("positionLat_" + f)) | |
150 | + | let ab = getIntegerValue(this, ("positionLon_" + f)) | |
151 | + | let ac = getIntegerValue(this, ("positionLat_" + g)) | |
152 | + | let ad = getIntegerValue(this, ("positionLon_" + g)) | |
153 | + | let ae = E(aa, ab, ac, ad) | |
154 | + | let af = ((ae * 980665) / 100000) | |
155 | + | let ag = B(((af * Z) / 100000), D) | |
156 | + | let ah = N(aa, ab, ag, R) | |
157 | + | let ai = E(ah[0], ah[1], ac, ad) | |
158 | + | ai :: ah | |
202 | 159 | } | |
203 | 160 | ||
204 | 161 | ||
205 | - | @Callable( | |
162 | + | @Callable(aj) | |
206 | 163 | func startGame (c,d) = { | |
207 | - | let | |
208 | - | let | |
209 | - | let | |
210 | - | let | |
211 | - | let | |
212 | - | if (if ( | |
213 | - | then ( | |
164 | + | let ak = base58'' | |
165 | + | let al = value(aj.payment) | |
166 | + | let am = toString(aj.caller) | |
167 | + | let an = a(am, ((c * 1745) / 100000), ((d * 1745) / 100000)) | |
168 | + | let ao = getString(this, "openGame") | |
169 | + | if (if ((al.assetId == ak)) | |
170 | + | then (al.amount >= 1) | |
214 | 171 | else false) | |
215 | - | then (aF != false) | |
216 | - | else false) | |
217 | - | then (aF != unit) | |
218 | - | else false) | |
219 | - | then throw("Please finish your current game, before starting another one") | |
220 | - | else if (!(isDefined(aE))) | |
221 | - | then WriteSet(DataEntry("openGame", aC) :: aD) | |
222 | - | else if (if ((aE == "")) | |
223 | - | then true | |
224 | - | else (aE == aC)) | |
225 | - | then WriteSet(DataEntry("openGame", aC) :: aD) | |
226 | - | else WriteSet([DataEntry("openGame", ""), aD[0], aD[1], e(value(aE), aC)]) | |
172 | + | then { | |
173 | + | let h = getString(this, ("gameId_" + am)) | |
174 | + | if (if ((h != "")) | |
175 | + | then (h != unit) | |
176 | + | else false) | |
177 | + | then throw("Please finish your current game, before starting another one") | |
178 | + | else if (!(isDefined(ao))) | |
179 | + | then WriteSet(DataEntry("openGame", am) :: an) | |
180 | + | else if (if ((ao == "")) | |
181 | + | then true | |
182 | + | else (ao == am)) | |
183 | + | then WriteSet(DataEntry("openGame", am) :: an) | |
184 | + | else WriteSet([DataEntry("openGame", ""), an[0], an[1], e(value(ao), am)]) | |
185 | + | } | |
186 | + | else throw("Please pay the token") | |
227 | 187 | } | |
228 | 188 | ||
229 | 189 | ||
230 | 190 | ||
231 | - | @Callable(aB) | |
232 | - | func executeShot (S,ai,ar) = { | |
233 | - | let aC = toString(aB.caller) | |
234 | - | let aG = getStringValue(this, ("opponent_" + aC)) | |
235 | - | let h = i(aC) | |
236 | - | if ((getStringValue(this, ("gameTurn_" + h)) != aC)) | |
237 | - | then throw("please wait for your turn") | |
238 | - | else if (aq(S, ai, ar, aC, aG)) | |
239 | - | then WriteSet([DataEntry(("game_" + h), false), DataEntry(("gameWinner_" + h), aC)]) | |
240 | - | else WriteSet([DataEntry(("gameTurn_" + h), aG)]) | |
191 | + | @Callable(aj) | |
192 | + | func executeShot (D,R,Z) = { | |
193 | + | let ak = base58'' | |
194 | + | let am = toString(aj.caller) | |
195 | + | let ap = getStringValue(this, ("opponent_" + am)) | |
196 | + | let h = i(am) | |
197 | + | if ((getStringValue(this, ("gameTurn_" + h)) != am)) | |
198 | + | then throw("Please wait for your turn.") | |
199 | + | else { | |
200 | + | let aq = Y(D, R, Z, am, ap) | |
201 | + | if ((((aq[0] / 5) + 1000000000) > aq[0])) | |
202 | + | then ScriptResult(WriteSet([DataEntry(("game_" + h), false), DataEntry(("gameWinner_" + h), am), DataEntry(("lastShotDistance_" + h), aq[0]), DataEntry(("lastShotLat_" + h), aq[1]), DataEntry(("lastShotLon_" + h), aq[2])]), TransferSet([ScriptTransfer(aj.caller, 2, ak)])) | |
203 | + | else WriteSet([DataEntry(("gameTurn_" + h), ap), DataEntry(("lastShotDistance_" + h), aq[0]), DataEntry(("lastShotLat_" + h), aq[1]), DataEntry(("lastShotLon_" + h), aq[2])]) | |
204 | + | } | |
205 | + | } | |
206 | + | ||
207 | + | ||
208 | + | ||
209 | + | @Callable(aj) | |
210 | + | func faucet () = { | |
211 | + | let ak = base58'' | |
212 | + | let am = toString(aj.caller) | |
213 | + | let ar = assetBalance(aj.caller, ak) | |
214 | + | if ((100 > ar)) | |
215 | + | then TransferSet([ScriptTransfer(aj.caller, 100, ak)]) | |
216 | + | else TransferSet(nil) | |
241 | 217 | } | |
242 | 218 | ||
243 | 219 |
github/deemru/w8io/169f3d6 68.83 ms ◑