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