KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

[考古] 其实上用一句话和几行程序代码就可以完全剧透寒蝉[EG中透着剧透][BASIC版本+C版本]

[ 17459 查看 / 29 回复 ]

最近把寒蝉看完了,话说其英文翻译竟然是WHEN THEY CRY而不是WHEN CICIDAS CRY……某种程度上也算是剧透一种……(顺便说一句CRY这个单词用红颜色字写的……)

50集全部看过以后,发现用一句话和一个BASIC程序就可以做到完全剧透了……

警告!!
以下剧透出没注意!!
以下程序源代码出没注意!!
L5自重!

不怕剧透请猛击
最后编辑nemoma 最后编辑于 2008-09-11 13:12:52
1

评分次数

    本主题由 见习版主 小汀 于 2011/9/12 18:03:15 执行 主题分类 操作
    分享 转发
    「大地坏灭,城市尽毁,死伤惨重;唯一语足志:胜利。」
    TOP

    回复: 其实上用一句话和几行程序代码就可以完全剧透寒蝉[EG中透着剧透]

    看不懂程序代码者:(毕竟Qbasic是20多年前的事了)
    LET = 赋值语句
    DATA...READ = 集体赋值语句
    INT=取整函数
    RND=随机数函数
    IF...THEN...ELSE=判断语句
    REM= 注释语句
    INPUT=输入
    PRINT=输出
    SUB....GOSUB= 分支语句
    FOR...NEXT = 条件循环语句

    PS:貌似发错区了,如果实在不甚和谐就飞土豆吧
    最后编辑nemoma 最后编辑于 2008-09-11 10:49:15
    「大地坏灭,城市尽毁,死伤惨重;唯一语足志:胜利。」
    TOP

    回复:其实上用一句话和几行程序代码就可以完全剧透寒蝉[EG中透着剧透]

    话说..........刚看到的时候有用C#重写一边的冲动........

    (好吧,我承认我是MS党 XD ......)
    模范好人活雷锋爱女儿胜过爱老婆女儿汐的爸爸喜欢给老婆换装富有、阳光、和谐的程序员领导心中的金牛座工作模范为家庭抛弃二次元的 服务器魔王Bce
    L.B四个月,最喜欢看小女生跳皮筋。Orz
    L.B五个月,最喜欢的玩具是键盘。 Orz
    L.B六个月,哄睡觉的方式是抱着不停的上下楼梯。 Orz
    L.B七个月,开始招猫逗狗撵鸽子。 Orz
    L.B八个月,四颗门牙咬咪咪。 Orz
    L.B九个月,啊呜啊哇啊呜啊不啊呀啊爸。 Orz

    Laputa Chen (1984-2012) 我们一定会在量子的海洋中再会的。
    TOP

    回复:其实上用一句话和几行程序代码就可以完全剧透寒蝉[EG中透着剧透]


    召唤C++代码……

    其他语言看起来很累……

    却问何日君再来...
    TOP

    回复:其实上用一句话和几行程序代码就可以完全剧透寒蝉[EG中透着剧透]

    别忘了……
    寒蝉那个年代没有C#
    C好像是有的
    请用元祖C语言重写吧……
    「大地坏灭,城市尽毁,死伤惨重;唯一语足志:胜利。」
    TOP

    回复:其实上用一句话和几行程序代码就可以完全剧透寒蝉[EG中透着剧透]

    = =其实……咱看不懂&……|
    请求Java重写……m(_ _)m
    咱的blog
    QmFzZTY0 (?
    TOP

    回复:其实上用一句话和几行程序代码就可以完全剧透寒蝉[EG中透着剧透]


    嘛,于是翻译完成……
    1. #include <stdio.h>

    2. #include <stdlib.h>

    3. #include <memory>



    4. typedef int BOOL;

    5. #define TRUE    1

    6. #define FALSE    0

    7. static int s_nCounter = 0;

    8. enum emCharacters

    9. {

    10.     survive_rika,

    11.     survive_rena,

    12.     survive_k1,

    13.     survive_mino,

    14.     survive_shino,

    15.     survive_satoko,

    16.     survive_hanyu,

    17.     survive_jiro,

    18.     survive_kyosuke,

    19.     characters_size,

    20. };

    21. static BOOL s_bArrSurvive[characters_size];

    22. static bool s_bSp = false;



    23. // ============================================================================

    24. // ==============================================================================



    25. BOOL GetRP(void)

    26. {

    27.     if (s_bSp) {

    28.         return TRUE;

    29.     }



    30.     //~~~~~~~~~~~~~~~~~~~

    31.     int nRP = rand() % 100;

    32.     //~~~~~~~~~~~~~~~~~~~



    33.     return(nRP > 0 ? TRUE : FALSE);

    34. }



    35. void Counter(void);

    36. void Set(void);

    37. void Special(void);

    38. void Start(void);

    39. void Confront(void);

    40. void LastWorld(void);



    41. static int s_nYear = 0;

    42. static int s_nMonth = 0;

    43. static int s_nDay = 0;



    44. // ============================================================================

    45. // ==============================================================================



    46. void Result()

    47. {

    48.     while (true) {

    49.         printf("CONTINUE?(Y/N)");



    50.         //~~~~~~~~~~~~~~~~~~~~

    51.         char cChose = getchar();

    52.         //~~~~~~~~~~~~~~~~~~~~



    53.         getchar();

    54.         if ('N' == cChose || 'n' == cChose) {

    55.             break;;

    56.         } else if ('Y' == cChose || 'y' == cChose) {

    57.             Counter();

    58.             break;

    59.         }

    60.     }

    61. }



    62. // ============================================================================

    63. // ==============================================================================

    64. void Counter(void)

    65. {

    66.     ++s_nCounter;

    67.     Set();

    68. }



    69. // ============================================================================

    70. // ==============================================================================

    71. void Set(void)

    72. {

    73.     //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    74.     BOOL bArrSurvive[characters_size] = { 1, 1, 1, 1, 1, 1, 0, 1, 1 };

    75.     //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



    76.     memcpy(s_bArrSurvive, bArrSurvive, sizeof(bArrSurvive));

    77.     if (s_nCounter >= 8) {

    78.         Special();

    79.     } else {

    80.         Start();

    81.     }

    82. }



    83. // ============================================================================

    84. // ==============================================================================

    85. void Special(void)

    86. {

    87.     s_bSp = true;

    88.     s_bArrSurvive[survive_hanyu] = 1;

    89.     Start();

    90. }



    91. // ============================================================================

    92. // ==============================================================================

    93. void Start(void)

    94. {

    95.     s_nYear = 1983;

    96.     s_nMonth = 6;

    97.     for (s_nDay = 16; s_nDay < 30; ++s_nDay) {



    98.         //~~~~~~~~~~~~

    99.         int nCharSet[] =

    100.         {

    101.             survive_rena, survive_k1, survive_mino, survive_shino,

    102.             survive_satoko

    103.         };

    104.         //~~~~~~~~~~~~



    105.         for (int i = 0; i < sizeof(nCharSet) / sizeof(int); ++i) {

    106.             s_bArrSurvive[nCharSet[i]] *= GetRP();

    107.         }

    108.     }



    109.     if (30 == s_nDay) {

    110.         Confront();

    111.     }

    112. }



    113. // ============================================================================

    114. // ==============================================================================

    115. void Confront(void)

    116. {

    117.     //~~~~~~~~~~~~~~~~

    118.     int nMainCharSet[] =

    119.     {

    120.         survive_rena, survive_k1, survive_mino, survive_shino, survive_satoko

    121.     };

    122.     //~~~~~~~~~~~~~~~~



    123.     for (int i = 0; i < sizeof(nMainCharSet) / sizeof(int); ++i) {

    124.         if (FALSE == s_bArrSurvive[nMainCharSet[i]]) {

    125.             printf("GAME OVER: MAIN CHARACTER DIED\n");

    126.             Result();

    127.             return;

    128.         }

    129.     }



    130.     if (FALSE == s_bArrSurvive[survive_hanyu]) {

    131.         s_bArrSurvive[survive_jiro] = FALSE;

    132.     } else {

    133.         LastWorld();

    134.         return;

    135.     }



    136.     s_bArrSurvive[survive_rika] = 0;

    137.     printf("GAME OVER: RIKA KILLED, 'LAST PROJECT' CARRIED OUT\n");

    138.     Result();

    139. }



    140. // ============================================================================

    141. // ==============================================================================

    142. void LastWorld()

    143. {

    144.     s_bArrSurvive[survive_rika] = 1;

    145.     ++s_nMonth;

    146.     s_nDay = 1;

    147.     printf("GAME OVER : GOOD ENDING\n");

    148.     printf("%d Time loops had been created by Rika and Hanyu.\n", s_nCounter);

    149.     printf("THANKS FOR PLAYING!\n");

    150.     getchar();

    151. }



    152. // ============================================================================

    153. // ==============================================================================

    154. int main()

    155. {

    156.     Counter();

    157.     return 0;

    158. }

    复制代码

    却问何日君再来...
    TOP

    回复:其实上用一句话和几行程序代码就可以完全剧透寒蝉[EG中透着剧透]

    顺便说一句,以上的C语言版本也可以顺利编译运行……

    由以上的程序可见……
    某人的轮回是多么的M…………
    最后编辑nemoma 最后编辑于 2008-09-11 12:55:17
    「大地坏灭,城市尽毁,死伤惨重;唯一语足志:胜利。」
    TOP

    回复: 其实上用一句话和几行程序代码就可以完全剧透寒蝉[EG中透着剧透]

    原帖由 nemoma 于 2008-9-11 12:48:00 发表
    顺便说一句,以上的C语言版本也可以顺利编译运行……

    由以上的程序可见……
    某人的轮回是多么的M…………



    =V=

    一些补充

    风格上,BOOL/TRUE/FALSE其实是不好的习惯,且不论,至少这样typedef/define不好,不过感觉合适就用了,另外enum中定义用小写显得很猥琐,主要是偷懒了……拷贝方便 XD


    尊重原著,基本是完全的句句对译,除了输入那段(Result())


    嘛,RP即使100/100,没开金手指一样没有GoodEnd

    还我回笼觉时间><

    却问何日君再来...
    TOP

    回复:其实上用一句话和几行程序代码就可以完全剧透寒蝉[EG中透着剧透][BASIC版本+C版本]

    你们真有爱……没耐心看完代码的飘过……
    TOP