Mayuresh

html snake game....^^

Jun 24th, 2012
8,855
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 3.23 KB | None | 0 0
  1. Posted by Mayur:-
  2.  
  3. <html>
  4. <head>
  5. <meta charset="utf-8" />
  6. <title>cyber tech buzz Game</title>
  7. <style type="text/css">
  8. body {text-align:center;}
  9. canvas { border:5px dotted #ccc; }
  10. h1 { font-size:50px; text-align: center; margin: 0; padding-bottom: 25px;}
  11. </style>
  12. <script type="text/javascript">
  13. function play_game()
  14. {
  15. var level = 160; // Game level, by decreasing will speed up
  16. var rect_w = 45; // Width
  17. var rect_h = 30; // Height
  18. var inc_score = 50; // Score
  19. var snake_color = "#385726"; // Snake Color
  20. var ctx; // Canvas attributes
  21. var tn = []; // temp directions storage
  22. var x_dir = [-1, 0, 1, 0]; // position adjusments
  23. var y_dir = [0, -1, 0, 1]; // position adjusments
  24. var queue = [];
  25. var frog = 1; // defalut food
  26. var map = [];
  27. var MR = Math.random;
  28. var X = 5 + (MR() * (rect_w - 10))|0; // Calculate positions
  29. var Y = 5 + (MR() * (rect_h - 10))|0; // Calculate positions
  30. var direction = MR() * 3 | 0;
  31. var interval = 0;
  32. var score = 0;
  33. var sum = 0, easy = 0;
  34. var i, dir;
  35. // getting play area
  36. var c = document.getElementById('playArea');
  37. ctx = c.getContext('2d');
  38. // Map positions
  39. for (i = 0; i < rect_w; i++)
  40. {
  41. map[i] = [];
  42. }
  43. // random placement of snake food
  44. function rand_frog()
  45. {
  46. var x, y;
  47. do
  48. {
  49. x = MR() * rect_w|0;
  50. y = MR() * rect_h|0;
  51. }
  52. while (map[x][y]);
  53. map[x][y] = 1;
  54. ctx.fillStyle = snake_color;
  55. ctx.strokeRect(x * 10+1, y * 10+1, 8, 8);
  56. }
  57. // Default somewhere placement
  58. rand_frog();
  59. function set_game_speed()
  60. {
  61. if (easy)
  62. {
  63. X = (X+rect_w)%rect_w;
  64. Y = (Y+rect_h)%rect_h;
  65. }
  66. --inc_score;
  67. if (tn.length)
  68. {
  69. dir = tn.pop();
  70. if ((dir % 2) !== (direction % 2))
  71. {
  72. direction = dir;
  73. }
  74. }
  75. if ((easy || (0 <= X && 0 <= Y && X < rect_w && Y < rect_h)) && 2 !== map[X][Y])
  76. {
  77. if (1 === map[X][Y])
  78. {
  79. score+= Math.max(5, inc_score);
  80. inc_score = 50;
  81. rand_frog();
  82. frog++;
  83. }
  84. //ctx.fillStyle("#ffffff");
  85. ctx.fillRect(X * 10, Y * 10, 9, 9);
  86. map[X][Y] = 2;
  87. queue.unshift([X, Y]);
  88. X+= x_dir[direction];
  89. Y+= y_dir[direction];
  90. if (frog < queue.length)
  91. {
  92. dir = queue.pop()
  93. map[dir[0]][dir[1]] = 0;
  94. ctx.clearRect(dir[0] * 10, dir[1] * 10, 10, 10);
  95. }
  96. }
  97. else if (!tn.length)
  98. {
  99. var msg_score = document.getElementById("msg");
  100. msg_score.innerHTML = "<a href=https://www.facebook.com/cybertechbuzz>Thank you for playing game Click here....<a/><br /> Your Score : <b>"+score+"</b><br /><br /><input type='button' value='Play Again' onclick='window.location.reload();' />";
  101. document.getElementById("playArea").style.display = 'none';
  102. window.clearInterval(interval);
  103. }
  104. }
  105. interval = window.setInterval(set_game_speed, level);
  106. document.onkeydown = function(e) {
  107. var code = e.keyCode - 37;
  108. if (0 <= code && code < 4 && code !== tn[0])
  109. {
  110. tn.unshift(code);
  111. }
  112. else if (-5 == code)
  113. {
  114. if (interval)
  115. {
  116. window.clearInterval(interval);
  117. interval = 0;
  118. }
  119. else
  120. {
  121. interval = window.setInterval(set_game_speed, 60);
  122. }
  123. }
  124. else
  125. {
  126. dir = sum + code;
  127. if (dir == 44||dir==94||dir==126||dir==171) {
  128. sum+= code
  129. } else if (dir === 218) easy = 1;
  130. }
  131. }
  132. }
  133. </script>
  134. </head>
  135. <body onload="play_game()">
  136. <h1>Snake Game by Mayur Subhedar</h1>
  137. <div id="msg"></div>
  138. <canvas id="playArea" width="450" height="300"><a href="https://www.facebook.com/mayur.subhedar">Sorry your browser does not support HTML5</a></canvas>
  139. </body>
  140. </html>
Advertisement
Add Comment
Please, Sign In to add comment