xref: /netbsd-src/games/warp/sm.c (revision 1182a44c59cae4d586117d55eca24b4b8b173211)
1 /* Header: sm.c,v 7.0 86/10/08 15:13:35 lwall Exp */
2 
3 /* Log:	sm.c,v
4  * Revision 7.0  86/10/08  15:13:35  lwall
5  * Split into separate files.  Added amoebas and pirates.
6  *
7  */
8 
9 #include <stdio.h>
10 #include <ctype.h>
11 #include <stdlib.h>
12 #include "config.h"
13 
14 int
main(void)15 main(void)
16 {
17     char screen[23][90], buf[10];
18     int y;
19     int x;
20     int tmpy, tmpx;
21 
22     for (x=0; x<79; x++)
23 	screen[0][x] = ' ';
24     screen[0][79] = '\0';
25 
26     fgets(screen[0],90,stdin);
27     if (isdigit(screen[0][0])) {
28 	int numstars = atoi(screen[0]);
29 
30 	for (y=0; y<23; y++) {
31 	    for (x=0; x<79; x++)
32 		screen[y][x] = ' ';
33 	    screen[y][79] = '\0';
34 	}
35 
36 	for ( ; numstars; numstars--) {
37 	    scanf("%d %d\n",&tmpy,&tmpx);
38 	    y = tmpy;
39 	    x = tmpx;
40 	    screen[y][x+x] = '*';
41 	}
42 
43 	for (y=0; y<23; y++) {
44 	    printf("%s\n",screen[y]);
45 	}
46     }
47     else {
48 	int numstars = 0;
49 
50 	for (y=1; y<23; y++) {
51 	    for (x=0; x<79; x++)
52 		screen[y][x] = ' ';
53 	    screen[y][79] = '\0';
54 	}
55 
56 	for (y=1; y<23; y++) {
57 	    fgets(screen[y],90,stdin);
58 	}
59 
60 	for (y=0; y<23; y++) {
61 	    for (x=0; x<80; x += 2) {
62 		if (screen[y][x] == '*') {
63 		    numstars++;
64 		}
65 		else if (screen[y][x] == '\t' || screen[y][x+1] == '\t') {
66 		    fprintf(stderr,"Cannot have tabs in starmap--please expand.\n");
67 		    exit(1);
68 		}
69 	    }
70 	}
71 
72 	printf("%d\n",numstars);
73 
74 	for (y=0; y<23; y++) {
75 	    for (x=0; x<80; x += 2) {
76 		if (screen[y][x] == '*') {
77 		    printf("%d %d\n",y,x/2);
78 		}
79 	    }
80 	}
81     }
82     exit(0);
83 }
84