Warsztat - Programowanie gier

Lipiec 30, 2010, 17:30:11 *
Witamy, Gość. Zaloguj się, lub zarejestruj proszę.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności: Warsztat, Regulamin forum, #warsztat, Wiki, FAQ, NoPaste, Mapa
 
   Strona główna   Pomoc Szukaj Zaloguj się Rejestracja  
Strony: 1 2 [3]
  Drukuj  
Autor Wątek: Wykonywanie warunków logicznych.  (Przeczytany 1667 razy)
Dab
Member2000
*******

wiadomości: 2999


wiadomości: 2963


Zobacz profil WWW
« Odpowiedz #30 : Luty 19, 2010, 18:53:00 »

Ale -l- już da radę.
Zapisane

świrus
SuperHero Member
******

wiadomości: 1476


Karma: 10 [+]


Zobacz profil
« Odpowiedz #31 : Luty 19, 2010, 19:03:26 »

Za to operator da radę zrobić "operator "-|-", choć nie jestem na 100% pewien. Wink
Nie da rady Undecided Kompilator mówi, że to syntax error, więc nie przekonamy go sprytnym przeciążeniem operatorów (nawet z pomocą (a fe!) makrodefinicji - to są trzy symbole, nie zdefiniuje się takiego makra Undecided).
Gdyby C++ był normalny to by się...
Kod
if(LineA and LineB is Perpendicular)
{...}
Co by się przetłumaczyło na:
Kod
if(LineA.and(LineB).is(Perpendicular))
{...}

Chociaż... pi razy oko, bez edytora napisane:
Kod
#define is ==
namespace Math::Lines
{
enum Correlation
{
Parallel,
Perpendicular
};
 
class Line
{
public:
float A,B;
Correlation operator&&(const Line);
};
}
 
using namespace Math::Lines;
if((A and B) is Perpendicular)
{...};
« Ostatnia zmiana: Luty 19, 2010, 19:05:56 wysłane przez rm-f » Zapisane

Cytuj
Restore "Prezydent" from backup copy: FAILED
Catchable fatal error: Argument 1 passed to set_first_lady() must be an instance of Wife, Cat given
rm-f/świrus Smiley
Dab
Member2000
*******

wiadomości: 2999


wiadomości: 2963


Zobacz profil WWW
« Odpowiedz #32 : Luty 19, 2010, 19:07:34 »

Cytuj
if(LineA and LineB is Perpendicular)
Język Shakespeare powinien cię zadowolić.
Zapisane

JCoder
Sr. Member
****

wiadomości: 277


Zobacz profil
« Odpowiedz #33 : Luty 20, 2010, 17:29:19 »

W Scali akurat to też tak napiszesz. Tongue
A operator -|- zdefiniujesz np. tak, bez kombinowania:

Kod:
def -|- (first: Line, second: Line): Boolean = { ... }

Ale Shakespeare naprawdę wymiata i chyba nawet LISP ze swoimi makrami może się schować. Smiley
« Ostatnia zmiana: Luty 20, 2010, 17:37:50 wysłane przez JCoder » Zapisane

Being really good at C++ is like being really good at using rocks to sharpen sticks. -- Thant Tessman
Kos
Member2000
*******

wiadomości: 3383



Zobacz profil
« Odpowiedz #34 : Luty 20, 2010, 17:35:32 »

Albo w Haskellu, a co mi tam Smiley:
Kod:
(-|-) :: Line -> Line -> Bool
(-|-) line1 line2 = ...

Aż sobie chyba komplikator ściągnę, bo już zapomniałem jak h. mi się podobał Smiley
Zapisane

Eclipse!
Strony: 1 2 [3]
  Drukuj  
 
Skocz do:  

Hosting: Polska Strefa - Ogłoszenia
Powered by SMF 1.1.7 | SMF © 2006, Simple Machines LLC