sm.c revision 1.2 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.1 kamil *
7 1.1 kamil */
8 1.1 kamil
9 1.1 kamil #include <stdio.h>
10 1.1 kamil #include <ctype.h>
11 1.1 kamil #include "config.h"
12 1.1 kamil
13 1.1 kamil main()
14 1.1 kamil {
15 1.1 kamil char screen[23][90], buf[10];
16 1.1 kamil Reg1 int y;
17 1.1 kamil Reg2 int x;
18 1.1 kamil int tmpy, tmpx;
19 1.1 kamil
20 1.1 kamil for (x=0; x<79; x++)
21 1.1 kamil screen[0][x] = ' ';
22 1.1 kamil screen[0][79] = '\0';
23 1.1 kamil
24 1.1 kamil fgets(screen[0],90,stdin);
25 1.1 kamil if (isdigit(screen[0][0])) {
26 1.1 kamil int numstars = atoi(screen[0]);
27 1.1 kamil
28 1.1 kamil for (y=0; y<23; y++) {
29 1.1 kamil for (x=0; x<79; x++)
30 1.1 kamil screen[y][x] = ' ';
31 1.1 kamil screen[y][79] = '\0';
32 1.1 kamil }
33 1.1 kamil
34 1.1 kamil for ( ; numstars; numstars--) {
35 1.1 kamil scanf("%d %d\n",&tmpy,&tmpx);
36 1.1 kamil y = tmpy;
37 1.1 kamil x = tmpx;
38 1.1 kamil screen[y][x+x] = '*';
39 1.1 kamil }
40 1.1 kamil
41 1.1 kamil for (y=0; y<23; y++) {
42 1.1 kamil printf("%s\n",screen[y]);
43 1.1 kamil }
44 1.1 kamil }
45 1.1 kamil else {
46 1.1 kamil Reg3 int numstars = 0;
47 1.1 kamil
48 1.1 kamil for (y=1; y<23; y++) {
49 1.1 kamil for (x=0; x<79; x++)
50 1.1 kamil screen[y][x] = ' ';
51 1.1 kamil screen[y][79] = '\0';
52 1.1 kamil }
53 1.1 kamil
54 1.1 kamil for (y=1; y<23; y++) {
55 1.1 kamil fgets(screen[y],90,stdin);
56 1.1 kamil }
57 1.1 kamil
58 1.1 kamil for (y=0; y<23; y++) {
59 1.1 kamil for (x=0; x<80; x += 2) {
60 1.1 kamil if (screen[y][x] == '*') {
61 1.1 kamil numstars++;
62 1.1 kamil }
63 1.1 kamil else if (screen[y][x] == '\t' || screen[y][x+1] == '\t') {
64 1.1 kamil fprintf(stderr,"Cannot have tabs in starmap--please expand.\n");
65 1.1 kamil exit(1);
66 1.1 kamil }
67 1.1 kamil }
68 1.1 kamil }
69 1.1 kamil
70 1.1 kamil printf("%d\n",numstars);
71 1.1 kamil
72 1.1 kamil for (y=0; y<23; y++) {
73 1.1 kamil for (x=0; x<80; x += 2) {
74 1.1 kamil if (screen[y][x] == '*') {
75 1.1 kamil printf("%d %d\n",y,x/2);
76 1.1 kamil }
77 1.1 kamil }
78 1.1 kamil }
79 1.1 kamil }
80 1.1 kamil exit(0);
81 1.1 kamil }
82