慢羊羊的空间

无为,无我,无欲,居下,清虚,自然

C 语言天罡三十六题 - 进阶九题(2021-5-27)

该系列共分四篇:

相关说明请参考基础九题

进阶九题

10. 天贵星

任务:模拟 45 度反弹的 10 个小球。

在屏幕里画一个大矩形。

在矩形内的随机位置生成 10 个小球,每个小球都沿着某个 45 度方向匀速前进,碰到矩形边框后做 45 度反弹,反弹后速度不减,再次碰撞后再次反弹,如此往复循环。模拟这个动画过程。

11. 天富星

任务:绘制这个传说中的视觉错觉图片(一)。

12. 天满星

任务:通过键盘控制一个小球上下左右移动。

画出 20 行、30 列的空心圆阵列,将空心圆阵列中坐标为(10, 10)的圆画为实心的。

要求 1:通过 a、s、d、w 四个键,实现实心圆的移动。例如,按下 d 键,实心圆从(10, 10)移到(11, 10)。输入大写的 A、S、D、W 仍然有效。

要求 2:实现实心圆的自动行走。例如,按下 d 键,实心圆从(10, 10)移到(11, 10),再到(12, 10),一直向右走,移动速度为 500 毫秒移一格。移动到右边界后,从左边穿出来。再按其它方向,便会向其它方向自动行走。

要求 3:通过四个方向键实现对实心圆的移动控制(提示:参考微软官方文档中对 _getch 函数的介绍,其中有如何获取功能键的讲解)。

13. 天孤星

任务:绘制星空动画。

用像素点代表星星。屏幕上有 200 颗星星,从左向右移动。每颗星星拥有不同的亮度和移动速度。越亮的星星,表示离自己越近,移动速度越快。

14. 天伤星

任务:打字母游戏。

具体要求:

1. 进入游戏后,屏幕顶端随机位置产生一个随机的大写字母下落,按对应按键后字母消失。

2. 每按对 10 个按键,字母下降速度加快一点,以增加游戏难度。

3. 字母落到底部后游戏结束。

4. 游戏窗口右侧显示若干提示信息,例如:游戏时间、正确数量、错误数量、正确率、打字速度等。

5. 随机落下的字母由 1 个变为 3 个,按对任何 1 个按键,对应的字母消失,并重新产生一个新的字母落下。3 个字母的逻辑互不影响。

15. 天立星

任务:双人击球游戏。

请顺序完成以下步骤:

1. 在屏幕上画一个较大的长方形作为游戏区域,里面有一个小球做 45 度反弹。

2. 将游戏区域长方形的左、右边界擦掉,改为画一个小矩形,表示挡板,通过按键 D、W 可以上下移动这个挡板。小球碰到挡板就反弹;小球越过左、右边界,游戏结束。

3. 左侧游戏者通过 ASDW、右侧游戏者通过方向键在各自的区域内上下左右四个方向移动挡板,击打小球。

4. 挡板改为圆球,小球碰撞到球形挡板后,根据两球碰撞的接触位置,计算出小球的反弹角度。

5. 在顶部增加游戏信息,先累计赢 3 次者,胜利。

游戏示意图如下(虚线表示小球运动轨迹,无需绘制):

16. 天捷星

任务:基于点阵图像的绘图板。

图像分两类,点阵图和矢量图。

点阵图又称位图或栅格图,整个图像由 M 行、N 列的像素点构成。在点阵图里画一条线,会引起若干像素颜色变化,点阵图只存储每个像素的颜色,不记录引起像素颜色改变的是直线还是圆。

矢量图记录的是每个图形元素的具体坐标尺寸等信息。在矢量图里画一条线,会记录下来这条线的起始点、终止点、粗细、颜色等信息。

该任务要求实现一个基于点阵图象的绘图板。需要实现的功能包括:选择颜色、画直线、画圆、画矩形、保存图片、加载图片。保存和加载图片不考虑多种尺寸的情况,只处理一种固定的尺寸即可。

17. 天暗星

任务:不可思议的图案(一)。

请问如下数学步骤将会生成什么图案?

(1) 随机生成 3 个点 P[0]、P[1]、P[2];

(2) 随机生成 1 个点 P;

(3) 绘制点 P;

(4) 随机生成整数 n(0 ≤ n ≤ 2);

(5) 令 P = P 与 P[n] 的中点;

(6) 重复执行步骤 (3)~(5) 三万次。

写一个程序模拟该过程以求得最终图案。

18. 天佑星

任务:生命游戏。

生命游戏包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞。

一个细胞在下一个时刻生死取决于相邻八个方格中活着的细胞的数量。如果一个细胞周围的活细胞数量 >3,这个细胞会因为资源匮乏而在下一个时刻死去;如果一个位置周围有 3 个活细胞,则该位置在下一个时刻将诞生一个新的细胞;如果一个位置周围有 2 个活细胞,则该位置的细胞生死状态保持不变;如果一个细胞周围的活细胞 <2,那么这个细胞会因太孤单而死去。这样整个生命世界才不至于太过荒凉或拥挤,而是一种动态的平衡。

约定:世界为 100 x 100 大小。初始状态为世界周边有一圈活着的细胞。

写一个程序,模拟这个细胞世界的繁衍更迭。

精英九题

https://codebus.cn/yangw/36-tasks-g3

分享到

添加评论