浏览代码

Add closeness control to nearest script

Kirk Trombley 3 年之前
父节点
当前提交
3df981ecea
共有 1 个文件被更改,包括 6 次插入5 次删除
  1. 6 5
      nearest.py

+ 6 - 5
nearest.py

@@ -5,10 +5,11 @@ import random
 from argparse import ArgumentParser
 
 parser = ArgumentParser()
-parser.add_argument("color", nargs="?", default=None)
-parser.add_argument("-n", "--number", default=1, type=int)
-parser.add_argument("--database", default="database.csv")
-parser.add_argument("-v", "--verbose", action="store_true")
+parser.add_argument("color", nargs="?", default=None, help="Target color, randomized if not provided")
+parser.add_argument("-n", "--number", default=1, type=int, help="Number of Pokemon to find")
+parser.add_argument("-c", "--closeness", default=2, type=int, help="Closeness coefficient")
+parser.add_argument("--database", default="database.csv", help="Database file")
+parser.add_argument("-v", "--verbose", action="store_true", help="Print raw scores")
 args = parser.parse_args()
 
 if args.number <= 0:
@@ -25,7 +26,7 @@ else:
 results = []
 with open(args.database) as infile:
     for name, x, *y in csv.reader(infile, delimiter=",", quotechar="'"):
-        score = float(x) - sum(float(y_c) * c for y_c, c in zip(y, color))
+        score = float(x) - args.closeness * sum(float(y_c) * c for y_c, c in zip(y, color))
         results.append((score, name))
 
 if args.number > 1: