Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 06.12.2018, 15:10
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

А почему не 9 ?
А как же тогда быть со 159й строкой?
Весьма похоже что игру сначала написали а затем в данный код внесли кучу мелких ошибок. это похоже на тест новичков к способности искать ошибки.
Проще взять код и весь переписать =).

Клинки мышкой и управляй клавишами =).
<canvas id="canvas" height=250 width=550></canvas>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script>
var c=document.getElementById("canvas"),d=c.getContext("2d"),e=c.width,f=c.height,h=e/10,l=f/10,m=0;function n(a,b){this.a=a;this.b=b}function p(a,b){return a.a===b.a&&a.b===b.b}function q(){this.c=[new n(7,5),new n(6,5),new n(5,5)];this.g=this.direction="right"}q.prototype.f=function(){for(var a=0;a<this.c.length;a++){var b=this.c[a],g=10*b.a;b=10*b.b;d.fillStyle="Blue";d.fillRect(g,b,10,10)}};
q.prototype.move=function(){var a=this.c[0],b;this.direction=this.g;"right"===this.direction?b=new n(a.a+1,a.b):"down"===this.direction?b=new n(a.a,a.b+1):"left"===this.direction?b=new n(a.a-1,a.b):"up"===this.direction&&(b=new n(a.a,a.b-1));a=0===b.b;var g=b.a===h-1,k=b.b===l-1;a=0===b.a||a||g||k;g=!1;for(k=0;k<this.c.length;k++)p(b,this.c)&&(g=!0);a||g?(clearInterval(r),d.font="60px Courier",d.fillStyle="Black",d.textAlign="center",d.textBaseline="middle",d.fillText("Game Over =(",e/2,f/2)):(this.c.unshift(b),
p(b,t.position)?(m++,t.move()):this.c.pop())};q.prototype.setDirection=function(a){"up"===this.direction&&"down"===a||"right"===this.direction&&"left"===a||"down"===this.direction&&"up"===a||"left"===this.direction&&"right"===a||(this.g=a)};function u(){this.position=new n(10,10)}u.prototype.f=function(){var a=this.position,b=10*a.a+5;a=10*a.b+5;d.fillStyle="LimeGreen";d.beginPath();d.arc(b,a,5,0,2*Math.PI,!1);d.fill()};
u.prototype.move=function(){this.position=new n(Math.floor(Math.random()*(h-2))+1,Math.floor(Math.random()*(l-2))+1)};var v=new q,t=new u,r=setInterval(function(){d.clearRect(0,0,e,f);d.font="20px Courier";d.fillStyle="Black";d.textAlign="left";d.i="top";d.fillText("Score:"+m,10,10);v.move();v.f();t.f();d.fillStyle="Gray";d.fillRect(0,0,e,10);d.fillRect(0,f-10,e,10);d.fillRect(0,0,10,f);d.fillRect(e-10,0,10,f)},100),w={37:"left",38:"up",39:"right",40:"down"};$("body").keydown(function(ev){var asz=w[ev.keyCode];if (asz) {v.setDirection(asz)};});
</script>

Последний раз редактировалось MallSerg, 06.12.2018 в 15:59.
Ответить с цитированием
  #12 (permalink)  
Старый 06.12.2018, 15:58
Новичок на форуме
Отправить личное сообщение для Мика Посмотреть профиль Найти все сообщения от Мика
 
Регистрация: 06.12.2018
Сообщений: 7

Не совсем понимаю что именно в 9 стр мешает 159 стр, подскажите пожалуйста.
Ответить с цитированием
  #13 (permalink)  
Старый 06.12.2018, 16:29
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

Сообщение от Мика Посмотреть сообщение
Не совсем понимаю что именно в 9 стр мешает 159 стр, подскажите пожалуйста.
в 9й строке объявляется и инициализируется переменная heightInBlock
а в 120 и 159 строках в выражении используется не инициализированная переменная heightInBlocks. Весьма похоже что имеется в виду одна и та же переменная.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с функцией .height() kos0760 Элементы интерфейса 2 24.05.2017 23:51
помогите разобраться с this uroboros7 jQuery 4 02.01.2015 00:56
Помогите разобраться с калькулятором Maksim858 Ваши сайты и скрипты 1 27.12.2014 13:23
Помогите пожалуйста разобраться Kupu4 Ваши сайты и скрипты 0 21.01.2010 10:44
Помогите разобраться с галереей IMAGIN yana_studio Общие вопросы Javascript 4 12.12.2009 17:24