PROG0592 - Rorschach test
The Rorschach test is a psychological test that was introduced in 1921 by the Swiss psychologist Hermann Rorschach. An inkblot is made on one side of a card, and then mirrored on the other half by folding the card. A subjects' perceptions of the inkblots are recorded and then analyzed using psychological interpretation, complex algorithms, or both. Some psychologists use this test to examine a person's personality characteristics and emotional functioning. It has been employed to detect underlying thought disorder, especially in cases where patients are reluctant to describe their thinking processes openly.
Assignment
Your task is to write a program that generates cards that can be used in the Rorschach test. This is done by transforming a given text pattern — representing an inkblot — into a pattern that is formed from the original pattern with a mirrored version of the pattern to its right. Click here to switch between a display of the left half of the pattern, and the complete pattern whose the right half is formed as the mirror image of the left half.
++...+..+++. ....++...... .+.#####+### ...#@#@#.#@# .+.#####.##@ ....+.+...## .....+...... ....+.....## ....+..+..#@ ......###.## +...++#@#.+. ....#####... ....#@#....+ ++..###.+... +.....+.....
In order to do so, you have to write a function rorschach that takes the location of a text file as its argument. This file must contain a text pattern, formatted as a sequence of lines that each contain the same number of characters. The function must also have a second optional parameter that takes the location of a second text file. The transformed version of the pattern that result after mirroring the given pattern must be written to the second file. In case the function is called without a second argument, the function must print the mirrored version of the pattern to output.
Example
In the following interactive session we assume that the text file pattern.txt is located in the current directory. Click on the name of the files to see the given pattern and the transformed pattern.
>>> rorschach('pattern.txt') ++...+..+++..+++..+...++ ....++............++.... .+.#####+######+#####.+. ...#@#@#.#@##@#.#@#@#... .+.#####.##@@##.#####.+. ....+.+...####...+.+.... .....+............+..... ....+.....####.....+.... ....+..+..#@@#..+..+.... ......###.####.###...... +...++#@#.+..+.#@#++...+ ....#####......#####.... ....#@#....++....#@#.... ++..###.+......+.###..++ +.....+..........+.....+ >>> rorschach('pattern.txt', 'rorschach.txt')
De rorschachtest is een psychologische test die in 1921 werd geïntroduceerd door de Zwitserse psycholoog Hermann Rorschach. Bij de test wordt gebruik gemaakt van tien platen die elk bekomen werden door een inktvlek aan te brengen op één bladhelft, en die gespiegeld over te brengen op de andere bladhelft door het blad dubbel te plooien. De test is gebaseerd op de menselijke neiging om interpretaties en gevoelens te projecteren op — in dit geval — inktvlekken. Daartoe proberen speciaal opgeleide psychologen aan de hand van de gegeven interpretaties de diepere persoonlijke karaktertrekken en impulsen van testpersonen te begrijpen.
Opgave
Je opdracht bestaat erin een programma te schrijven dat kan gebruikt worden om platen te maken voor de rorschachtest. Hiertoe moet het programma een gegeven tekstpatroon — dat een inktvlek voorstelt — omvormen tot een patroon dat bestaat uit het oorspronkelijke patroon met daarnaast de gespiegelde versie van het patroon. Klik hier om te schakelen tussen een weergave van de linkerhelft van het patroon, en het volledige patroon waarbij de rechterhelft gevormd wordt als spiegelbeeld van de linkerhelft.
++...+..+++. ....++...... .+.#####+### ...#@#@#.#@# .+.#####.##@ ....+.+...## .....+...... ....+.....## ....+..+..#@ ......###.## +...++#@#.+. ....#####... ....#@#....+ ++..###.+... +.....+.....
Voorbeeld
>>> rorschach('patroon.txt') ++...+..+++..+++..+...++ ....++............++.... .+.#####+######+#####.+. ...#@#@#.#@##@#.#@#@#... .+.#####.##@@##.#####.+. ....+.+...####...+.+.... .....+............+..... ....+.....####.....+.... ....+..+..#@@#..+..+.... ......###.####.###...... +...++#@#.+..+.#@#++...+ ....#####......#####.... ....#@#....++....#@#.... ++..###.+......+.###..++ +.....+..........+.....+ >>> rorschach('patroon.txt', 'rorschach.txt')
Added by: | Peter Dawyndt |
Date: | 2015-11-12 |
Time limit: | 10s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | PY_NBC |