2014-09-07 2 views
2

J'essaie de vérifier si le nombre sur le dessus de la pile est pair ou impair sans affecter ma pile parce que je l'utilise dans une fonction récursive. J'ai aussi essayé de doubler la pop mais ce code bousille encore la fonction.Comment puis-je vérifier même ou impair dans PostScript

dup 2 0 mod eq 
{ 0 0 0 setrgpcolor} 
{0.6 0.6 0.6 setrgpcolor}ifelse 
pop 

Répondre

3

L'ordre des arguments est incorrect. Un pas à la fois (en supposant que le nombre d'empilage est 123):

123 
dup 2 0 mod eq 

do dup: (!)

123 123 2 0 mod eq 

do mod sur 2 0

123 123 --undefined-- eq 

et eq est trop peu, trop tard ...

Échangez les 2 opérandes pour obtenir le bon résultat:

dup 2 mod 0 eq 
{ .. number is even ..} 
{ .. number is odd ..} ifelse 

(Note: Est-ce setrgpcolor une faute de frappe, ou est-il vraiment un modèle de couleur nommé ainsi?)

+0

Un grand merci! Je ai gros doigts celui-là. Je veux dire setrgbcolor. – delgeezee

Questions connexes