intro2ai/p0_tutorial/submission_autograder.py

43 lines
8.9 KiB
Python
Raw Normal View History

2021-10-12 02:45:38 +02:00
# submission_autograder.py
# ------------------------
# Licensing Information: You are free to use or extend these projects for
# educational purposes provided that (1) you do not distribute or publish
# solutions, (2) you retain this notice, and (3) you provide clear
# attribution to UC Berkeley, including a link to http://ai.berkeley.edu.
#
# Attribution Information: The Pacman AI projects were developed at UC Berkeley.
# The core projects and autograders were primarily created by John DeNero
# (denero@cs.berkeley.edu) and Dan Klein (klein@cs.berkeley.edu).
# Student side autograding was added by Brad Miller, Nick Hay, and
# Pieter Abbeel (pabbeel@cs.berkeley.edu).
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
from codecs import open
"""
CS 188 Local Submission Autograder
Written by the CS 188 Staff
==============================================================================
_____ _ _
/ ____| | | |
| (___ | |_ ___ _ __ | |
\___ \| __/ _ \| '_ \| |
____) | || (_) | |_) |_|
|_____/ \__\___/| .__/(_)
| |
|_|
Modifying or tampering with this file is a violation of course policy.
If you're having trouble running the autograder, please contact the staff.
==============================================================================
"""
import bz2, base64
exec(bz2.decompress(base64.b64decode('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