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