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