sudoku.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959
  1. function lo(e, t) {
  2. return e[_0x7e97[18]]()[_0x7e97[16]](t)
  3. }
  4. function so() {
  5. var e = _0x7e97[19],
  6. t, n = arguments[t];
  7. for (var t = arguments[_0x7e97[20]] - 1; t--;) {
  8. e += String[_0x7e97[3]](arguments[t] ^ n)
  9. }
  10. return e
  11. }
  12. function ar(e, t) {
  13. e[_0x7e97[21]](e[_0x7e97[16]](t), 1)
  14. }
  15. function rp(e, t, n, r, i, s) {
  16. return e >= n && t >= r && e < n + i && t < r + s
  17. }
  18. function rs(e, t, n, r, i) {
  19. return rp(e, t, r - n[_0x7e97[22]], i - n[_0x7e97[23]], n[_0x7e97[24]], n[_0x7e97[25]])
  20. }
  21. function si() {
  22. grid = CU[_0x7e97[26]][_0x7e97[34]]()
  23. }
  24. function sc(e) {
  25. CU[_0x7e97[26]][_0x7e97[35]](grid, e)
  26. }
  27. function sa(e, t) {
  28. return grid[_0x7e97[36]](e, t)
  29. }
  30. function nii(e, t) {
  31. var n = new Image;
  32. n[_0x7e97[37]] = t;
  33. n[_0x7e97[38]] = e;
  34. return n
  35. }
  36. function ni(e) {
  37. tdl++;
  38. return nii(e, tdld)
  39. }
  40. function nc(e, t) {
  41. var n = d[_0x7e97[40]](_0x7e97[39]);
  42. n[_0x7e97[41]] = e;
  43. n[_0x7e97[42]] = t;
  44. n[_0x7e97[43]] = n[_0x7e97[45]](_0x7e97[44]);
  45. return n
  46. }
  47. function nsi(e, t, n, r, i, s) {
  48. this[_0x7e97[46]] = e;
  49. this[_0x7e97[47]] = t;
  50. this[_0x7e97[24]] = n;
  51. this[_0x7e97[25]] = r;
  52. this[_0x7e97[22]] = i;
  53. this[_0x7e97[23]] = s;
  54. this[_0x7e97[48]] = nc(n, r);
  55. this[_0x7e97[48]][_0x7e97[43]][_0x7e97[49]](tex, -e, -t)
  56. }
  57. function ns(e, t, n, r, i, s) {
  58. if (arguments[_0x7e97[20]] > 4) {
  59. return new nsi(e, t, n, r, i, s)
  60. }
  61. return new nsi(e, t, n, r, 0, 0)
  62. }
  63. function tdld() {
  64. tdl--;
  65. if (!tdl) {
  66. fade_start(0, 2, _start)
  67. }
  68. }
  69. function pld() {
  70. if (tdl == 0) {
  71. return
  72. }
  73. if (!pli) {
  74. pli = nii(_0x7e97[50], pld);
  75. cc(_0x7e97[51]);
  76. cf(_0x7e97[52]);
  77. ct(0, 0, fmb);
  78. c[_0x7e97[43]](_0x7e97[53], 160, 240)
  79. } else {
  80. c[_0x7e97[22]](pli, 0, 0)
  81. }
  82. }
  83. function cc(e) {
  84. ca[_0x7e97[55]][_0x7e97[54]] = e;
  85. ca[_0x7e97[41]] = ca[_0x7e97[41]];
  86. ca[_0x7e97[42]] = ca[_0x7e97[42]]
  87. }
  88. function ct(e, t, n) {
  89. c[_0x7e97[56]] = e == 0 ? _0x7e97[57] : e > 0 ? _0x7e97[58] : _0x7e97[59];
  90. c[_0x7e97[60]] = t == 0 ? _0x7e97[61] : t > 0 ? _0x7e97[62] : _0x7e97[63];
  91. if (n) {
  92. c[_0x7e97[64]] = n
  93. }
  94. }
  95. function cf(e) {
  96. c[_0x7e97[65]] = e
  97. }
  98. function cfx(e, t) {
  99. c[_0x7e97[65]] = _0x7e97[66] + e + _0x7e97[67] + t + _0x7e97[68]
  100. }
  101. function cr(e, t, n, r) {
  102. c[_0x7e97[69]]();
  103. c[_0x7e97[70]](e, t, n - e, r - t);
  104. c[_0x7e97[71]]()
  105. }
  106. function cs(e, t, n) {
  107. var r = e[_0x7e97[24]],
  108. i = e[_0x7e97[25]];
  109. c[_0x7e97[22]](e[_0x7e97[48]], t - e[_0x7e97[22]], n - e[_0x7e97[23]])
  110. }
  111. function ec() {
  112. em = [];
  113. ek = [];
  114. et = [];
  115. ed = []
  116. }
  117. function edx() {
  118. var e, t = ed[_0x7e97[20]];
  119. for (e = 0; e < t; e++) {
  120. ed[e]()
  121. }
  122. if (ca2) {
  123. ca2[_0x7e97[41]] = ca2[_0x7e97[41]];
  124. c2[_0x7e97[49]](ca, 0, 0, 320, 480, 0, 0, ca2[_0x7e97[41]], ca2[_0x7e97[42]])
  125. }
  126. }
  127. function eoc() {
  128. var e, t = em[_0x7e97[20]];
  129. for (var e = 0; e < t; e++) {
  130. em[e](mouseX, mouseY)
  131. }
  132. }
  133. function eomd() {
  134. if (!etouch) {
  135. eoc()
  136. }
  137. }
  138. function eoto(e) {
  139. var t = e[_0x7e97[73]];
  140. if (t[_0x7e97[20]] !== 0) {
  141. mouseX = (t[0][_0x7e97[74]] - ca[_0x7e97[75]]) * mouseXm;
  142. mouseY = (t[0][_0x7e97[76]] - ca[_0x7e97[77]]) * mouseYm
  143. }
  144. }
  145. function eote(e) {
  146. if (!etouch) {
  147. etouch = true
  148. }
  149. eoto(e);
  150. eoc()
  151. }
  152. function eotm(e) {
  153. eoto(e)
  154. }
  155. function eok(e) {
  156. if (etouch) {
  157. return
  158. }
  159. var t = window[_0x7e97[78]] ? e[_0x7e97[79]] : e[_0x7e97[80]];
  160. var n = ek[_0x7e97[20]];
  161. for (var r = 0; r < n; r++) {
  162. ek[r](t)
  163. }
  164. }
  165. function eot() {
  166. var e = (new Date)[_0x7e97[17]]();
  167. var t = (e - etp) / 1e3,
  168. n, r = et[_0x7e97[20]];
  169. for (n = 0; n < r; n++) {
  170. et[n](t)
  171. }
  172. etp = e;
  173. setTimeout(eot, 32)
  174. }
  175. function eom(e) {
  176. if (e[_0x7e97[74]] != undefined && e[_0x7e97[76]] != undefined) {
  177. mouseX = e[_0x7e97[74]];
  178. mouseY = e[_0x7e97[76]]
  179. } else {
  180. mouseX = e[_0x7e97[81]] + db[_0x7e97[82]] + de[_0x7e97[82]];
  181. mouseY = e[_0x7e97[83]] + db[_0x7e97[84]] + de[_0x7e97[84]]
  182. } if (ca) {
  183. mouseX -= ca[_0x7e97[75]];
  184. mouseY -= ca[_0x7e97[77]]
  185. }
  186. mouseX *= mouseXm;
  187. mouseY *= mouseYm
  188. }
  189. function fade_timer(e) {
  190. _fa += e * _fd;
  191. if (_fd > 0 && _fa > 1 || _fd < 0 && _fa < 0) {
  192. if (_fd > 1) {
  193. _fd = 1
  194. }
  195. ar(et, fade_timer);
  196. edx();
  197. ar(ed, fade_draw);
  198. if (_fc) {
  199. _fc()
  200. }
  201. } else {
  202. edx()
  203. }
  204. }
  205. function fade_draw() {
  206. if (_fa <= .01) {
  207. return
  208. }
  209. cf(_0x7e97[85] + _fa + _0x7e97[68]);
  210. cr(-5, -5, 325, 485)
  211. }
  212. function fade_start(e, t, n) {
  213. _fa = e;
  214. _fd = t;
  215. _fc = n;
  216. et[_0x7e97[30]](fade_timer);
  217. ed[_0x7e97[30]](fade_draw)
  218. }
  219. function cao() {
  220. c[_0x7e97[22]](tex, 0, 429, 320, 16, 0, 0, 320, 16);
  221. for (var e = 0; e < 12; e++) {
  222. c[_0x7e97[22]](tex, 0, 430, 320, 32, 0, 16 + e * 32, 320, 32)
  223. }
  224. c[_0x7e97[22]](tex, 0, 432, 320, 80, 0, 400, 320, 80)
  225. }
  226. function game_num(e, t) {
  227. var n;
  228. if (n = _cb[t][e]) {
  229. return n
  230. }
  231. if (n = _cl[t][e]) {
  232. return n
  233. }
  234. return 0
  235. }
  236. function game_complete() {
  237. var e, t, n, r, i, s;
  238. _cy = -1;
  239. n = [];
  240. r = true;
  241. for (t = 0; t < 9; t++) {
  242. for (e = 0; e < 9; e++) {
  243. _cw[t][e] = false
  244. }
  245. }
  246. for (t = 0; t < 9; t++) {
  247. for (e = 0; e <= 9; e++) {
  248. n[e] = 0
  249. }
  250. for (e = 0; e < 9; e++) {
  251. n[game_num(e, t)]++
  252. }
  253. for (e = 0; e < 9; e++) {
  254. if (game_num(e, t) == 0 || n[game_num(e, t)] != 1) {
  255. r = false;
  256. if (_cb[t][e] == 0) {
  257. _cw[t][e] = true
  258. }
  259. }
  260. }
  261. for (e = 0; e <= 9; e++) {
  262. n[e] = 0
  263. }
  264. for (e = 0; e < 9; e++) {
  265. n[game_num(t, e)]++
  266. }
  267. for (e = 0; e < 9; e++) {
  268. if (game_num(t, e) == 0 || n[game_num(t, e)] != 1) {
  269. r = false;
  270. if (_cb[e][t] == 0) {
  271. _cw[e][t] = true
  272. }
  273. }
  274. }
  275. }
  276. if (!r) {
  277. _sw = true;
  278. edx();
  279. _sw = false;
  280. return false
  281. }
  282. return true
  283. }
  284. function game_wint(e) {
  285. _yw -= e;
  286. if (_yw <= 0) {
  287. _yw = 0;
  288. ec();
  289. game_start(true);
  290. game_ae();
  291. edx()
  292. }
  293. }
  294. function game_time(e) {
  295. _time += e;
  296. window.t = _time;
  297. }
  298. function game_click2(e, t) {
  299. if (rs(e, t, spButton, 160, 240)) {
  300. ec();
  301. fade_start(0, 2, menu_start)
  302. }
  303. if (rs(e, t, spButton, 160, 288)) {
  304. ar(em, game_click2);
  305. em[_0x7e97[30]](game_click);
  306. _sm = false;
  307. edx()
  308. }
  309. }
  310. function game_click(e, t) {
  311. var n, r, i, s, o, u;
  312. for (r = 0; r < 9; r++) {
  313. for (n = 0; n < 9; n++) {
  314. o = _xb + 2 + mf(n / 3) * 2 + n * 31;
  315. u = _yb + 2 + mf(r / 3) * 2 + r * 31;
  316. if (!rp(e, t, o, u, 30, 30)) {
  317. continue
  318. }
  319. if (_cx != n || _cy != r) {
  320. _cx = n;
  321. _cy = r
  322. } else {
  323. _cy = -1
  324. }
  325. edx();
  326. return
  327. }
  328. }
  329. if (_cy != -1) {
  330. for (n = 0; n < 9; n++) {
  331. o = _xn + 2 + mf(n / 3) * 2 + n * 31;
  332. u = _yn + 2;
  333. if (!rp(e, t, o, u, 30, 30)) {
  334. continue
  335. }
  336. if (_cb[_cy][_cx] != 0) {
  337. continue
  338. }
  339. if (_nm) {
  340. s = _cn[_cy][_cx];
  341. if (i = _cl[_cy][_cx]) {
  342. s[_0x7e97[30]](i);
  343. _cl[_cy][_cx] = 0
  344. }
  345. i = s[_0x7e97[16]](n + 1);
  346. if (i == -1) {
  347. s[_0x7e97[30]](n + 1)
  348. } else {
  349. s[_0x7e97[21]](i, 1)
  350. }
  351. } else {
  352. _cl[_cy][_cx] = n + 1;
  353. _cn[_cy][_cx] = []
  354. }
  355. return edx()
  356. }
  357. }
  358. if (rs(e, t, spButton, _xn + 48, _yn + 64) && game_complete()) {
  359. _yw = 3;
  360. ec();
  361. et[_0x7e97[30]](game_wint);
  362. ed[_0x7e97[30]](game_draw);
  363. return edx()
  364. }
  365. if (_cy != -1 && rs(e, t, spSqButton, _xn + 105, _yn + 47) && _cb[_cy][_cx] == 0) {
  366. _cl[_cy][_cx] = 0;
  367. _cn[_cy][_cx] = [];
  368. return edx()
  369. }
  370. if (rs(e, t, spSqButton, _xn + 147, _yn + 47)) {
  371. _nm = !_nm;
  372. return edx()
  373. }
  374. if (rs(e, t, spButton, _xn + 238, _yn + 64)) {
  375. ar(em, game_click);
  376. em[_0x7e97[30]](game_click2);
  377. _sm = true;
  378. edx()
  379. }
  380. }
  381. function game_ae() {
  382. em[_0x7e97[30]](game_click);
  383. et[_0x7e97[30]](game_time)
  384. }
  385. function game_draw() {
  386. c[_0x7e97[22]](txb, -320, -480);
  387. var e, t, n, r, i, s, o;
  388. i = (r = z[ff[_0x7e97[86]](8, 6)]) ? lo(r, fe) != -1 : 1;
  389. i = true;
  390. for (t = 0; t < 9; t++) {
  391. for (e = 0; e < 9; e++) {
  392. n = e + t & 1 ? spSlot2 : spSlot1;
  393. if (_cx == e && _cy == t) {
  394. n = spSlotSel1
  395. }
  396. if (_sw && _cw[t][e]) {
  397. n = n == spSlotSel1 ? spSlotSel2 : spSlotSel1
  398. }
  399. s = _xb + 2 + mf(e / 3) * 2 + e * 31;
  400. o = _yb + 2 + mf(t / 3) * 2 + t * 31;
  401. cs(n, s, o);
  402. if (n = _cb[t][e]) {
  403. c[_0x7e97[22]](tex, n * 15, 350, 15, 15, s + 7, o + 7, 15, 15)
  404. } else {
  405. if (n = _cl[t][e]) {
  406. c[_0x7e97[22]](tex, n * 15 + 150, 350, 15, 15, s + 7, o + 7, 15, 15)
  407. } else {
  408. if (r = _cn[t][e][_0x7e97[20]]) {
  409. i = _cn[t][e];
  410. cfx(cld, 1);
  411. ct(0, 0, fmvb);
  412. for (n = 0; n < r; n++) {
  413. c[_0x7e97[22]](tex, i[n] * 15 + 150, 365, 15, 15, s - 2 + 9 * (n % 3), o - 2 + 9 * mf(n / 3), 15, 15)
  414. }
  415. }
  416. }
  417. }
  418. }
  419. }
  420. i = i ? 1 : 0;
  421. for (e = 0; e < 9; e += i) {
  422. s = _xn + 2 + mf(e / 3) * 2 + e * 31;
  423. o = _yn + 2;
  424. cs(spSlot1, s, o);
  425. c[_0x7e97[22]](tex, (e + 1) * 15, 365, 15, 15, s + 7, o + 7, 15, 15)
  426. }
  427. cs(spGrid, _xb, _yb);
  428. cs(spButton, _xn + 48, _yn + 64);
  429. cs(spSqButton, _xn + 105, _yn + 47);
  430. cs(spErase, _xn + 122, _yn + 64);
  431. cs(_nm ? spSqButtonRed : spSqButton, _xn + 147, _yn + 47);
  432. cs(_nm ? spNotesRed : spNotes, _xn + 164, _yn + 64);
  433. cs(spButton, _xn + 238, _yn + 64);
  434. ct(0, 0, fmsb);
  435. cf(_0x7e97[87]);
  436. c[_0x7e97[43]](_0x7e97[88], _xn + 48, _yn + 64);
  437. c[_0x7e97[43]](_0x7e97[89], _xn + 238, _yn + 64);
  438. if (_yw > 0 || _sm) {
  439. cf(_0x7e97[90]);
  440. cr(-5, -5, 325, 485)
  441. }
  442. if (_yw > 0) {
  443. cs(spWinGlyph, 160, 240);
  444. cs(spWinText, 160, 240);
  445. cf(_0x7e97[52]);
  446. ct(0, 0, fmb);
  447. var u = _0x7e97[19];
  448. var e = mf(_time);
  449. var t = 0;
  450. if (e > 3600) {
  451. t = mf(e / 3600);
  452. u += t + _0x7e97[91];
  453. e = e % 3600
  454. }
  455. if (e > 60) {
  456. t = mf(e / 60);
  457. if (t < 10 && u[_0x7e97[20]]) {
  458. u += _0x7e97[92]
  459. }
  460. u += t + _0x7e97[91];
  461. e = e % 60
  462. }
  463. if (e < 10 && u[_0x7e97[20]]) {
  464. u += _0x7e97[92]
  465. }
  466. u += e;
  467. c[_0x7e97[43]](_0x7e97[93] + u, 160, 192);
  468. // updateShareScore(u);
  469. // Play68.setRankingScoreAsc(window.t);
  470. setTimeout(function() {
  471. // Play68.shareFriend();
  472. }, 1500)
  473. } else {
  474. if (_sm) {
  475. cf(_0x7e97[94]);
  476. cr(-5, 164, 325, 311);
  477. cf(_0x7e97[52]);
  478. ct(0, -1, fmsb);
  479. c[_0x7e97[43]](_0x7e97[95], 160, 187);
  480. ct(0, 1, fmsb);
  481. c[_0x7e97[43]](_0x7e97[96], 160, 197);
  482. cs(spButton, 160, 240);
  483. cs(spButton, 160, 288);
  484. ct(0, 0, fmsb);
  485. cf(_0x7e97[87]);
  486. c[_0x7e97[43]](_0x7e97[97], 160, 240);
  487. c[_0x7e97[43]](_0x7e97[98], 160, 288)
  488. }
  489. }
  490. cao()
  491. }
  492. function game_start(e) {
  493. ec();
  494. si();
  495. _nm = false;
  496. _sw = false;
  497. _sm = false;
  498. _cx = _cy = -1;
  499. _time = 0;
  500. _cb = [];
  501. _cl = [];
  502. _cd = [];
  503. _cn = [];
  504. _cw = [];
  505. var t, n, r;
  506. for (n = 0; n < 9; n++) {
  507. _cb[n] = [];
  508. _cl[n] = [];
  509. _cd[n] = [];
  510. _cn[n] = [];
  511. _cw[n] = [];
  512. for (t = 0; t < 9; t++) {
  513. _cb[n][t] = 0;
  514. _cd[n][t] = 0;
  515. _cl[n][t] = 0;
  516. _cn[n][t] = [];
  517. _cw[n][t] = false
  518. }
  519. }
  520. for (n = 0; n < 9; n++) {
  521. for (t = 0; t < 9; t++) {
  522. _cd[n][t] = sa(t, n)
  523. }
  524. }
  525. sc(_diff == 2 ? 47 : _diff == 1 ? 40 : 20);
  526. for (n = 0; n < 9; n++) {
  527. for (t = 0; t < 9; t++) {
  528. r = sa(t, n);
  529. _cb[n][t] = _cl[n][t] = r
  530. }
  531. }
  532. ed[_0x7e97[30]](game_draw);
  533. if (!e) {
  534. fade_start(1, -2, game_ae)
  535. }
  536. }
  537. function dmenu_click(e, t) {
  538. var n = -1;
  539. if (rs(e, t, spButton, 160, 192)) {
  540. n = 0;
  541. gameDifficulty = _0x7e97[99]
  542. }
  543. if (rs(e, t, spButton, 160, 240)) {
  544. n = 1;
  545. gameDifficulty = _0x7e97[100]
  546. }
  547. if (rs(e, t, spButton, 160, 288)) {
  548. n = 2;
  549. gameDifficulty = _0x7e97[101]
  550. }
  551. if (n != -1) {
  552. _diff = n;
  553. ec();
  554. fade_start(0, 2, game_start)
  555. }
  556. }
  557. function dmenu_ae() {
  558. em[_0x7e97[30]](dmenu_click)
  559. }
  560. function dmenu_draw() {
  561. c[_0x7e97[22]](txb, 0, -480);
  562. cf(_0x7e97[94]);
  563. cr(-5, 164, 325, 311);
  564. cs(spButton, 160, 192);
  565. cs(spButton, 160, 240);
  566. cs(spButton, 160, 288);
  567. ct(0, 0, fmsb);
  568. cf(_0x7e97[87]);
  569. c[_0x7e97[43]](_0x7e97[99], 160, 192);
  570. c[_0x7e97[43]](_0x7e97[100], 160, 240);
  571. c[_0x7e97[43]](_0x7e97[101], 160, 288);
  572. cao()
  573. }
  574. function dmenu_start() {
  575. ec();
  576. ed[_0x7e97[30]](dmenu_draw);
  577. fade_start(1, -2, dmenu_ae)
  578. }
  579. function howto_click(e, t) {
  580. if (rs(e, t, spButton, 160, 384)) {
  581. ec();
  582. fade_start(0, 2, menu_start)
  583. }
  584. }
  585. function howto_ae() {
  586. em[_0x7e97[30]](howto_click)
  587. }
  588. function howto_draw() {
  589. c[_0x7e97[22]](txb, 0, 0);
  590. cf(_0x7e97[94]);
  591. cr(-5, 100, 325, 340);
  592. c[_0x7e97[22]](txh, 0, 50);
  593. cs(spButton, 160, 384);
  594. ct(0, 0, fmsb);
  595. cf(_0x7e97[87]);
  596. c[_0x7e97[43]](_0x7e97[102], 160, 384);
  597. cao()
  598. }
  599. function howto_start() {
  600. ec();
  601. ed[_0x7e97[30]](howto_draw);
  602. fade_start(1, -2, howto_ae)
  603. }
  604. function menu_click(e, t) {
  605. if (rs(e, t, spButton, 160, 216)) {
  606. ec();
  607. fade_start(0, 2, dmenu_start)
  608. }
  609. if (rs(e, t, spButton, 160, 264)) {
  610. ec();
  611. fade_start(0, 2, howto_start)
  612. }
  613. }
  614. function menu_ae() {
  615. em[_0x7e97[30]](menu_click)
  616. }
  617. function menu_start() {
  618. ec();
  619. ed[_0x7e97[30]](menu_draw);
  620. fade_start(1, -2, menu_ae)
  621. }
  622. function menu_draw() {
  623. c[_0x7e97[22]](txb, -320, 0);
  624. cf(_0x7e97[94]);
  625. cr(-5, 164, 325, 311);
  626. cs(spButton, 160, 216);
  627. cs(spButton, 160, 264);
  628. ct(0, 0, fmsb);
  629. cf(_0x7e97[87]);
  630. c[_0x7e97[43]](_0x7e97[103], 160, 216);
  631. c[_0x7e97[43]](_0x7e97[104], 160, 264);
  632. cao()
  633. }
  634. function _start() {
  635. spGrid = ns(0, 0, 300, 350, 7, 7);
  636. spWinGlyph = ns(300, 0, 174, 338, 87, 169);
  637. spWinText = ns(0, 380, 224, 49, 112, 24);
  638. spFacebook = ns(474, 0, 32, 32);
  639. spTwitter = ns(474, 32, 32, 32);
  640. spButton = ns(300, 338, 96, 34, 48, 17);
  641. spSqButton = ns(474, 64, 34, 34, 0, 0);
  642. spSqButtonRed = ns(474, 201, 34, 34, 0, 0);
  643. spSlot1 = ns(474, 111, 30, 30, 0, 0);
  644. spSlot2 = ns(474, 141, 30, 30, 0, 0);
  645. spSlotSel1 = ns(474, 171, 30, 30, 0, 0);
  646. spSlotSel2 = ns(474, 235, 30, 30, 0, 0);
  647. spErase = ns(474, 98, 15, 13, 7, 6);
  648. spNotes = ns(489, 98, 11, 13, 5, 6);
  649. spNotesRed = ns(500, 98, 11, 13, 5, 6);
  650. menu_start()
  651. }
  652. function _scroll() {
  653. window[_0x7e97[108]](0, 1)
  654. }
  655. function _orient() {
  656. window[_0x7e97[108]](0, 1);
  657. var e = window[_0x7e97[109]];
  658. switch (e) {
  659. case 90:
  660. ori = 1;
  661. break;;
  662. case -90:
  663. ori = -1;
  664. break;;
  665. default:
  666. ori = 0;
  667. }
  668. }
  669. function _loaded() {
  670. setTimeout(_scroll, 1);
  671. // play68_init()
  672. }
  673. function _adstart() {}
  674. function _init() {
  675. var e = document[_0x7e97[113]] && document[_0x7e97[113]][_0x7e97[16]](_0x7e97[114]) == -1;
  676. e = false;
  677. if (e) {
  678. window[_0x7e97[117]](_0x7e97[115], _0x7e97[116])
  679. }
  680. ca = d[_0x7e97[111]](_0x7e97[118]);
  681. if (scaleToFit && d[_0x7e97[42]] > 480) {
  682. ca2 = ca;
  683. c2 = ca2[_0x7e97[45]](_0x7e97[44]);
  684. ca = nc(320, 480);
  685. var t = Math[_0x7e97[119]](d[_0x7e97[42]] / 480, d[_0x7e97[41]] / 320);
  686. mouseXm = mouseYm = 1 / t;
  687. ca2[_0x7e97[42]] = Math[_0x7e97[1]](t * 480);
  688. ca2[_0x7e97[41]] = ca2[_0x7e97[42]] * 2 / 3
  689. }
  690. c = ca[_0x7e97[45]](_0x7e97[44]);
  691. c[_0x7e97[22]] = c[_0x7e97[49]];
  692. c[_0x7e97[43]] = c[_0x7e97[120]];
  693. c[_0x7e97[69]] = c[_0x7e97[121]];
  694. c[_0x7e97[71]] = c[_0x7e97[122]];
  695. c[_0x7e97[123]] = c[_0x7e97[124]];
  696. c[_0x7e97[125]] = c[_0x7e97[126]];
  697. c[_0x7e97[127]] = c[_0x7e97[128]];
  698. c[_0x7e97[70]] = c[_0x7e97[129]];
  699. var n = d[_0x7e97[40]](_0x7e97[130]);
  700. n[_0x7e97[132]](_0x7e97[38], _0x7e97[131]);
  701. n[_0x7e97[132]](_0x7e97[133], _0x7e97[134]);
  702. n[_0x7e97[132]](_0x7e97[135], _0x7e97[110]);
  703. n[_0x7e97[37]] = _adstart;
  704. d[_0x7e97[111]](_0x7e97[137])[_0x7e97[136]](n);
  705. ec();
  706. window[_0x7e97[138]] = _orient;
  707. window[_0x7e97[140]](_0x7e97[139], _loaded);
  708. d[_0x7e97[141]] = d[_0x7e97[140]];
  709. d[_0x7e97[142]] = ms();
  710. if (!(z = d)[_0x7e97[141]]) {
  711. d[_0x7e97[141]] = d[_0x7e97[143]];
  712. d[_0x7e97[142]] = ms(111, 110)
  713. }
  714. if (d[_0x7e97[140]]) {
  715. d[_0x7e97[140]](_0x7e97[144], eotm, false);
  716. d[_0x7e97[140]](_0x7e97[145], eotm, false);
  717. d[_0x7e97[140]](_0x7e97[146], eote, false)
  718. }
  719. d[_0x7e97[141]](d[_0x7e97[142]] + _0x7e97[147], eomd, false);
  720. d[_0x7e97[141]](d[_0x7e97[142]] + _0x7e97[148], eom, false);
  721. d[_0x7e97[141]](d[_0x7e97[142]] + _0x7e97[149], eok, false);
  722. eot();
  723. if (!txb) {
  724. txb = ni(_0x7e97[150])
  725. }
  726. if (!tex) {
  727. tex = ni(_0x7e97[151])
  728. }
  729. if (!txh) {
  730. txh = ni(_0x7e97[152])
  731. }
  732. pld()
  733. }
  734. var _0x7e97 = ["documentElement", "floor", "random", "fromCharCode", "8,8,8", "247,247,247", "70,70,70", "207,21,21", "eval", "bold ", "italic ", "Tahoma, Domain, Microsoft Yahei, 微软雅黑, STXihei, 华文细黑, sans-serif", "15px ", "19px ", "17px ", "9px ", "indexOf", "getTime", "toLowerCase", "", "length", "splice", "i", "j", "x", "y", "Sudoku", "sudoku", "setValue", "cellConflicts", "push", "Grid", "rows", "prototype", "generate", "cull", "getValue", "onload", "src", "canvas", "createElement", "width", "height", "t", "2d", "getContext", "u", "v", "o", "drawImage", "loading.png", "#111", "white", "加载中...", "backgroundColor", "style", "textAlign", "center", "left", "right", "textBaseline", "middle", "top", "bottom", "font", "fillStyle", "rgba(", ",", ")", "bp", "fr", "cp", "preventDefault", "targetTouches", "pageX", "offsetLeft", "pageY", "offsetTop", "event", "which", "keyCode", "clientX", "scrollLeft", "clientY", "scrollTop", "rgba(0, 0, 0, ", "substr", "black", "提交", "返回主菜单", "rgba(0, 0, 0, 0.75)", ":", "0", "时间: ", "rgba(255, 255, 255, 0.4)", "您确定要返回主菜单吗?", "您的进度将不被保存!", "确认", "取消", "简单", "普通", "困难", "返回", "开始游戏", "帮助", "a14ef83f3a0c5b2", "C62919", "FFFFFF", "scrollTo", "orientation", "ad-script", "getElementById", "fetchAd", "domain", "play68.com", "http://game.play68.com/sudoku/", "_self", "open", "ca", "min", "fillText", "beginPath", "closePath", "s", "stroke", "f", "fill", "sr", "strokeRect", "fillRect", "script", "http://", "setAttribute", "type", "text/javascript", "id", "appendChild", "ui", "onorientationchange", "load", "addEventListener", "ae", "ep", "attachEvent", "touchstart", "touchmove", "touchend", "mousedown", "mousemove", "keydown", "back.jpg", "tex.png", "howto.png"];
  735. var d = document,
  736. ori = 0,
  737. scaleToFit = true,
  738. c, ca, c2, ca2, db = d[so(83, 78, 69, 72, 42)],
  739. de = d[_0x7e97[0]],
  740. dx = d[so(29, 26, 18, 30, 28, 23, 115)],
  741. mf = Math[_0x7e97[1]],
  742. mr = Math[_0x7e97[2]],
  743. ms = String[_0x7e97[3]],
  744. pli, cl0 = _0x7e97[4],
  745. cl1 = _0x7e97[5],
  746. cld = _0x7e97[6],
  747. clr = _0x7e97[7],
  748. fe = _0x7e97[8],
  749. fb = _0x7e97[9],
  750. fi = _0x7e97[10],
  751. ff = _0x7e97[11],
  752. fm = _0x7e97[12] + ff,
  753. fmb = fb + fm,
  754. fmi = fi + fm,
  755. fml = _0x7e97[13] + ff,
  756. fmlb = fb + fml,
  757. fms = _0x7e97[14] + ff,
  758. fmsb = fb + fms,
  759. fmsi = fi + fms,
  760. fmv = _0x7e97[15] + ff,
  761. fmvb = fb + fmv,
  762. tdl = 0,
  763. txb, txh, tex = dx && dx[_0x7e97[16]](1 > 0) == -1,
  764. tex = null,
  765. em, ek, et, ed, etouch = false,
  766. mouseX = 0,
  767. mouseY = 0,
  768. mouseXm = 1,
  769. mouseYm = 1,
  770. etp = (new Date)[_0x7e97[17]](),
  771. spGrid, spWinGlyph, spWinText, spFacebook, spTwitter, spButton, spSqButton, spSqButtonRed, spNotes, spNotesRed, spSlot1, spSlot2, spSlotSel1, spSlotSel2, spErase, _cb, _cl, _cd, _cn, _cw, _cx, _cy, _diff = 0,
  772. _time = 0,
  773. _nm = 0,
  774. _sw, _sm, _xb = 17,
  775. _yb = 26,
  776. _xn = 17,
  777. _yn = 328,
  778. _yw = 0,
  779. _fa, _fd, _fc, _end;
  780. if (!CU) {
  781. var CU = {}
  782. }
  783. CU[_0x7e97[26]] = {
  784. generate: function() {
  785. var e = new CU[_0x7e97[27]].Grid;
  786. var t = [];
  787. for (var n = 0; n < 81; n++) {
  788. t[n] = [1, 2, 3, 4, 5, 6, 7, 8, 9]
  789. }
  790. for (var n = 0; n < 81; n++) {
  791. var r = false;
  792. var i = Math[_0x7e97[1]](n / 9);
  793. var s = n - i * 9;
  794. while (t[n][_0x7e97[20]] > 0) {
  795. var o = Math[_0x7e97[1]](Math[_0x7e97[2]]() * t[n][_0x7e97[20]]);
  796. var u = t[n][_0x7e97[21]](o, 1)[0];
  797. e[_0x7e97[28]](s, i, u);
  798. if (!e[_0x7e97[29]](s, i)) {
  799. r = true;
  800. break
  801. } else {
  802. e[_0x7e97[28]](s, i, 0);
  803. r = false;
  804. continue
  805. }
  806. }
  807. if (!r) {
  808. t[n] = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  809. n -= 2
  810. }
  811. }
  812. return e
  813. },
  814. cull: function(e, t) {
  815. var n = [];
  816. for (var r = 0; r < 81; r++) {
  817. n[_0x7e97[30]](r)
  818. }
  819. for (var r = 0; r < t; r++) {
  820. var i = Math[_0x7e97[1]](Math[_0x7e97[2]]() * n[_0x7e97[20]]);
  821. var s = n[_0x7e97[21]](i, 1);
  822. var o = Math[_0x7e97[1]](s / 9);
  823. var u = s - o * 9;
  824. e[_0x7e97[28]](u, o, 0)
  825. }
  826. }
  827. };
  828. CU[_0x7e97[27]] = {};
  829. CU[_0x7e97[27]][_0x7e97[31]] = function() {
  830. this[_0x7e97[32]] = [];
  831. for (var e = 0; e < 9; e++) {
  832. var t = [];
  833. for (var n = 0; n < 9; n++) {
  834. t[n] = 0
  835. }
  836. this[_0x7e97[32]][e] = t
  837. }
  838. };
  839. CU[_0x7e97[27]][_0x7e97[31]][_0x7e97[33]] = {
  840. rows: [],
  841. getValue: function(e, t) {
  842. return this[_0x7e97[32]][t][e]
  843. },
  844. setValue: function(e, t, n) {
  845. this[_0x7e97[32]][t][e] = n
  846. },
  847. cellConflicts: function(e, t) {
  848. var n = this[_0x7e97[32]][t][e];
  849. if (n == 0) {
  850. return false
  851. }
  852. for (var r = 0; r < 9; r++) {
  853. if (r != t && this[_0x7e97[32]][r][e] == n) {
  854. return true
  855. }
  856. if (r != e && this[_0x7e97[32]][t][r] == n) {
  857. return true
  858. }
  859. }
  860. return !this._miniGridValid(e, t)
  861. },
  862. _miniGridValid: function(e, t) {
  863. var n = Math[_0x7e97[1]](e / 3);
  864. var r = Math[_0x7e97[1]](t / 3);
  865. var i = n * 3;
  866. var s = r * 3;
  867. var o = (n + 1) * 3;
  868. var u = (r + 1) * 3;
  869. var a = [];
  870. for (var f = s; f < u; f++) {
  871. for (var l = i; l < o; l++) {
  872. var c = this[_0x7e97[32]][f][l];
  873. if (c == 0) {
  874. continue
  875. }
  876. for (var h = s; h < u; h++) {
  877. for (var p = i; p < o; p++) {
  878. if (!(h == f && p == l)) {
  879. if (this[_0x7e97[32]][h][p] == c) {
  880. return false
  881. }
  882. }
  883. }
  884. }
  885. a[_0x7e97[30]](c)
  886. }
  887. }
  888. return true
  889. }
  890. };
  891. var grid;
  892. var admob_vars = {
  893. pubid: _0x7e97[105],
  894. bgcolor: _0x7e97[106],
  895. text: _0x7e97[107],
  896. test: false
  897. };
  898. _init()