View Single Post
Skal vi se. Skrev en AI til TG2013 på under en uke. Havna i finalen (kjeppjagaren) men den faila siste runde fordi A* algoen min bare sjekke et området på 15x15, og jeg spawna på noe 15,20 ellerno. Litt trist, men har hvertfall en god del morsom kode.
Planen var å skrive en POC i Python og etterpå skrive det i Clojure. Men tiden gikk litt for fort og jeg endte opp med ravioli og spagetti kode.
spaghetti
https://github.com/Foxboron/AI_Progr...r/src/stuff.py

Skal nevnes at det var null tid for refaktorering Så dette er et mer eller mindre sammen hacket prosjekt som egentlig ikke skulle se dagenslys.

Kode

while len(choose_weps) != 2:
    asdasd = ["droid", "mortar", "laser"]
    fghfgh = random.choice(asdasd)
    if fghfgh not in choose_weps:
        choose_weps.append(fghfgh)

Kode

def error(arg):
    """Error dude....."""
    print arg
Hva var det PEP sa om global vars?

Kode

    global resources_mined
    global laser_level
    global droid_level
    global mortar_level
    global player
    global turns
    global enemies
    global player_pos
    global mine_n
    global l_enemy_pos
    global attack_info
    global rest_walks

Kode

def next_move(player_pos, l):
    if l == "left-up":
        ret = (player_pos[0],player_pos[1]-1)
    elif l == "right-up":
        ret = (player_pos[0]-1,player_pos[1])
    elif l == "up":
        ret = (player_pos[0]-1,player_pos[1]-1)
    elif l == "left-down":
        ret = (player_pos[0]+1,player_pos[1])
    elif l == "down":
        ret = (player_pos[0]+1,player_pos[1]+1)
    elif l == "right-down":
        ret = (player_pos[0],player_pos[1]+1)
    return ret

Kode

class AStar(object):
    def __init__(self, board, start, end, cant_move, enemy=None):
        ...
        self.gridHeight = 15
        self.gridWidth = 15
Jeg holdt også en Lightning Talk på PilsProg i Bergen hvor jeg gikk igjennom koden og forklarte hvor jævlig den er. Har i ettertid ikke gjort noe med den.
Sist endret av Foxboron; 3. august 2013 kl. 22:19.