sm.c revision 1.1 1 1.1 kamil /* $Header: /tank/opengrok/rsync2/NetBSD/src/games/warp/sm.c,v 1.1 2020/11/09 23:37:05 kamil Exp $ */
2 1.1 kamil
3 1.1 kamil /* $Log: sm.c,v $
4 1.1 kamil /* Revision 1.1 2020/11/09 23:37:05 kamil
5 1.1 kamil /* Add Warp Kit, Version 7.0 by Larry Wall
6 1.1 kamil /*
7 1.1 kamil /* Warp is a real-time space war game that doesn't get boring very quickly.
8 1.1 kamil /* Read warp.doc and the manual page for more information.
9 1.1 kamil /*
10 1.1 kamil /* games/warp originally distributed with 4.3BSD-Reno, is back to the BSD
11 1.1 kamil /* world via NetBSD. Its remnants were still mentioned in games/Makefile.
12 1.1 kamil /*
13 1.1 kamil /* Larry Wall, the original author and the copyright holder, generously
14 1.1 kamil /* donated the game and copyright to The NetBSD Foundation, Inc.
15 1.1 kamil /*
16 1.1 kamil /* Import the game sources as-is from 4.3BSD-Reno, with the cession
17 1.1 kamil /* of the copyright and license to BSD-2-clause NetBSD-style.
18 1.1 kamil /*
19 1.1 kamil /* Signed-off-by: Larry Wall <larry (at) wall.org>
20 1.1 kamil /* Signed-off-by: Kamil Rytarowski <kamil (at) netbsd.org>
21 1.1 kamil /*
22 1.1 kamil * Revision 7.0 86/10/08 15:13:35 lwall
23 1.1 kamil * Split into separate files. Added amoebas and pirates.
24 1.1 kamil *
25 1.1 kamil */
26 1.1 kamil
27 1.1 kamil #include <stdio.h>
28 1.1 kamil #include <ctype.h>
29 1.1 kamil #include "config.h"
30 1.1 kamil
31 1.1 kamil main()
32 1.1 kamil {
33 1.1 kamil char screen[23][90], buf[10];
34 1.1 kamil Reg1 int y;
35 1.1 kamil Reg2 int x;
36 1.1 kamil int tmpy, tmpx;
37 1.1 kamil
38 1.1 kamil for (x=0; x<79; x++)
39 1.1 kamil screen[0][x] = ' ';
40 1.1 kamil screen[0][79] = '\0';
41 1.1 kamil
42 1.1 kamil fgets(screen[0],90,stdin);
43 1.1 kamil if (isdigit(screen[0][0])) {
44 1.1 kamil int numstars = atoi(screen[0]);
45 1.1 kamil
46 1.1 kamil for (y=0; y<23; y++) {
47 1.1 kamil for (x=0; x<79; x++)
48 1.1 kamil screen[y][x] = ' ';
49 1.1 kamil screen[y][79] = '\0';
50 1.1 kamil }
51 1.1 kamil
52 1.1 kamil for ( ; numstars; numstars--) {
53 1.1 kamil scanf("%d %d\n",&tmpy,&tmpx);
54 1.1 kamil y = tmpy;
55 1.1 kamil x = tmpx;
56 1.1 kamil screen[y][x+x] = '*';
57 1.1 kamil }
58 1.1 kamil
59 1.1 kamil for (y=0; y<23; y++) {
60 1.1 kamil printf("%s\n",screen[y]);
61 1.1 kamil }
62 1.1 kamil }
63 1.1 kamil else {
64 1.1 kamil Reg3 int numstars = 0;
65 1.1 kamil
66 1.1 kamil for (y=1; y<23; y++) {
67 1.1 kamil for (x=0; x<79; x++)
68 1.1 kamil screen[y][x] = ' ';
69 1.1 kamil screen[y][79] = '\0';
70 1.1 kamil }
71 1.1 kamil
72 1.1 kamil for (y=1; y<23; y++) {
73 1.1 kamil fgets(screen[y],90,stdin);
74 1.1 kamil }
75 1.1 kamil
76 1.1 kamil for (y=0; y<23; y++) {
77 1.1 kamil for (x=0; x<80; x += 2) {
78 1.1 kamil if (screen[y][x] == '*') {
79 1.1 kamil numstars++;
80 1.1 kamil }
81 1.1 kamil else if (screen[y][x] == '\t' || screen[y][x+1] == '\t') {
82 fprintf(stderr,"Cannot have tabs in starmap--please expand.\n");
83 exit(1);
84 }
85 }
86 }
87
88 printf("%d\n",numstars);
89
90 for (y=0; y<23; y++) {
91 for (x=0; x<80; x += 2) {
92 if (screen[y][x] == '*') {
93 printf("%d %d\n",y,x/2);
94 }
95 }
96 }
97 }
98 exit(0);
99 }
100