找回密码
 新注册用户
搜索
查看: 5330|回复: 15

新春SETI彩蛋

[复制链接]
发表于 2010-2-13 22:31:56 | 显示全部楼层 |阅读模式
无聊得慌写了一个小程序:
SETI.zip (8.36 KB, 下载次数: 2362)
先阅读readme.txt,然后运行SETI.exe,stop.exe用于意外情况。

我用古老的Turbo Pascal编写的,刚开始是一段花屏,按下任意键进入动画,动画放映后可以按s播放歌曲,q退出(放歌时按q也可以,点x也可以)。
里面的动画速度、乐曲速度可能不同电脑会有所不同,兼容性一般。音箱关掉,如果听不到歌曲,也不用开了。
alt+enter全屏效果更佳。
祝用户好运!
回复

使用道具 举报

 楼主| 发表于 2010-2-13 22:32:35 | 显示全部楼层
另:感谢 v724 的测试。
回复

使用道具 举报

发表于 2010-2-13 22:46:30 | 显示全部楼层
Snap1.png


以 xp 兼容模式运行照旧。。
回复

使用道具 举报

 楼主| 发表于 2010-2-13 22:49:46 | 显示全部楼层

回复 #3 BiscuiT 的帖子

...你64位系统吗?
这个程序是16位DOS程序
回复

使用道具 举报

 楼主| 发表于 2010-2-13 22:55:20 | 显示全部楼层
SETI.zip (18.63 KB, 下载次数: 2449)
32位兼容版本,无音乐(最精彩的音乐啊...)。
回复

使用道具 举报

发表于 2010-2-13 23:46:02 | 显示全部楼层
别人听了,强迫我关掉
回复

使用道具 举报

 楼主| 发表于 2010-2-13 23:50:27 | 显示全部楼层

回复 #6 muclemanxb 的帖子

...真的没人听出来这是啥歌?
回复

使用道具 举报

发表于 2010-2-14 00:05:03 | 显示全部楼层
下了這東西的我,滿心歡喜地開了耳筒~

誰知竟然是用底板的蜂鳴器,倒...
回复

使用道具 举报

头像被屏蔽
发表于 2010-2-14 00:11:10 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2010-2-14 01:47:33 | 显示全部楼层

回复 #9 merlinl 的帖子


终于有人听出来了。
回复

使用道具 举报

发表于 2010-2-14 02:12:37 | 显示全部楼层

回复 #10 cuihao 的帖子

下次不妨來首歌聲魅影
半夜播出來不撞鬼才奇xp
回复

使用道具 举报

 楼主| 发表于 2010-2-14 02:19:33 | 显示全部楼层
敲这种程序的代码,累死人了
好在黄河大合唱谱子简单。

  1. uses Crt;

  2. var
  3.   X, Y, i, j: Byte;
  4.   ch:char;

  5. procedure    music(i:integer; n,wait:integer);
  6. var st,hz:real;
  7. begin
  8.   case i of
  9.    0:st:=130.5;
  10.    1:st:=261;
  11.    2:st:=522;
  12.   end;
  13.   case n of
  14.    0:hz:=-st;
  15.    1:hz:=0;
  16.    2:hz:=st*1/12*2;
  17.    3:hz:=st*1/12*4;
  18.    4:hz:=st*1/12*6;
  19.    5:hz:=st*1/12*7;
  20.    6:hz:=st*1/12*9;
  21.    7:hz:=st*1/12*11;
  22.    8:hz:=st*1/12*12;
  23.   end;
  24.   sound(round(st+hz));
  25.   delay(100*wait);
  26.   nosound;
  27.   delay(50);

  28.   if keypressed then
  29.     if readkey='q' then
  30.       halt;
  31. end;

  32. procedure resetscr(x,y,xx,yy:integer);
  33.   begin
  34.     Window(x, y, xx, yy);
  35.     TextBackground(Black);
  36.     clrscr;
  37.   end;

  38. procedure printscr(x,y,xx,yy:integer; color:byte);
  39.   begin
  40.     window(x,y,xx,yy);
  41.     TextBackground(color);
  42.     clrscr;
  43.   end;

  44. begin
  45.   TextBackground(Black);   { Clear screen }
  46.   ClrScr;

  47.   randomize;
  48.   repeat
  49.     X:= Succ(Random(80));
  50.     Y:= Succ(Random(25));
  51.     printscr(X, Y, X + Random(10), Y + Random(8), Random(16));

  52.     sound(2000);
  53.     delay(2);
  54.     nosound;
  55.     delay(3);
  56.   until KeyPressed;

  57.   resetscr(1,1,80,25);
  58.   TextColor(white);

  59.   printscr(1,1,3,7,yellow);
  60.   printscr(4,1,8,1,yellow);
  61.   printscr(4,4,8,4,yellow);
  62.   printscr(4,7,8,7,yellow);
  63.   delay(200);

  64.   printscr(11,1,12,7,yellow);
  65.   printscr(13,1,16,2,yellow);
  66.   printscr(13,6,16,7,yellow);
  67.   printscr(17,1,18,8,yellow);
  68.   delay(200);

  69.   printscr(21,1,22,7,yellow);
  70.   printscr(23,6,26,7,yellow);
  71.   printscr(27,1,28,6,yellow);
  72.   delay(200);

  73.   printscr(31,1,32,7,yellow);
  74.   printscr(33,1,36,2,yellow);
  75.   printscr(37,2,38,7,yellow);


  76.   for i:=1 to 11 do
  77.   begin
  78.     resetscr(1+i-1,10+i-1,10+i-1,13+i-1);
  79.     printscr(3+i, 10+i, 8+i, 11+i, red);
  80.     writeln('   @');
  81.     write('  -|-');
  82.     printscr(1+i, 12+i, 10+i, 13+i, green);
  83.     writeln(' ********');
  84.     write('  BAD ET');
  85.     delay(100);
  86.   end;

  87.   for i:=30 downto 1 do
  88.   begin
  89.     resetscr(40,24,80,25);

  90.     for j:=1 to i do
  91.       write(' ');
  92.     writeln('_|_');
  93.     for j:=1 to i do
  94.       write(' ');
  95.     write(' |\');

  96.     delay(50);
  97.   end;

  98.   printscr(25,18,43,22,green);
  99.   writeln('|---| |      |-|');
  100.   writeln('|   | |      | |');
  101.   writeln('|   | |---|  | |');
  102.   writeln('|   | |   |   T');
  103.   write  ('|---| |   |   O');
  104.   delay(300);
  105.   sound(1000);
  106.   delay(100);
  107.   nosound;

  108.   printscr(60,1,80,17,lightgray);
  109.   textcolor(black);
  110.   write('=====================');
  111.   write('|  WANT TO FINT ET? |');
  112.   write('|  Visit   ');
  113.   TextColor(LightRed+Blink);
  114.   write('equn.com');
  115.   textcolor(black);
  116.   write(' |');
  117.   write('|                   |');
  118.   write('| We are members    |');
  119.   write('|             OF    |');
  120.   write('| |--- |--- ---- == |');
  121.   write('| |___ |___   |  || |');
  122.   write('| ___| |___   |  || |');
  123.   write('|                == |');
  124.   write('|                   |');
  125.   write('|-------------------|');
  126.   writeln;
  127.   writeln(' PRESS "s" TO');
  128.   writeln('     play a song!');
  129.   writeln(' PRESS "q" TO EXIT');

  130.   readkey;
  131.   repeat
  132.     ch:=readkey;
  133.   until (ch='s')or(ch='q');

  134.   if ch='s' then
  135.   begin
  136.     music(2,1,4);
  137.     music(2,1,2);
  138.     music(1,3,2);
  139.     music(1,5,8);

  140.     music(2,1,4);
  141.     music(2,1,2);
  142.     music(1,3,2);
  143.     music(1,5,8);

  144.     music(1,3,2);
  145.     music(1,3,4);
  146.     music(1,5,2);
  147.     music(2,1,4);
  148.     music(2,1,4);

  149.     music(1,6,2);
  150.     music(1,6,4);
  151.     music(1,4,2);
  152.     music(2,2,4);
  153.     music(2,2,4);

  154.     music(1,5,3);
  155.     music(1,6,1);
  156.     music(1,5,2);
  157.     music(1,4,2);
  158.     music(1,3,3);
  159.     music(1,2,1);
  160.     music(1,3,2);
  161.     music(1,0,2);

  162.     music(1,5,3);
  163.     music(1,6,1);
  164.     music(1,5,2);
  165.     music(1,4,2);
  166.     music(1,3,2);
  167.     music(1,2,2);
  168.     music(1,3,2);
  169.     music(1,1,2);

  170.     music(1,5,6);
  171.     music(1,6,2);
  172.     music(2,1,4);
  173.     music(1,3,4);
  174.     music(1,5,3);
  175.     music(2,3,1);
  176.     music(2,2,2);
  177.     music(2,1,2);
  178.     music(1,5,6);
  179.     music(1,6,2);
  180.     music(1,3,8);

  181.     music(1,5,6);
  182.     music(1,6,2);
  183.     music(2,1,4);
  184.     music(1,3,4);
  185.     music(1,5,3);
  186.     music(2,3,1);
  187.     music(2,2,2);
  188.     music(2,1,2);
  189.     music(1,5,6);
  190.     music(1,6,2);
  191.     music(2,1,8);

  192.     music(1,5,2);
  193.     music(1,3,1);
  194.     music(1,5,1);
  195.     music(1,6,2);
  196.     music(1,5,2);
  197.     music(2,1,2);
  198.     music(2,1,2);
  199.     music(1,0,4);

  200.     music(1,5,2);
  201.     music(1,3,1);
  202.     music(1,5,1);
  203.     music(1,6,2);
  204.     music(1,5,2);
  205.     music(2,2,2);
  206.     music(2,2,2);
  207.     music(1,0,4);

  208.     music(1,5,3);
  209.     music(1,6,1);
  210.     music(2,1,2);
  211.     music(2,1,2);
  212.     music(1,0,2);

  213.     music(1,5,3);
  214.     music(1,6,1);
  215.     music(2,2,2);
  216.     music(2,2,2);

  217.     music(1,5,3);
  218.     music(1,6,1);
  219.     music(2,3,2);
  220.     music(2,3,2);

  221.     music(1,5,3);
  222.     music(1,6,1);
  223.     music(2,3,3);
  224.     music(2,2,1);
  225.     music(2,1,12);
  226.   end;
  227. end.
复制代码
回复

使用道具 举报

发表于 2010-2-14 09:12:20 | 显示全部楼层
高级啊……

已经多少年没碰过16位程序了(学校里的不算)
回复

使用道具 举报

头像被屏蔽
发表于 2010-2-14 09:22:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2010-2-14 09:26:09 | 显示全部楼层

回复 #13 Bismarck 的帖子

什么高级啊...
因为32位的Pascal编译器发不出声音(好像与XP平台有关),C、C++图形编程也不会,就翻出古老的Turbo Pascal把里面的Help文档研究一下,写了这个程序。那个音乐是前年写的,重新翻出来了。
像这种东西,学奥赛的是不会教的。

记得刚学编程的时候,没有学循环,只靠 if 转折,我愣是打了将近1000行代码,写了一个把数字转换成英语单词的程序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2025-5-14 16:23

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表