|
|
1.1 ! root 1: # include "trek.h" ! 2: ! 3: /** ! 4: ** compute klingon distances ! 5: **/ ! 6: ! 7: compkldist(f) ! 8: int f; /* set if new quadrant */ ! 9: { ! 10: register int i, dx, dy; ! 11: double d; ! 12: double temp; ! 13: ! 14: if (Nkling == 0) ! 15: return; ! 16: for (i = 0; i < Nkling; i++) ! 17: { ! 18: /* compute distance to the Klingon */ ! 19: dx = Sectx - Kling[i].x; ! 20: dy = Secty - Kling[i].y; ! 21: d = dx*dx + dy*dy; d = sqrt(d); ! 22: /* computer average of new and old distances to Klingon */ ! 23: if (!f) ! 24: { ! 25: temp = Kling[i].dist; ! 26: Kling[i].avgdist = 0.5 * (temp + d); ! 27: } ! 28: else ! 29: Kling[i].avgdist = d; ! 30: Kling[i].dist = d; ! 31: } ! 32: sortkl(); ! 33: } ! 34: ! 35: ! 36: /** ! 37: ** sort klingons ! 38: ** bubble sort on ascending distance ! 39: **/ ! 40: ! 41: sortkl() ! 42: { ! 43: KLINGONS t; ! 44: register int f, i, m; ! 45: ! 46: m = Nkling - 1; ! 47: f = 1; ! 48: while (f) ! 49: { ! 50: f = 0; ! 51: for (i = 0; i < m; i++) ! 52: if (Kling[i].dist > Kling[i+1].dist) ! 53: { ! 54: bmove(&Kling[i], &t, sizeof t); ! 55: bmove(&Kling[i+1], &Kling[i], sizeof t); ! 56: bmove(&t, &Kling[i+1], sizeof t); ! 57: f = 1; ! 58: } ! 59: } ! 60: return; ! 61: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.