Ascender: fun with shapes and ships
authorMatthew Mondor <mmondor@pulsar-zone.net>
Sat, 15 Apr 2023 23:39:50 +0000 (23:39 +0000)
committerMatthew Mondor <mmondor@pulsar-zone.net>
Sat, 15 Apr 2023 23:39:50 +0000 (23:39 +0000)
mmsoftware/ascender/src/main.c
mmsoftware/ascender/src/shapes.txt

index ae6940f..91e98a2 100644 (file)
 #include <mmrarray.h>
 
 
-#define NOBJECTS       56
+#define NOBJECTS       30
 
 enum enum_shapes {
        SHAPE_A = 0,
        SHAPE_B,
        SHAPE_SHIP,
+       SHAPE_CALIMERO,
+       SHAPE_O_O,
+       SHAPE_FURRY_NOSY,
+       SHAPE_UFO,
+       SHAPE_NO,
+       SHAPE_SPACESHIP,
+       SHAPE_ZIU,
        SHAPE_MAX
 };
 
@@ -263,21 +270,22 @@ shape_draw(int shape, int y, int x)
 static void
 anim_init(void)
 {
-       int i, col;
+       int i, col, s;
 
        nbsrandom(13);
        col = 0;
+       s = 0;
        for (i = 0; i < NOBJECTS; i++) {
                aobject_t *o = &objects[i];
 
-               /* 24 bugs, 20 stars, 10 shapes */
-               if (i <= 26) {
+               /* 10 bugs, 10 stars, 10 shapes */
+               if (i <= 10) {
                        o->t = AOT_BUG;
-                       o->c = 'A' + i;
+                       o->c = 'A' + (nbrandom() % 25);
                        o->col = ++col % ncolpairs;
                        o->s = -1;
                        o->d = nbrandom() % 4;
-               } else if (i < 46) {
+               } else if (i < 20) {
                        o->t = AOT_STAR;
                        o->c = '.';
                        o->col = 0;
@@ -287,7 +295,7 @@ anim_init(void)
                        o->t = AOT_SHAPE;
                        o->c = '\0';
                        o->col = -1;
-                       o->s = nbrandom() % SHAPE_MAX;
+                       o->s = s++;
                        o->d = nbrandom() % 4;
                }
                o->x = nbrandom() % (TERM_COLUMNS - 1);
index a5990d3..75be182 100644 (file)
 # - A space is required after T F B A lines before the data.
 # - F B A lines can only occur for already defined shapes with T and must hold
 #   the same amount of lines than for T.
-T  /\
-T |__|
-T |  |
-F
-F  11
-F
+T |-o-|
+F 21312
 
-T  __ 
-T |__>
-T |__>
+T  /   \
+T |-=O=-|
+T  \   /
 F
-F  22
+F    2
 F
 
 # https://www.asciiart.eu/vehicles/boats
@@ -65,3 +61,37 @@ A
 A     E                     
 A         E   I  E   E   
 A                      
+
+T _ _
+T  ^
+F 3 3
+F  3
+A EEE
+A EEE
+
+T o_O
+
+T *^*
+F 444
+
+T   ooo
+T <=oOo=>
+T    T
+F   444
+F 5233325
+F    1
+
+T Nooooo!
+F 1111111
+A BBBBBBB
+
+T      _
+T    _> >=
+T O-<_--<=
+T     >_>=
+T
+
+T    _
+T -=<_>=-
+F    7
+F 7777777