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

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

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

Ответ
 
Опции темы
Старый 08.12.2009, 17:15   #1
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Интересно и вроде недокументровано

2Джокер - не читай
Сейчас натолкнулся на то, что операторы сравнения перегружены для строк. Причём не как сравнение тайпкаста контента к числу, а как облегчённое подобие функций типа strcmp из С++.
Пример:
Local bool%=Str("70")<Str("600")
Print bool
WaitKey()
End
Может показаться, что из-за низкой типизации б3д сравнит 70 и 600 и вернёт истину - дудки. Строка "70" при сортировке должна идти после "600" и потому "больше" - результат равен лжи.
Ещё пример:
Local bool%=Str("7.0")<Str("6.00")
Print bool
WaitKey()
End
результат - 0
Local bool%=Str("100")<Str("12")
Print bool
WaitKey()
End
результат - 1

Напрягает, что в хелпе ничего не нашёл.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 7 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
DeadElf (08.12.2009), Dzirt (09.12.2009), Mhyhr (08.12.2009), Randomize (08.12.2009), Reizel (10.12.2009), SBJoker (08.12.2009), St.AnGer (08.12.2009)
Старый 08.12.2009, 17:29   #2
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Интересно и вроде недокументровано

Сообщение от impersonalis Посмотреть сообщение
2Джокер - не читай
Опять дискриминация...
__________________
(Offline)
 
Ответить с цитированием
Эти 10 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
ABTOMAT (08.12.2009), Android (08.12.2009), Arles (08.12.2009), baton4ik (15.04.2010), DeadElf (08.12.2009), impersonalis (08.12.2009), moka (08.12.2009), Nex (16.12.2009), Phantom (09.12.2009), Tadeus (08.12.2009)
Старый 08.12.2009, 18:07   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Интересно и вроде недокументровано


Да потому что суть алгорима такова будет (я тебя знаю ):
1) прочитать начало - напсиать что Импер не догадался и только лошара может не знать о перегружееном операторе
2) отослать к справочникам по Си (хотя Импер какбе намекнул про strcmp)
3) разжечь холивар на тему "блитц-ацтой"
вараиант_исключение (сработает если ни один из трёх невозможно реализовать, например после выхода из тела поста по директиве "джокер не читай") - поофтопить.

Итого:
джокер на коне (уже видим ряд спс к его посту)
импер в говоне (ещё увидим тrавлю)
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
L.D.M.T. (10.12.2009), Nex (16.12.2009), Жека (09.12.2009)
Старый 08.12.2009, 19:39   #4
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Интересно и вроде недокументровано

Чего это ты Импер?
Вроди у вас конфликтов в открытую на форуме не наблюдалось..
(Offline)
 
Ответить с цитированием
Старый 08.12.2009, 19:55   #5
Dzirt
Элита
 
Аватар для Dzirt
 
Регистрация: 16.01.2008
Сообщений: 1,800
Написано 958 полезных сообщений
(для 3,833 пользователей)
Ответ: Интересно и вроде недокументровано

MoKa,а где здесь конфликт?...лично я воспринимаю пост Импа как дружественную шютку,не более....
(Offline)
 
Ответить с цитированием
Эти 13 пользователя(ей) сказали Спасибо Dzirt за это полезное сообщение:
ABTOMAT (08.12.2009), Android (08.12.2009), Arles (08.12.2009), baton4ik (15.04.2010), BlackDragon (08.12.2009), DeadElf (08.12.2009), Fatalix3d (10.12.2009), h1dd3n (08.12.2009), impersonalis (08.12.2009), is.SarCasm (16.12.2009), Nex (16.12.2009), Phantom (09.12.2009), SBJoker (08.12.2009)
Старый 08.12.2009, 21:24   #6
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Интересно и вроде недокументровано

Он уже просто избегает, как побитый енот...
(Offline)
 
Ответить с цитированием
Старый 08.12.2009, 21:40   #7
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Интересно и вроде недокументровано

Сообщение от MoKa Посмотреть сообщение
Он уже просто избегает, как побитый енот...
эмм?
Спасибо, канеш, что внимательно всё прочитали и оценили по достоинству. до свиданья

Смотрю со времён основания мои попытки кому-то что-то донести из того что я знаю заканчивались плачевно. Ну ихренли корчить из себя.
Тоже стану троллем-шутом. Готовимся к первым рецензиям.
Доканало, блджад.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 08.12.2009, 22:59   #8
DeadElf
ПроЭктировщик
 
Регистрация: 22.07.2009
Адрес: Московский Метрополитен)))
Сообщений: 100
Написано 25 полезных сообщений
(для 31 пользователей)
Ответ: Интересно и вроде недокументровано

давайте вернёмся к теме, а?))

короче, как я понял по вот этому коду:
Local bool%=Str("70")<Str("600")
Print bool
WaitKey()
End
ты хочешь проверить, будет ли 70 меньше чем 600. блиц выводит, что нет.
почему? смотрим хелп по команде str:

Используйте эту команду, чтобы преобразовать числовое значение в строковое значению для использования с командами обработки строк. Blitz запросто печатает числовые значения так же, как и строчные, но если Вы захотите использовать такие функции, как LEFT$ или подобные, Вы должны будете преобразовать вашу числовую переменную в строчную. Заметьте: в процессе преобразования все 6 десятичных цифр будут представлены в виде числа с плавающей запятой . 

Если Вы пожелаете выполнить обратное действие - преобразовать строку в число, то не найдете в Blitz-е никакой команды, эквивалентной команде Val в другтх версиях Бейсика. Вместо этого просто присвойте строковую переменную числовой переменной, и Blitz сам преобразует её.
проще говоря, он преобразует число 70 в "70". а ты задаешь ему сразу "70". понятное дело, заковыка... блиц путается и сравнивает значения посимвольно: "7">"6"? да, выходим из проверки. получаем 0. если же сделать int("70") и int("600"), то получим, что всё в порядке. если же поставить Str(70) и Str(600), то опять получим 0, потому как он проверяет посимвольно. Никаких проблем и ошибок нет.
(Offline)
 
Ответить с цитированием
Старый 08.12.2009, 23:03   #9
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Интересно и вроде недокументровано

блджад, с Джокером не вышло - нашёлся ещё один, читающий по диагонали. Спасибо, комрад)
ИСХ никто не хочет называться свои настоящим именем - Кэп О.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Randomize (08.12.2009)
Старый 08.12.2009, 23:33   #10
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Интересно и вроде недокументровано

Смысл темы в том что блитц может сказать какая строка больше другой простым сравнением. По правилам сортировки, а не по длине.
Искринне ваш, К.О.
__________________
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
ABTOMAT (08.12.2009), Harter (09.12.2009), impersonalis (08.12.2009), is.SarCasm (16.12.2009), Randomize (09.12.2009)
Старый 09.12.2009, 00:01   #11
BlackOut
Кодер "win" ЭВМ
 
Аватар для BlackOut
 
Регистрация: 10.11.2009
Адрес: ЖуковSKY
Сообщений: 194
Написано 77 полезных сообщений
(для 155 пользователей)
Ответ: Интересно и вроде недокументровано

не поверите, но спасибо за тему, слэм в топку!
__________________
Жизнь игра, задумка дурацкая но графика ...
(Offline)
 
Ответить с цитированием
Старый 09.12.2009, 20:30   #12
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Интересно и вроде недокументровано

Возможно этот пример более зрелищен:
Local X$,Y%
X=600
Y=70
Local bool%=X<Y
If bool
	Print "X<Y"
EndIf
WaitKey()
End
Реузльтат - X<Y
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
Arton (10.12.2009), Dzirt (09.12.2009), Randomize (09.12.2009)
Старый 09.12.2009, 21:48   #13
Dzirt
Элита
 
Аватар для Dzirt
 
Регистрация: 16.01.2008
Сообщений: 1,800
Написано 958 полезных сообщений
(для 3,833 пользователей)
Ответ: Интересно и вроде недокументровано

занятно...хотя из первого поста итак все стало ясно) ...ну я так понимаю не всем.Вообще молодцом Имп,учтем!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (09.12.2009)
Старый 10.12.2009, 02:59   #14
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Интересно и вроде недокументровано

Сообщение от impersonalis Посмотреть сообщение
Возможно этот пример более зрелищен:
Local X$,Y%
X=600
Y=70
Local bool%=X<Y
If bool
	Print "X<Y"
EndIf
WaitKey()
End
Реузльтат - X<Y
А сколько bool будет таки?
Print "X<Y "+bool
что-то смущает, я вообще никогда так в блице не присваивал сравнения к переменным, только сперва в HLSL, а затем и в C++ такое увидел..
(Offline)
 
Ответить с цитированием
Старый 10.12.2009, 03:53   #15
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Интересно и вроде недокументровано

Local X$,Y%
X=600
Y=70
If X<Y
Print "X<Y"
EndIf
WaitKey()
End
результат тоже.

Сударь, как по вашему работает условный оператор?
Он всего-лишь делает или нет джамп принимая на вход (ТОЛЬКО!) истину или ложь. В свою очередь операторы сравнения возвращают 1 при истинности неравенства и 0 в обратном случае.
Так что HLSL и С++ в этом плане - всего-лишь инерция парадигмы. Даже языки различных ассемблеров как правило лишь сохраняют флаг результата сравнения, а подобие if его обрабатывает.
Собсвтенно, никаких рациональных мыслей "как реализовать if иначе" у меня нет (один говнокод).

Вот ещё в таком случае пример (выходит тоже не очень доументированной возможности):
Function GetMax%(a%,b%)
Return (a>b)*a+(b>a)*b+(a=b)*a
End Function

Local i%
For i=1 To 10
Local q=Rand(1,10)
Local w=Rand(1,10)
DebugLog "["+q+";"+w+"] -> "+GetMax(q,w)
Next
WaitKey()
End
результат для дефолтной инициализирующей последовательности ГПСЧ:
[4;8] -> 8
[4;5] -> 5
[6;8] -> 8
[6;2] -> 6
[1;7] -> 7
[2;5] -> 5
[3;3] -> 3
[7;7] -> 7
[1;10] -> 10
[5;6] -> 6
Так что, борец за права енотов, спуститесь с метафор на землю - нам ещё нужны хорошие дизайнеры.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что-то, вроде, вышло... avel Стихотворения 24 27.06.2009 22:27
Вроде как стихи НУБ Стихотворения 21 13.09.2007 23:01
Вроде баг johnk Баги 1 16.06.2007 16:06
Вроде баг... johnk Баги 10 22.04.2007 13:18
Интересно Kaluga Болтовня 3 13.09.2006 15:22


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


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