Home | History | Annotate | Line # | Download | only in warp
      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