2014-11-01 89 views
0

我想打一個小動畫在一個控制檯應用程序,並要做到這一點,我創建了一個ASCII藝術:打印許多多線串

        ______ 
         ,.:b-'::'  ,`::-/,._ 
        _.\\,,-/` /| |  ,' .`| ,_: ,. 
       ` -_,'[ ._-|/,'Y  ` `/-/,-.:`. 
      ,'/[(o _.. _,".`':| ___ ::/|.`][,'/,,/,'`. 
      `:-\-. `','\`,-' [:_,.....'__ ^..,|-.'- ,,\ :. 
     ,'-\-.` _ `[.- --'    '-..`'-[''\ .L-",`. 
     ,L< ':],, ,` ,-      '- , .''Y"-'.-'` 
    _'_,::''/-]._,'  _ ..  .._   `.`]'. -,-:,^. 
    _'/,[``.-'/'-  _ :].-''`'''''--.[   -. .|/:L:| \ 
    '[' ]>] ' /'  _,'    `- .  ``\'` ,u[<L' 
    /,`. [-'/  ,`     ,. `.  `.`,,``..| | 
    P.P.`[o'),  ,''`__-.     ,' /'\,  .\'(; .:] 
/`/ ` .'/XXX `,' . -.    ,' ,' `.  \.> :,` 
| \.u[/\'|X X/\'  'v ^,   ,' ,'  \  \ `^/:.-, | 
.:-<.. [||/ XXX '/   `\ `\  ,' /'   .\  || \]::`.' 
| |::>,-b|  ||   ^. '---' ,'   Y|  || [./.'/\ 
| /_,[| ||  ||    | ,./   ||  || |> --|| 
Y=]L__`=[|  ||    | ,- '    ||  | ::_,==: 
| |i .| |'.  \   /' ,..._ `'   ||  || /L. , 
|_]L,.'-] |  [\   ,- ,'  ,' '.   ||  'P..L,/| 
v...-L\ \\  `/.  ,' ,'   `. -_ / /|'Y\-.`::' 
\ -:,'\..,  \`\ _,' /'    ^,  /,  .[-` ,' 
)_ ' '.\  `[`, /'     `.'\,''  /`..:- | 
    <`...,`./ `  `[.=     `=/  ,_/-/.` '' 
    \`[,-'.v'\`.  ".`._    _.:'   '-' '.>/ ' 
     [,_,L!`, [`  ' `-...______.,-'   v /'''|]:.' 
     ``\ //'. .`.`.   ' --- -- ''   ',-|' ' b'' 
     `.Yv-]-, ',-.'-       ,-'''\ [,.-,' 
     `['./,L|'`.],.. .__   _ ,.',. .[ ]'v'] 
      `v-/| <." ..`\-.. ::_ |: ,.-\\',.\'- ' '',' 
      `.:`[/ /' > .:',.||::_|/--'. ``,\ '/: ' 
       -',:.\`[| .'/,[/ L',] ^/``,] ``-` 
        -\|, -,: |`-|||/ |``.,..\`_,-' 
         ''--.' ==='|::::\'-'' 

(是的,這是一個輪盤賭)

我創建了與不同位置的球一樣的ascii藝術(就像輪盤上的十字)。

我的問題是,我覺得非常棘手:我想打印輪盤到控制檯,每秒4次(也許更多,不完全知道)在相同的地方,以便它看起來像一個gif :)。 我沒有問題加載文件(並將它們轉換爲字符串),但我沒有找到一種方法來重寫在相同的地方(「\ r」不適用於多行文本)。

如果我可以不使用任何類似curses的庫(儘管我是Python中的ncurses的忠實粉絲!),那將會很棒。

+0

我不知道答案,但祝你好運,聽起來很有趣 – Dici 2014-11-01 13:43:37

+0

哈哈哈謝謝,這很好! – 2014-11-01 16:06:01

+0

所以我做了一個草稿版本,所以如果你想看一下:https://github.com/lolobosse/CurseRoulette(在OSX和Linux上工作,沒有在Windows上測試) – 2014-11-12 11:01:12

回答

2

我認爲詛咒或類似的東西將是必要的。

正如我記得的那樣(詛咒很久以前),詛咒有兩點 - 不同的終端,以及慢速終端連接的效率。您將面臨兩個問題,這取決於終端連接的方式以及最終希望重新繪製屏幕的頻率。

Curses分析了所需輸出以確定最有效的方式來繪製東西 - 它應該將光標定位三次並分別繪製東西,還是輸出多行並只繪製一次?定位光標所需的字符序列是什麼?

祝你好運,無論如何。

+0

好吧,謝謝, t我期待的答案,但如果這是唯一的方式...並且它可以與ASCII碼一起工作嗎? – 2014-11-01 16:05:41

+0

不確定你的意思 - 你的意思是,你可以用ASCII編碼一個字符串嗎?您可以輸出一個字符串作爲ASCII流,查找流的編碼細節。您不能將內部字符串存儲爲Java中的ASCII,但是我不知道您需要的任何情況。 – arcy 2014-11-01 19:03:58