index.htm 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <!-- Source: http://codegolf.stackexchange.com/a/4518/5240 -->
  2. <html>
  3. <head>
  4. <title>Snake</title>
  5. </head>
  6. <body>
  7. <pre id="x" style="line-height: 1"></pre>
  8. <script>
  9. c = 0;
  10. a = b = d = -1;
  11. e = [f = [20, 7],
  12. [20, 8]
  13. ];
  14. i = Math.random;~
  15. function n() {
  16. if (c && (87 == a || 83 == a)) c = 0, d = 87 == a ? -1 : 1;
  17. if (d && (65 == a || 68 == a)) d = 0, c = 65 == a ? -1 : 1;
  18. p([j = e[0][0] + c, k = e[0][1] + d])
  19. || !j || 39 == j || !k
  20. || 10 == k ? b += " | GAME OVER"
  21. : (e.unshift([j, k]), p(f)
  22. ? (f = [1 + 38 * i() | 0, 1 + 9 * i() | 0], b++)
  23. : e.pop());
  24. for (m = h = ""; 11 > h; h++) {
  25. for (g = 0; 40 > g; g++) l = g + "," + h, m += !g
  26. || 39 == g || !h
  27. || 10 == h ? "X"
  28. : e[0] == l ? "O"
  29. : p(l) ? "*" : f == l ? "%" : " ";
  30. m += "\n"
  31. }
  32. x.innerHTML = m + b;
  33. !b.sup && setTimeout(n, 99)
  34. }();
  35. onkeydown = function (o) {
  36. a = o.keyCode
  37. };
  38. function p(o) {
  39. return e.join(p).indexOf(p + o) + 1
  40. }
  41. </script>
  42. </body>
  43. </html>