I miei suoceri hanno un laghetto nel loro cortile, pieno di koi. Non mi è passato per la testa finché non ho notato il seguente estratto dal mio codice.
',') & '_'
... Avevo le facce di pesce che mi guardavano dallo schermo ...
Il che mi ha dato un'ottima idea ...
La mia ricerca per voi, miei cari golfisti, è quella di creare un acquario ASCII a una linea, con le seguenti regole:
- La dimensione dell'acquario dal lato del serbatoio all'altro lato del serbatoio non deve essere inferiore a 60 caratteri e non superiore a 80 caratteri. I lati del serbatoio devono essere indicati usando il carattere pipe / bar (
|
). - I pesci devono essere in grado di "nuotare" da sinistra a destra tra i lati della vasca. Mentre gireranno, è necessaria una vista frontale per il passaggio da una direzione all'altra.
Il pesce deve essere simile al seguente:
}}< }} ',')
Pesce che nuota bene(',' {{ >{{
Pesce che nuota a sinistra}}('_'){{
Pesce di fronte
Quando un pesce gira per cambiare direzione (probabilità del 30%), deve iniziare da una direzione, rivolto verso la parte anteriore, quindi rivolto nell'altra direzione ... Assicurati che ci sia ampio spazio per la rotazione del pesce, cioè richiede sei spazi prima del bordo del serbatoio minimo ...
- A meno che un pesce non stia soffiando una bolla o cambiando direzione, continuerà nella direzione in cui è rivolto, se arriva entro sei spazi dal lato della vasca, cambierà direzione.
- Il pesce (rivolto a sinistra o a destra) può occasionalmente (10% di probabilità) smettere di soffiare bolle in successione (
.oO*
), quindi è necessario che il pesce abbia uno spazio disponibile accanto a loro affinché esista la bolla, quindi un pesce può nuota solo vicino ai lati, salva uno spazio. La bolla deve scomparire prima che il pesce possa andare avanti ...
Una serie di linee di esempio del comportamento del pesce, con -
caratteri che indicano gli spazi, poiché la funzione di visualizzazione del codice qui è un po 'severa ... Mi aspetto che questi trattini vengano sostituiti con spazi quando codifichi questo ...
Ogni riga qui può essere considerata un frame in time-lapse.
|-}}< }} ',')----------|
|--}}< }} ',')---------|
|---}}< }} ',')--------|
|----}}< }} ',')-------|
|-----}}< }} ',')------|
|-----}}< }} ',').-----|
|-----}}< }} ',')o-----|
|-----}}< }} ',')O-----|
|-----}}< }} ',')*-----|
|---------}}('_'){{----|
|-----------(',' {{ >{{|
|----------(',' {{ >{{-|
|---------(',' {{ >{{--|
|--------.(',' {{ >{{--|
|--------o(',' {{ >{{--|
|--------O(',' {{ >{{--|
|--------*(',' {{ >{{--|
|--------(',' {{ >{{---|
|-------(',' {{ >{{----|
|------(',' {{ >{{-----|
ecc. L'esempio sopra è, come ho detto, piccolo, ma hai l'idea generale ...
Il codice più corto vince ...
Mi aspetto l'output sulla stessa riga (se possibile), in caso contrario, visualizzare un frame dopo l'altro in successione va bene ... Che tu vada su una riga o su più righe dipende da te. Se stai facendo più righe, devono essere separate da una nuova riga.
Inoltre viene imposto un timer tra i frame, 2000ms. Questo è obbligatoria .
Vediamo cosa hai!