Mercurial > mamba
annotate scripts/partition_helper @ 388:88d9509fd2c2
Patriotism!
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 17 Sep 2011 01:47:35 +0200 |
parents | 46565a047ac0 |
children | 20b424c5c1ef |
rev | line source |
---|---|
354
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
2 |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
3 |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
4 def partition(total, parts, sepwidth=1): |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
5 seps = parts - 1 |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
6 space = total - 2 - sepwidth * seps |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
7 return float(space) / parts |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
8 |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
9 |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
10 def find_partitions(num, sepwidth): |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
11 partitions = [] |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
12 for i in range(2, num): |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
13 size = partition(num, i, sepwidth) |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
14 if size > 0 and int(size) == size: |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
15 partitions.append((i, size)) |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
16 return partitions |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
17 |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
18 |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
19 if __name__ == "__main__": |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
20 height = ["FLOOR HEIGHT: PARTS x PART HEIGHT"] |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
21 for sepwidth in range(1, 28): |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
22 partitions = find_partitions(30, sepwidth) |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
23 if partitions: |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
24 height.append("%s: %s" % (sepwidth, |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
25 " ".join([" %dx%d" % (i, size) for (i, size) in partitions]))) |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
26 |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
27 width = ["COLUMN WIDTH: PARTS x PART WIDTH"] |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
28 for sepwidth in range(1, 38): |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
29 partitions = find_partitions(40, sepwidth) |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
30 if partitions: |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
31 width.append("%s: %s" % (sepwidth, |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
32 " ".join([" %dx%d" % (i, size) for (i, size) in partitions]))) |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
33 |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
34 height.extend([""] * 6) |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
35 height = [l.ljust(50) for l in height] |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
36 pairs = zip(height, width) |
46565a047ac0
silly partition helper for level design
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
diff
changeset
|
37 print "\n".join(["%s %s" % p for p in pairs]) |