fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. // your code goes here
  13. }
  14. }<!DOCTYPE HTML>
  15. <html>
  16. <head>
  17. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  18. <title>Feed the Snake v 1.1 beta</title>
  19. <style>
  20. body
  21. {
  22. background:#000;
  23. color:#FFF;
  24. }
  25. canvas
  26. {
  27. background:#FFF;
  28. }
  29. #controls
  30. {
  31. position:absolute;
  32. top:0;
  33. right:0;
  34. margin:10px;
  35. }
  36. </style>
  37. <script type="text/javascript">
  38. var snake = window.snake || {};
  39. function launchFullscreen(element) {
  40. if(element.requestFullscreen) {
  41. element.requestFullscreen();
  42. } else if(element.mozRequestFullScreen) {
  43. element.mozRequestFullScreen();
  44. } else if(element.webkitRequestFullscreen) {
  45. element.webkitRequestFullscreen();
  46. } else if(element.msRequestFullscreen) {
  47. element.msRequestFullscreen();
  48. }
  49. }
  50. window.onload = function(){
  51. document.addEventListener("fullscreenchange", function(){snake.game.adjust();});
  52. document.addEventListener("webkitfullscreenchange", function(){snake.game.adjust();});
  53. document.addEventListener("mozfullscreenchange", function(){snake.game.adjust();});
  54. document.addEventListener("MSFullscreenChange", function(){snake.game.adjust();});
  55.  
  56. snake.game = (function()
  57. {
  58. var canvas = document.getElementById('canvas');
  59. var ctx = canvas.getContext('2d');
  60. var status=false;
  61. var score = 0;
  62. var old_direction = 'right';
  63. var direction = 'right';
  64. var block = 10;
  65. var score = 0;
  66. var refresh_rate = 250;
  67. var pos = [[5,1],[4,1],[3,1],[2,1],[1,1]];
  68. var scoreboard = document.getElementById('scoreboard');
  69. var control = document.getElementById('controls');
  70. var keys = {
  71. 37 : 'left',
  72. 38 : 'up',
  73. 39 : 'right',
  74. 40 : 'down'
  75. };
  76. function adjust()
  77. {
  78. if (document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement )
  79. {
  80. canvas.width=window.innerWidth;
  81. canvas.height=window.innerHeight;
  82. control.style.display='none';
  83. }
  84. else
  85. {
  86. canvas.width=850;
  87. canvas.height=600;
  88. control.style.display='inline';
  89. }
  90. }
  91. var food = [Math.round(Math.random(4)*(canvas.width - 10)), Math.round(Math.random(4)*(canvas.height - 10)),];
  92. function todraw()
  93. {
  94. for(var i = 0; i < pos.length; i++)
  95. {
  96. draw(pos[i]);
  97. }
  98. }
  99. function giveLife()
  100. {
  101. var nextPosition = pos[0].slice();
  102. switch(old_direction)
  103. {
  104. case 'right':
  105. nextPosition[0] += 1;
  106. break;
  107. case 'left':
  108. nextPosition[0] -= 1;
  109. break;
  110. case 'up':
  111. nextPosition[1] -= 1;
  112. break;
  113. case 'down':
  114. nextPosition[1] += 1;
  115. break;
  116. }
  117. pos.unshift(nextPosition);
  118. pos.pop();
  119. }
  120. function grow()
  121. {
  122. var nextPosition = pos[0].slice();
  123. switch(old_direction)
  124. {
  125. case 'right':
  126. nextPosition[0] += 1;
  127. break;
  128. case 'left':
  129. nextPosition[0] -= 1;
  130. break;
  131. case 'up':
  132. nextPosition[1] -= 1;
  133. break;
  134. case 'down':
  135. nextPosition[1] += 1;
  136. break;
  137. }
  138. pos.unshift(nextPosition);
  139. }
  140. function loop()
  141. {
  142. ctx.clearRect(0,0,canvas.width,canvas.height);
  143. todraw();
  144. giveLife();
  145. feed();
  146. if(is_catched(pos[0][0]*block,pos[0][1]*block,block,block,food[0],food[1],10,10))
  147. {
  148. score += 10;
  149. createfood();
  150. scoreboard.innerHTML = score;
  151. grow();
  152. if(refresh_rate > 100)
  153. {
  154. refresh_rate -=5;
  155. }
  156. }
  157. snake.game.status = setTimeout(function() { loop(); },refresh_rate);
  158. }
  159. window.onkeydown = function(event){
  160. direction = keys[event.keyCode];
  161. if(direction)
  162. {
  163. setWay(direction);
  164. event.preventDefault();
  165. }
  166. };
  167. function setWay(direction)
  168. {
  169. switch(direction)
  170. {
  171. case 'left':
  172. if(old_direction!='right')
  173. {
  174. old_direction = direction;
  175. }
  176. break;
  177. case 'right':
  178. if(old_direction!='left')
  179. {
  180. old_direction = direction;
  181. }
  182. break;
  183. case 'up':
  184. if(old_direction!='down')
  185. {
  186. old_direction = direction;
  187. }
  188. break;
  189. case 'down':
  190. if(old_direction!='up')
  191. {
  192. old_direction = direction;
  193. }
  194. break;
  195. }
  196.  
  197. }
  198. function feed()
  199. {
  200. ctx.beginPath();
  201. ctx.fillStyle = "#ff0000";
  202. ctx.fillRect(food[0],food[1],10,10);
  203. ctx.fill();
  204. ctx.closePath();
  205. }
  206. function createfood()
  207. {
  208. food = [Math.round(Math.random(4)*850), Math.round(Math.random(4)*600)];
  209. }
  210. function is_catched(ax,ay,awidth,aheight,bx,by,bwidth,bheight) {
  211. return !(
  212. ((ay + aheight) < (by)) ||
  213. (ay > (by + bheight)) ||
  214. ((ax + awidth) < bx) ||
  215. (ax > (bx + bwidth))
  216. );
  217. }
  218. function draw(pos)
  219. {
  220. var x = pos[0] * block;
  221. var y = pos[1] * block;
  222. if(x >= canvas.width || x <= 0 || y >= canvas.height || y<= 0)
  223. {
  224. document.getElementById('pause').disabled='true';
  225. snake.game.status=false;
  226. ctx.clearRect(0,0,canvas.width,canvas.height);
  227. ctx.font='40px san-serif';
  228. ctx.fillText('Game Over',300,250);
  229. ctx.font = '20px san-serif';
  230. ctx.fillStyle='#000000';
  231. ctx.fillText('To Play again Refresh the page or click the Restarts button',200,300);
  232. throw ('Game Over');
  233. }
  234. else
  235. {
  236. ctx.beginPath();
  237. ctx.fillStyle='#000000';
  238. ctx.fillRect(x,y,block,block);
  239. ctx.closePath();
  240. }
  241. }
  242. function pause(elem)
  243. {
  244. if(snake.game.status)
  245. {
  246. clearTimeout(snake.game.status);
  247. snake.game.status=false;
  248. elem.value='Play'
  249. }
  250. else
  251. {
  252. loop();
  253. elem.value='Pause';
  254. }
  255. }
  256. function begin()
  257. {
  258. loop();
  259. }
  260. function restart()
  261. {
  262. location.reload();
  263. }
  264. function start()
  265. {
  266. ctx.fillStyle='#000000';
  267. ctx.fillRect(0,0,canvas.width,canvas.height);
  268. ctx.fillStyle='#ffffff';
  269. ctx.font='40px helvatica';
  270. ctx.fillText('ZeX_EVO',370,140);
  271. ctx.font='20px san-serif';
  272. ctx.fillText('presents',395,190);
  273. ctx.font='italic 60px san-serif';
  274. ctx.fillText('Friendly Snake',240,280);
  275. var img = new Image();
  276. img.onload = function()
  277. {
  278. ctx.drawImage(img,300,300,200,200);
  279. ctx.fillRect(410,330,10,10);
  280. }
  281. img.src ='snake.png';
  282. }
  283. function fullscreen()
  284. {
  285. launchFullscreen(canvas);
  286. }
  287. return {
  288. pause: pause,
  289. restart : restart,
  290. start : start,
  291. begin: begin,
  292. fullscreen : fullscreen,
  293. adjust : adjust,
  294. };
  295. })();
  296. snake.game.start();
  297. }
  298. </script>
  299. </head>
  300. <body>
  301. <canvas width="850" height="600" id="canvas" style="border:1px solid #333;" onclick="snake.game.begin();">
  302. </canvas>
  303. <div id="controls" style="float:right; text-align:center;">
  304. <input type="button" id="pause" value="Play" onClick="snake.game.pause(this);" accesskey="p">
  305. <input type="button" id="restart" value="Restart" onClick="snake.game.restart();">
  306. <br/><br/>
  307. <input type="button" id="fullscreen" value="Play Fullscreen" onClick="snake.game.fullscreen();">
  308. <br/><br/>
  309. <div style="font-size:24px;">
  310. Score :
  311. <span id="scoreboard">0</span>
  312. </div>
  313. </div>
  314. </body>
  315. </html>
  316. You can see a live version of the game here.
  317.  
  318. javascript html5 canvas snake-game
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:14: error: class, interface, or enum expected
}<!DOCTYPE HTML>
 ^
Main.java:22: error: illegal character: '#'
    background:#000;
               ^
Main.java:23: error: class, interface, or enum expected
    color:#FFF;
    ^
Main.java:23: error: illegal character: '#'
    color:#FFF;
          ^
Main.java:24: error: class, interface, or enum expected
}
^
Main.java:27: error: illegal character: '#'
    background:#FFF;
               ^
Main.java:28: error: class, interface, or enum expected
}
^
Main.java:29: error: illegal character: '#'
#controls
^
Main.java:32: error: class, interface, or enum expected
    top:0;
    ^
Main.java:33: error: class, interface, or enum expected
    right:0;
    ^
Main.java:34: error: class, interface, or enum expected
    margin:10px;
    ^
Main.java:35: error: class, interface, or enum expected
}
^
Main.java:39: error: class, interface, or enum expected
function launchFullscreen(element) {
^
Main.java:42: error: class, interface, or enum expected
  } else if(element.mozRequestFullScreen) {
  ^
Main.java:44: error: class, interface, or enum expected
  } else if(element.webkitRequestFullscreen) {
  ^
Main.java:46: error: class, interface, or enum expected
  } else if(element.msRequestFullscreen) {
  ^
Main.java:48: error: class, interface, or enum expected
  }
  ^
Main.java:51: error: class, interface, or enum expected
    document.addEventListener("fullscreenchange", function(){snake.game.adjust();});
                                                                                 ^
Main.java:52: error: class, interface, or enum expected
    document.addEventListener("webkitfullscreenchange", function(){snake.game.adjust();});
    ^
Main.java:52: error: class, interface, or enum expected
    document.addEventListener("webkitfullscreenchange", function(){snake.game.adjust();});
                                                                                       ^
Main.java:53: error: class, interface, or enum expected
    document.addEventListener("mozfullscreenchange", function(){snake.game.adjust();});
    ^
Main.java:53: error: class, interface, or enum expected
    document.addEventListener("mozfullscreenchange", function(){snake.game.adjust();});
                                                                                    ^
Main.java:54: error: class, interface, or enum expected
    document.addEventListener("MSFullscreenChange", function(){snake.game.adjust();});
    ^
Main.java:54: error: class, interface, or enum expected
    document.addEventListener("MSFullscreenChange", function(){snake.game.adjust();});
                                                                                   ^
Main.java:56: error: class, interface, or enum expected
    snake.game = (function()
    ^
Main.java:58: error: unclosed character literal
        var canvas = document.getElementById('canvas');
                                             ^
Main.java:58: error: unclosed character literal
        var canvas = document.getElementById('canvas');
                                                    ^
Main.java:59: error: class, interface, or enum expected
        var ctx = canvas.getContext('2d');
        ^
Main.java:59: error: unclosed character literal
        var ctx = canvas.getContext('2d');
                                    ^
Main.java:59: error: unclosed character literal
        var ctx = canvas.getContext('2d');
                                       ^
Main.java:60: error: class, interface, or enum expected
        var status=false;
        ^
Main.java:61: error: class, interface, or enum expected
        var score = 0;
        ^
Main.java:62: error: class, interface, or enum expected
        var old_direction = 'right';
        ^
Main.java:62: error: unclosed character literal
        var old_direction = 'right';
                            ^
Main.java:62: error: unclosed character literal
        var old_direction = 'right';
                                  ^
Main.java:63: error: unclosed character literal
        var direction = 'right';
                        ^
Main.java:63: error: unclosed character literal
        var direction = 'right';
                              ^
Main.java:65: error: class, interface, or enum expected
        var score = 0;
        ^
Main.java:66: error: class, interface, or enum expected
        var refresh_rate = 250;
        ^
Main.java:67: error: class, interface, or enum expected
        var pos = [[5,1],[4,1],[3,1],[2,1],[1,1]];
        ^
Main.java:68: error: class, interface, or enum expected
        var scoreboard = document.getElementById('scoreboard');
        ^
Main.java:68: error: unclosed character literal
        var scoreboard = document.getElementById('scoreboard');
                                                 ^
Main.java:68: error: unclosed character literal
        var scoreboard = document.getElementById('scoreboard');
                                                            ^
Main.java:69: error: class, interface, or enum expected
        var control = document.getElementById('controls');
        ^
Main.java:69: error: unclosed character literal
        var control = document.getElementById('controls');
                                              ^
Main.java:69: error: unclosed character literal
        var control = document.getElementById('controls');
                                                       ^
Main.java:70: error: class, interface, or enum expected
        var keys = {
        ^
Main.java:71: error: unclosed character literal
            37 : 'left',
                 ^
Main.java:71: error: unclosed character literal
            37 : 'left',
                      ^
Main.java:72: error: unclosed character literal
            38 : 'up',
                 ^
Main.java:72: error: unclosed character literal
            38 : 'up',
                    ^
Main.java:73: error: unclosed character literal
            39 : 'right',
                 ^
Main.java:73: error: unclosed character literal
            39 : 'right',
                       ^
Main.java:74: error: unclosed character literal
            40 : 'down'
                 ^
Main.java:74: error: illegal line end in character literal
            40 : 'down'
                      ^
Main.java:76: error: class, interface, or enum expected
        function adjust()
        ^
Main.java:81: error: class, interface, or enum expected
                canvas.height=window.innerHeight;
                ^
Main.java:82: error: class, interface, or enum expected
                control.style.display='none';
                ^
Main.java:82: error: unclosed character literal
                control.style.display='none';
                                      ^
Main.java:82: error: unclosed character literal
                control.style.display='none';
                                           ^
Main.java:87: error: class, interface, or enum expected
                canvas.height=600;
                ^
Main.java:88: error: class, interface, or enum expected
                control.style.display='inline';
                ^
Main.java:88: error: unclosed character literal
                control.style.display='inline';
                                      ^
Main.java:88: error: unclosed character literal
                control.style.display='inline';
                                             ^
Main.java:92: error: class, interface, or enum expected
        function todraw()
        ^
Main.java:94: error: class, interface, or enum expected
            for(var i = 0; i < pos.length; i++)
                           ^
Main.java:94: error: class, interface, or enum expected
            for(var i = 0; i < pos.length; i++)
                                           ^
Main.java:97: error: class, interface, or enum expected
            }
            ^
Main.java:102: error: class, interface, or enum expected
            switch(old_direction)
            ^
Main.java:104: error: unclosed character literal
                case 'right':
                     ^
Main.java:104: error: unclosed character literal
                case 'right':
                           ^
Main.java:106: error: class, interface, or enum expected
                    break;
                    ^
Main.java:107: error: class, interface, or enum expected
                case 'left':
                ^
Main.java:107: error: unclosed character literal
                case 'left':
                     ^
Main.java:107: error: unclosed character literal
                case 'left':
                          ^
Main.java:109: error: class, interface, or enum expected
                    break;
                    ^
Main.java:110: error: class, interface, or enum expected
                case 'up':
                ^
Main.java:110: error: unclosed character literal
                case 'up':
                     ^
Main.java:110: error: unclosed character literal
                case 'up':
                        ^
Main.java:112: error: class, interface, or enum expected
                    break;
                    ^
Main.java:113: error: class, interface, or enum expected
                case 'down':
                ^
Main.java:113: error: unclosed character literal
                case 'down':
                     ^
Main.java:113: error: unclosed character literal
                case 'down':
                          ^
Main.java:115: error: class, interface, or enum expected
                    break;    
                    ^
Main.java:116: error: class, interface, or enum expected
            }
            ^
Main.java:118: error: class, interface, or enum expected
            pos.pop();
            ^
Main.java:119: error: class, interface, or enum expected
        }
        ^
Main.java:123: error: class, interface, or enum expected
            switch(old_direction)
            ^
Main.java:125: error: unclosed character literal
                case 'right':
                     ^
Main.java:125: error: unclosed character literal
                case 'right':
                           ^
Main.java:127: error: class, interface, or enum expected
                    break;
                    ^
Main.java:128: error: class, interface, or enum expected
                case 'left':
                ^
Main.java:128: error: unclosed character literal
                case 'left':
                     ^
Main.java:128: error: unclosed character literal
                case 'left':
                          ^
Main.java:130: error: class, interface, or enum expected
                    break;
                    ^
Main.java:131: error: class, interface, or enum expected
                case 'up':
                ^
Main.java:131: error: unclosed character literal
                case 'up':
                     ^
Main.java:131: error: unclosed character literal
                case 'up':
                        ^
Main.java:133: error: class, interface, or enum expected
                    break;
                    ^
Main.java:134: error: class, interface, or enum expected
                case 'down':
                ^
100 errors
stdout
Standard output is empty