回文章列表
作者brother21913.bbs@bbs.ntue.edu.tw (資料轉移中~~) 看板: itoc
標題Re: [功能]即時樂
時間芝山情緣 (2008/07/30 Wed 22:45:46)
※ 引述《hpo14.bbs@bbs.csie.ntust.edu.tw (雨)》之銘言:
> 沒有什麼動,只是把一些簡單的 if…else…
> 換成三元判斷,來縮減行數而已 (我大概只會這樣 QQ)
> 也順便把 do_move() 移到 draw_item() 的後面
> 排版也改成類似 maple-itoc 的方式,順便把一些前置的++, --,都改成後置的方式
> 其他遊戲的說明內容還請參照原作者的原文,本篇 code 若有任何錯誤也請幫忙指正
> 不知道有沒有更為漂亮的精簡方式 @@;;
> ps. 我有疑問,在 do_paint(x, y, mode) 裡面, int c 的值從哪來??
> = 以下為程式碼 =

> static void
> do_paint(x, y, mode)
>   int x;
>   int y;
>   int mode;
> {
>   int c;
>   move(y * 2 + 3, 0);
>   prints("   \033[1m│");
>   prints("\033[4%dm %3d  \033[40m│",
>          ticket[c][page == 1 ? y : y + 9] == -1 ? 7 :
>          mode == 1 ? (c == x ? 1 : 4) : 4,
>          page == 1 ? (y*9) + c + 1 : (y*9) + c + 1 + 81);
> }

.... 以下恕刪

回答一下你最後一個問題,就是 do_paint 的 c 本來是包在 for 迴圈中的,
例如:
    for( c = 0 ; c < 9 ; c++ )
    {
      prints("\033[4%dm %3d  \033[40m│", ticket[c][page == 1 ? y : y + 9 ] ==
-1 ? 7 : c == x ? 1 : 4, page == 1 ? (y*9) + c + 1 :  (y*9) + c + 1 + 81);
    }

但是,你更新後的程式把整個迴圈都拿掉了,所以,當然找不到嘍!

你把上面最後一行 prints 包在 for 迴圈應該就可以了,

不過說真的,本來這段程式碼已經用了很多三元判斷,

你這麼一合併,好像更難讀懂了。

其他地方我到沒什麼意見,也很喜歡你的方式。

其實,還有一些地方可以修改,不過,在我來說,一方面很少在寫了,
要寫還要測試有無新的問題,而這支程式用了兩年基本都沒問題,所以
,就沒去改,留給有興趣的站長們。

另外,這支程式其實是有類似銀行帳戶金錢同步的問題喔!只不過問題
不大且有紀錄,所以,我就沒有多管了。

--

                                                                          
 ██◣ ██▊ ◢█▉ ██▉ █  ▉ █ˍ_ ██▊ █ ▉     ▉ ▉ ˍ_
 █▇▉ █▇▊ █  ▉   █      ▉ █ˍ_ █▇▊     ▌▉ █▇▉ ▉ ˍ_██
 █▇▉ █◥◣ ██▉   █       ▉ █    █◥◣    ▇ ▉ ▇▇▉ ▉    ██
▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅

--
  Origin:  國立臺北教育大學˙芝山情緣  bbs.ntue.edu.tw 
  Author: brother21913125-225-2-92.dynamic.hinet.net 發表
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻