annotate scripts/partition_helper @ 354:46565a047ac0

silly partition helper for level design
author Adrianna Pińska <adrianna.pinska@gmail.com>
date Fri, 16 Sep 2011 23:38:53 +0200
parents
children 20b424c5c1ef
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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])