Guest User

Untitled

a guest
Aug 11th, 2013
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function play(){
  2. var level = 65;
  3. var rect_w = 75;
  4. var rect_h = 35;
  5. var inc_score = 50;
  6. var snake_color = "#009904";
  7. var ctx;
  8. var tn = [];
  9. var x_dir = [-1, 0, 1, 0];
  10. var y_dir = [0, -1, 0, 1];
  11. var queue = [];
  12. var frog = 1;
  13. var map = [];
  14. var MR = Math.random;
  15. var X = 5 + (MR() * (rect_w - 10))|0;
  16. var Y = 5 + (MR() * (rect_h - 10))|0;
  17. var direction = MR() * 3 | 0;
  18. var interval = 0;
  19. var score = 0;
  20. var sum = 0, easy = 0;
  21. var i, dir;
  22. var c = document.getElementById('playZone');
  23. ctx = c.getContext('2d');
  24. for (i = 0; i < rect_w; i++){
  25. map[i] = [];
  26. }
  27. function rand_frog(){
  28. var x, y;
  29. do {
  30. x = MR() * rect_w|0;
  31. y = MR() * rect_h|0;
  32. }
  33. while (map[x][y]);
  34. map[x][y] = 1;
  35. ctx.fillStyle = snake_color;
  36. ctx.strokeRect(x * 10+1, y * 10+1, 8, 8);
  37. }
  38. rand_frog();
  39. function set_game_speed(){
  40. if (easy) {
  41. X = (X+rect_w)%rect_w;
  42. Y = (Y+rect_h)%rect_h;
  43. }
  44. --inc_score;
  45. if (tn.length) {
  46. dir = tn.pop();
  47. if ((dir % 2) !== (direction % 2)) {
  48. direction = dir;
  49. }
  50. }
  51. if ((easy || (0 <= X && 0 <= Y && X < rect_w && Y < rect_h)) && 2 !== map[X][Y]) {
  52. if (1 === map[X][Y]) {
  53. score+= Math.max(5, inc_score);
  54. inc_score = 50;
  55. rand_frog();
  56. frog++;
  57. }
  58. ctx.fillRect(X * 10, Y * 10, 9, 9);
  59. map[X][Y] = 2;
  60. queue.unshift([X, Y]);
  61. X+= x_dir[direction];
  62. Y+= y_dir[direction];
  63. if (frog < queue.length) {
  64. dir = queue.pop()
  65. map[dir[0]][dir[1]] = 0;
  66. ctx.clearRect(dir[0] * 10, dir[1] * 10, 10, 10);
  67. }
  68. }else if (!tn.length){
  69. var msg_score = document.getElementById("msg");
  70. msg_score.innerHTML = "Спасибо за игру.<br /> Ваш счёт: <b>"+score+"</b><br /><br /><input type='button' value='Сыграть ещё?' onclick='window.location.reload();' />";
  71. document.getElementById("playZone").style.display = 'none';
  72. window.clearInterval(interval);
  73. }
  74. }
  75. interval = window.setInterval(set_game_speed, level);
  76. document.onkeydown = function(e) {
  77. var code = e.keyCode - 37;
  78. if (0 <= code && code < 4 && code !== tn[0]) {
  79. tn.unshift(code);
  80. }else if (-5 == code){
  81. if (interval){
  82. window.clearInterval(interval);
  83. interval = 0;
  84. }else{
  85. interval = window.setInterval(set_game_speed, 60);
  86. }
  87. }else{
  88. dir = sum + code;
  89. if (dir == 44||dir==94||dir==126||dir==171) {
  90. sum+= code
  91. } else if (dir === 218) easy = 1;
  92. }
  93. }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment