Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
JavaScript Передать ассоциативный массив из JS в PHP используя AJAX https://www.cyberforum.ru/ javascript/ thread1054073.html
Ребят, сделайте подарок перед Новым годом, помогите разобраться! Имеется код: function Save() { if(document.getElementById('SelectPic').value=='0') { var n = window.prompt("Enter image name:"); if(n=='')alert("Empty name was given, image is not saved!");
наращивать значени логика JavaScript
помогите проработать логику пожалуйста при клике мы получаем координаты X = 0, и при движении мыши двигаемся относительно оси координат лево - X, право + X. А как мне сделать, чтобы вычислить общую площадь движения. В прикладке схема движения
JavaScript Смена картинки https://www.cyberforum.ru/ javascript/ thread1054001.html
не могу разобраться почему выдает ошибку "Uncaught ReferenceError: foo is not defined" код: <script type="text/javascript"> var pics = new Array( '1.jpg', '2.jpg', '3.jpg', ); var now = 1;
JavaScript Получить метки на карте Google Как получить метки для последующего переноса к примеру на yandex maps, с этой странице http://a-a-ah.ru/city/moscow/map ps Не знал в какой раздел на форуме написать этот вопрос. https://www.cyberforum.ru/ javascript/ thread1053926.html
JavaScript Как собрать XML на JavaScript?
использую var xmlDoc = new ActiveXObject("Msxml2.DOMDocument"); , но отрабатывает только в IE, а нужно чтобы работало во всех браузерах. Спасибо
JavaScript ie7 iframe https://www.cyberforum.ru/ javascript/ thread1053549.html
Здравствуйте, написал функцию создания фрейма и подгрузки в него содержимого данной страницы. во всех браузерах все гуд, а вот в ie7 тупо пустое окошко и ничего ен грузит в него... помогите доработать функцию... /* функция создания фрейма */ obj.createIFrame = function(_task, _target) { /* проверка на существование фрейма */ if...
JavaScript Нужно разобраться в javascript коде https://www.cyberforum.ru/ javascript/ thread1053463.html
Здравствуйте. Кто-то может написать как работает этот код(если можно, то пошаговые комментарии напротив кода). Заранее спасибо.to_px = function (x) { return ''.concat(Math.round(x), 'px'); } g_resize = function() { pgal.resize(); } var pgal = { O : , N : 0, S : 0, img : 0, span : 0, xm : 0, ym : 0, nx : 0, ny : 0, nw : 0, nh : 0, cx : 0, cy : 0, zoom : 1, x : 0, y : 0, z :...
Не работает меню JavaScript
имеем вот такое меню http://mb.deeppro.ru/tablica/ Слева там вкладки серые. В отдельном html документе все нормально, но вставил в движок magento вкладки не работают. Сам с java очень плохо. Помогите кто может...
JavaScript Дробная часть числа Подскажите плз, как можно получить дробную часть числа? Просто только начал изучать проблему, почти ноль знаний по теме :( Нужен для Adobe A X, из поля формы взять дробную часть от значения и вывести в другое поле. Вроде пытался пару вещей сделать, не работает :( Подскажите плз :) https://www.cyberforum.ru/ javascript/ thread1053158.html JavaScript Knockoutjs https://www.cyberforum.ru/ javascript/ thread1053009.html
Привет всем, кто знаком с knockout! Прошу Вашей помощи. Собственно начал разбираться с данным фреймворком, пишу приложение-расписание занятий. Излагаю суть вопроса: Есть такой вот объект: function Lesson (time){ self=this; self.name = 'Пусто'; self.teacher = 'Вася'; self.room = ''; self.time = time; }
URL для расширения JavaScript
Доброго времени суток,пытаюсь написать расширение для google chrome которое по нажатию на иконку выдает url адрес открытой страницы.Не могу понять как получить адрес открой страницы.Когда использую var a= window.location.href; то получаю адрес маленького окошка которое открывается при нажатии,т.е. chrome-extension://ajecdmhbpbdjhjjpnfbbegppoeepfeef/popup.htmlКакой командой я могу получить ссылку...
JavaScript Не получается рисовать изображения под углом Есть изображение загружаемое в canvas, которое надо рисовать под заданным углом. Сколько не пытался так и не получилось сделать. Гугление приводит к тому, что можно наклонять сам canvas. Но в том то и дело что в нём есть и другие изображения, которые не должны наклоняться. Пытался создавать два контекста на один canvas и крутить только один, но крутятся оба. Как это реализовать? https://www.cyberforum.ru/ javascript/ thread1052840.html
1 / 1 / 0
Регистрация: 27.03.2012
Сообщений: 50
0

Ханойские башни - JavaScript - Ответ 5547649

23.12.2013, 22:47. Показов 4252. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно написать на javascripte игру "Ханойские башни". Есть примерный код, но при открытии страницы ничего не отображается. Я думаю проблема в том, что картинки не подключены, если в этом проблема, то как подключить
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
<html>
<head>  
<title>Tower of Hanoi</title> 
</head>
<BODY>
 
<SCRIPT LANGUAGE="JavaScript">
 
function preload() {
this.length = preload.arguments.length;
for (var i = 0; i < this.length; i++) {
this[i] = new Image();
this[i].src = imgdir + preload.arguments[i];
   }
}
 
var pics = new preload("disk1.gif","disk2.gif",
"disk3.gif","disk4.gif","disk5.gif","disk6.gif",
"disk7.gif","pole.gif", "disk1h.gif","disk2h.gif",
"disk3h.gif","disk4h.gif","disk5h.gif","disk6h.gif",
"disk7h.gif");
 
var selectedr = null;
var selectedc = null;
var maxposts = 3;
var maxdisks = 7;
var all_posts = 3;
var startpost = 1;
var endpost = (startpost-1 < 0 ? maxposts-1 : startpost-1);
var disks = 7;
var imgwidth = 160;
var imgheight = 14;
var game_is_over = false;
var show_messages = false;
var board = new Array(maxposts);
board[0] = new Array(maxdisks + 1);
board[1] = new Array(maxdisks + 1);
board[2] = new Array(maxdisks + 1);
 
function initboard(startpost, disks) {
var len = board[0].length;
selectedc = null;
selectedr = null;
game_is_over = false;
endpost = (startpost-1 < 0 ? maxposts-1 : startpost-1);
 
for (i = 0; i < len; i++) {
board[0][i] = 0;
board[1][i] = 0;
board[2][i] = 0;
}
for (i = len-disks, j = 0; i < len; i++, j++) {
board[startpost][i] = len - j - 1;
   }
}
 
function drawall() {
for (j=0; j<board.length; j++) {
for (i=0; i<board[j].length; i++) {
draw(j,i, getName( board[j][i]));
   }
}
message("You may begin! Select a piece to move.");
}
 
function restart(start) {
startpost = start;
disks = document.forms[0].disc.options[document.forms[0].disc.selectedIndex].text;
initboard(startpost,disks);
drawall();
theAnim = new Animation();
}
initboard(startpost, disks);
 
function getName( num ) {
if (num == 0) return "post.gif";
return "disk" + num + ".gif";
}
 
function message(str, force) {
if (force || !game_is_over && !show_messages)
document.disp.message.value = str;
}
 
function messageadd(str) {
if (!game_is_over)
document.disp.message.value = document.disp.message.value + "\n" + str;
}
 
function isempty(num) {
for (i = 0; i < board[num].length; i++) {
if ( board[num][i] != 0) return false;
}
return true;
}
 
function topmost(num) {
for (i = 0; i < board[num].length; i++) {
if (board[num][i] != 0) return  i;
}
return -1; 
}
 
function ispost(i,j) {
return (board[j][i] == 0);
}
 
function istopdisk(i,j) {
return (board[j][i-1] == 0);
}
 
function drawboard() {
document.writeln("<h2>The Towers of Hanoi</h2><p>");
document.writeln("<table cellspacing=0 cellpadding=0 border=0>");
document.write("<tr>");
for (j = 0; j < board.length; j++) {
document.write("<td>");
document.write("<a href='javascript:clicked("+0+","+j+")'><img src='" + imgdir + "posttop.gif' border=0></a><br>");
for (i=0; i< board[0].length; i++) {
document.write("<a href='javascript:clicked("+i+","+j+")'>");
document.write("<img src='" + imgdir + getName(board[j][i]) + "' name='pos"+ j + i + "' border=0><br>");
document.write("</a>");
}
document.writeln("</td>");
}
document.write("</tr></table>");
document.write("<form name='disp'><textarea name='message' wrap=virtual rows=2 cols=40></textarea><br>" + 
"Disks: <select name=\"disc\" size=1><option>3<option>4<option>5<option>6<option selected>7</select><input "
+"type=button value=\"Start the Game Over\" onClick=\"restart(startpost);\"><input "
+"type=button value=\"Solve It!\" onClick=\"restart(startpost);setTimeout('hanoi(disks,startpost,endpost)',300)\"></form>");
}
 
function draw(x,y,name) {
document.images["pos"+x+""+y].src = imgdir + name;
}
 
function animate(x,y,name) {
theAnim.addFrame( "pos"+x+""+y, imgdir + name);
}
 
function clicked(i,j) {
document.forms[0].message.focus(); // get rid of annoying outline in MSIE
document.forms[0].message.blur();
 
if (game_is_over)  restart(startpost = endpost);
if (!isselection() && ispost(i,j)) { message("Select a piece to move."); return; }
if (!ispost(i,j)) { toggle(j); return; };
if (ispost(i,j) && selectedc == j) { message("Move the piece to a different post."); return; }
if (!legalmove(j)) { message("That is not a legal move. Try again."); return; }
move(j); return;
}
 
function legalmove(j) {
if (isempty(j)) return true;
return (board[j][topmost(j)] < board[selectedc][selectedr]);
}
 
function isselection() {
return selectedc != null;
}
 
function toggle( num ) {
var toppos = topmost(num);
 
if (selectedc == num && selectedr == toppos) {
selectedc = null; selectedr = null;
animate(num,toppos,"disk" + board[num][toppos] + ".gif");
message("Select a piece to move.");
return;
}
if (isselection()) {
animate(selectedc,selectedr,"disk" + board[selectedc][selectedr] + ".gif");
}
selectedc = num; selectedr = toppos;
animate(num,toppos,"disk" + board[num][toppos] + "h.gif");
message("Click on the post to which you want to move the disk.");
}
 
function move( num ) {
var toppos = (!isempty(num) ? topmost(num) : board[num].length);
board[num][toppos-1] = board[selectedc][selectedr];
board[selectedc][selectedr] = 0;
animate(selectedc,selectedr,"post.gif");
animate(num,toppos-1,"disk" + board[num][toppos-1] + ".gif");
selectedc = null; selectedr = null;
message("Select a piece to move.");
game_over();
}
 
function hanoi(no_of_disks, start_post, goal_post) {
if (no_of_disks > 0) {
var free_post = all_posts - start_post - goal_post;
hanoi (no_of_disks - 1, start_post, free_post);
show_messages = true;
toggle(start_post);
move(goal_post);
show_messages = false;
hanoi (no_of_disks - 1 , free_post, goal_post);
game_over(true);
   }
}
 
function game_over(forceMsg) { 
var filledpost = null;
var val = 0;
for (k = 0; k < board.length; k++)  { 
val += ( isempty(k) ? 1 : 0 ); 
if (!isempty(k)) filledpost = k;
}
 
if (val == 2 && isempty(startpost)) {
message("You won!", forceMsg);
game_is_over = true;
endpost = filledpost;
}
return game_is_over;
}
 
 
 
function Animation() {
this.imageNum = new Array(); 
this.imageSrc = new Array();  
this.frameIndex = 0;          
this.alreadyPlaying = false;  
 
this.getFrameCount = getframecount;   
this.moreFrames = moreframes;        
this.addFrame = addframe;             
this.drawNextFrame = drawnextframe;   
this.startAnimation = startanimation; 
}
 
function getframecount() {  return this.imageNum.length; }
function moreframes() {  return this.frameIndex < this.getFrameCount(); }
function startanimation() { 
if (!this.alreadyPlaying) {
theAnim.alreadyPlaying = true;
setTimeout('theAnim.drawNextFrame()',5); 
   }
}
 
function addframe(num, src) {
var theIndex = theAnim.imageNum.length;
theAnim.imageSrc[theIndex] = src;
theAnim.imageNum[theIndex] = num;
theAnim.startAnimation();
}
 
function drawnextframe() {
if (theAnim.moreFrames()) {
document.images[ theAnim.imageNum[theAnim.frameIndex] ].src = theAnim.imageSrc[theAnim.frameIndex];
theAnim.frameIndex++;
setTimeout('theAnim.drawNextFrame()', 30);
} else {
theAnim.alreadyPlaying = false;
   }
}
 
drawboard();
var theAnim = new Animation();
message("You may begin! Select a piece to move.");
document.disp.message.value = "";
 
</script>
</body>
</html>


Вернуться к обсуждению:
Ханойские башни JavaScript
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2013, 22:47
Готовые ответы и решения:

Ханойские Башни
Необходимо на Паскале написать программу которая будет реализовывать игру ханойские башни. То...

Ханойские башни
Ханойские башни. Алгоритм я приблизительно понимаю, но программу написать не могу... Мне не нужно...

Ханойские башни
Не могу понять где ошибка,проверяла на 3 монетках ,разного достоинства, наложенных друг на друга,на...

Ханойские башни
Стандартная задача с тремя стержнями (простое рекурсивное решение взято с википедии) плюс...

0
23.12.2013, 22:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2013, 22:47
Помогаю со студенческими работами здесь

Ханойские башни
Господа, пытаюсь сделать рекурсию на примере ханойских башен, но никак не могу закончить код. Может...

Ханойские башни
Ребят, подскажите, как реализовать их во флэше? На моём опыте был только паскаль. Никогда с флешем...

Ханойские башни
Помогите пожалуйста привести код на Delphi 7. //n – количество дисков //a, b, c – номера...

Ханойские башни
Просидел над алгоритмом решения этих хайнойских башенок около 6 часов, так и не понял,как его...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru