Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 09.09.2009, 20:31   #1
Hurrit
Мастер
 
Аватар для Hurrit
 
Регистрация: 27.01.2008
Адрес: Россия, СКФО, ЧР, Грозный
Сообщений: 1,144
Написано 578 полезных сообщений
(для 2,207 пользователей)
Сообщение Сравнение массивов

Как можно сравнивать массивы полностью? То есть, у меня есть два массива mapcheck( 4 , 8 ) и mapwin( 4 , 8 ), и мне надо узнать одинаковые ли они? Через цикл у меня не получилось, в справке про это я тоже ничего не нашел. Может кто знает, буду очень благодарен
(Offline)
 
Ответить с цитированием
Старый 09.09.2009, 20:46   #2
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Сравнение массивов

Через цикл у меня не получилось
Значит где-то ошибка. Не вижу причин не сравнить на равенство циклом. Исключение - дробные переменные, их на равенство сравнивать вообще никогда нельзя. (только с погрешностию)
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (09.09.2009)
Старый 09.09.2009, 22:38   #3
Hurrit
Мастер
 
Аватар для Hurrit
 
Регистрация: 27.01.2008
Адрес: Россия, СКФО, ЧР, Грозный
Сообщений: 1,144
Написано 578 полезных сообщений
(для 2,207 пользователей)
Ответ: Сравнение массивов

Через цикл у меня получается сравнивать только отдельные ячейки, а мне нужно проверить весь массив целиком, как будто это обычная переменная. Никак не могу догнать как это сделать
(Offline)
 
Ответить с цитированием
Старый 09.09.2009, 22:45   #4
MiXaeL
Бывалый
 
Аватар для MiXaeL
 
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений
(для 267 пользователей)
Ответ: Сравнение массивов

 
win=true
For i=0 to 3
For j=0 to 7
If mapcheck(i,j)<>mapwin(i,j) win=False : goto l
Next
Next
.l
За goto просьба не пинать - я не знаю как без лишних флагов сделать выход из двойного цикла. Конечно, тут не критичен сам выход, но если массивы большие, то может понадобиться для оптимизации.

Последний раз редактировалось MiXaeL, 09.09.2009 в 22:52.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Hurrit (09.09.2009)
Старый 09.09.2009, 23:12   #5
EvilChaotic
Мастер
 
Аватар для EvilChaotic
 
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений
(для 3,006 пользователей)
Ответ: Сравнение массивов

Сообщение от MiXaeL Посмотреть сообщение
 
win=true
For i=0 to 3
For j=0 to 7
If mapcheck(i,j)<>mapwin(i,j) win=False : goto l
Next
Next
.l
За goto просьба не пинать - я не знаю как без лишних флагов сделать выход из двойного цикла. Конечно, тут не критичен сам выход, но если массивы большие, то может понадобиться для оптимизации.
Exit....
Exit....У меня вродь работает = )
Ну или если в функции то можно Return = )
__________________

EvilChaotic About
(Offline)
 
Ответить с цитированием
Старый 09.09.2009, 23:49   #6
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Сравнение массивов

Сообщение от MiXaeL Посмотреть сообщение
 
win=true
For i=0 to 3
For j=0 to 7
If mapcheck(i,j)<>mapwin(i,j) win=False : goto l
Next
Next
.l
За goto просьба не пинать - я не знаю как без лишних флагов сделать выход из двойного цикла. Конечно, тут не критичен сам выход, но если массивы большие, то может понадобиться для оптимизации.
Не помню как там прерывается цикл в бейсике, либо break либо exit. Но суть что она должна принимать аргумент указывающий сколько циклов необходимо прервать (по умолчанию там 1).
По сабжу - что значит сравнить массив в твоем понимании? Можно либо сравнить элементы массива и тем самым определить, что их данные идентичны, либо сравнить адреса массивом. и тем самым определить что юзается один и тот же массив (или что массив не создан).
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (09.09.2009)
Старый 10.09.2009, 04:52   #7
Hurrit
Мастер
 
Аватар для Hurrit
 
Регистрация: 27.01.2008
Адрес: Россия, СКФО, ЧР, Грозный
Сообщений: 1,144
Написано 578 полезных сообщений
(для 2,207 пользователей)
Ответ: Сравнение массивов

Сравнивать в моем понимании, это узнать, все ли поля одинаковые в обоих массивах, если да, то переход на следующий уровень. Когда я проверял через цикл, игра сразу переходила на следующий уровень при первых же одинаковых переменных. Вот такая вот была проблема, сегодня попробую метод Михаила и отпишусь.
(Offline)
 
Ответить с цитированием
Старый 10.09.2009, 12:03   #8
Hurrit
Мастер
 
Аватар для Hurrit
 
Регистрация: 27.01.2008
Адрес: Россия, СКФО, ЧР, Грозный
Сообщений: 1,144
Написано 578 полезных сообщений
(для 2,207 пользователей)
Ответ: Сравнение массивов

Всё отлично работает. Всем спасибо за помощь
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lib_adata - Несколько динамических массивов minibt Библиотеки 3 27.05.2009 10:41
Blitz3d Vs Irrlicht - чесное сравнение ! jimon Болтовня 11 01.03.2006 19:55


Часовой пояс GMT +4, время: 23:50.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com