Switch matrix

Hello guys,

Here is something i wanted to do and im confused how to proceed.
Need your expert advice.

Requirement : Need a 32 Digital IO output which can source and sink approx 100mA per output. The output voltage can be in the range 5-18V. There are 3 states - a high state , a low state and an open state. All 32 DIOs can be either an output or an input- (source or sink) and i need to configure it from my Windows PC. The solution im looking for need to be within 150 USD or a max of 200USD. The rpice is excluding the power supply.

My thoughts:

Use an Arduino board and expand the digital out to 32 with shift register. Pass it through a darlington pair and then a analog crosspoint switch.
Challenges: a. Crosspoint switch which can handle 100mA per output.
b. Handle high, low and open with one switch.

Please advise.