Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
heartyTian committed Aug 31, 2017
1 parent 7b98f0a commit 31ea9e1
Show file tree
Hide file tree
Showing 254 changed files with 15,612 additions and 0 deletions.
Binary file added ABServer.jar
Binary file not shown.
Binary file added ABSoftware.jar
Binary file not shown.
4 changes: 4 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Copyright © 2014, XiaoYu (Gary) Ge, Stephen Gould, Jochen Renz, Sahan Abeyasinghe, Jim Keys, Andrew Wang, Peng Zhang. All rights reserved.
Team HeartyTian: Tian Jian Wang
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/
or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
89 changes: 89 additions & 0 deletions Readme(Server_Client)
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
ANGRYBIRDS AI AGENT FRAMEWORK
Copyright © 2014, XiaoYu (Gary) Ge, Stephen Gould, Jochen Renz, Sahan Abeyasinghe, Jim Keys, Andrew Wang, Peng Zhang. All rights reserved.
This software contains a framework for developing AI agents capable of
playing Angry Birds. The framework is composed of a javascript plugin
for the Chrome web browser and Java client/server code for interfacing
to the game and implementing the AI strategy. A sample agent is provided.

* The details of the server/client protocols can be found in ./doc/ServerClientProtocols.pdf

* We provide a sample agent communicating with the server by the pre-defined protocols. The implementation can be found in ./src/ab/demo/ClientNaiveAgent.java

* We provide a wrapper class in java that can encode/decode the communicating messages. The wrapper can be found in ./src/ab/demo/other/{ClientActionRobot.java , ClientActionRobotJava.java}

* We provide a sample C++ client that demonstrates how to connect to the server and send a doScreenShot message. It can be found in ./src/ab/demo/abClientExample.cpp

=================== Commands of the server/client version =====================================================

* Please start the server first, and then start your client.

To start the server: java -jar ABServer.jar

To start the naive agent (server/client version): java -jar ABSoftware.jar -nasc [IP]

*You do not need to specify the IP when the server is running on localhost

===================== Commands of the standalone version =======================================================

java -jar ABSoftware.jar -na // run the agent from level 1

java -jar ABSoftware.jar -na [0-21] // run the agent from the specified level.

java -jar ABSoftware.jar -na [0-21] -showMBR // run the agent with the real-time vision output (MBR segmentation)

java -jar ABSoftware.jar -na [0-21] -showReal // run the agent with the real-time vision output (Real shape segmentation)

java -jar ABSoftware.jar -showMBR // show the real-time MBR segmentation

java -jar ABSoftware.jar -showReal // show the real-time real shape segmentation

java -jar ABSoftware.jar -showTraj // show the real-time trajectory prediction

java -jar ABSoftware.jar -recordImg [directory] // save the current game image to the specified directory


================================ Outline of the source files ====================================================

The src folder contains all the java source codes of the software.

The following are the files you may want to modify:

========= Files under ./src/ab/demo/ =====================
ClientNaiveAgent.java : A server/client version of the Naive agent that interacts with the server by the pre-defined protocols

NaiveAgent.java : A standardalone implementation of the Naive agent. You can run this agent without the server.

======== Files under ./src/ab/demo/other/ ================

ActionRobot.java : A java util class for the standalone version. It provides common functions an agent would use. E.g. get the screenshot

ClientActionRobot.java : A server/client version of the java util class that encodes client messages and decodes the corresponding server messages complying with the protocols. Its subclass is ClientActionRobotJava.java which decodes the received server messages into java objects.

LoadingLevelSchema.java / RestartLevelSchema.java / ShootingSchema.java : Those files are only for the standalone version. A standalone agent can use the schemas respectively to load levels, restart levels, and launch birds.

======== Files under ./src/ab/planner/ ====================

TrajectoryPlanner.java : Implementation of the trajectory module

======= Files under ./src/ab/vision ======================

Vision.java : the entry of the vision module.

VisionMBR.java : image segmenting component that outputs a list of MBRs of a screenshot

VisionRealShape.java: image segmenting component that outputs a list of real shapes of a screenshot

======= Other Useful methods in /src/ab/utils/ABUtil.java =========================================

isSupport(ABObject object, ABObject support): returns true if support directly supports object

getSupports(ABObject object, List blocksList): returns a list containing the subset of blocksList that support object

isReachable(Vision vision, Point target, Shot shot): returns true if the target is reachable (without obstruction) by the shot

====== Files under ./src/external ===========================

ClientMessageEncoder.java : encode the client messages according to the protocols

ClientMessageTable.java : a table that maintains all the client messages and its corresponding MIDs.

36 changes: 36 additions & 0 deletions build.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="jar" name="datalab">
<!--ANT 1.7 is required -->
<property name="lib.dir" value="external"/>

<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
</path>
<target name="clean">
<delete dir="src" includes = "**/*.class"/>
</target>

<target name="compile">
<mkdir dir="src"/>
<javac srcdir="src" destdir="src" classpathref="classpath"/>
</target>


<target name="jar">
<jar destfile="ABSoftware.jar">
<manifest>
<attribute name="Main-Class" value="org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader"/>
<attribute name="Rsrc-Main-Class" value="ab.demo.HeartyTian2017MainEntry"/>
<attribute name="Class-Path" value="."/>
<attribute name="Rsrc-Class-Path" value="./ Jama-1.0.2.jar json-simple-1.1.1.jar WebSocket.jar commons-codec-1.7.jar"/>
</manifest>
<zipfileset src="external/jar-in-jar-loader.zip"/>
<fileset dir="src/"/>
<fileset dir="resources/"/>
<zipfileset dir="external" includes="Jama-1.0.2.jar"/>
<zipfileset dir="external" includes="json-simple-1.1.1.jar"/>
<zipfileset dir="external" includes="WebSocket.jar"/>
<zipfileset dir="external" includes="commons-codec-1.7.jar"/>
</jar>
</target>
</project>
34 changes: 34 additions & 0 deletions comp.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
@echo off
if "%3"=="" (
goto :aibirds
)
if "%3"=="b" (
goto :label1
)
if "%3"=="r" (
cd img
del /s "*.png"
cd ..
goto :aibirds
)
if "%3"=="rb" (
goto :label2
)else (
goto :aibirds
)
:label2
cd img
del /s "*.png"
cd ..
:label1
call ant compile
IF %ERRORLEVEL% NEQ 0 (
goto :eof
)
call ant jar
IF %ERRORLEVEL% NEQ 0 (
goto :eof
)
:aibirds
start java -jar ABServer.jar
java -jar ABSoftware.jar 127.0.0.1 %1 %2
Binary file added docs/.DS_Store
Binary file not shown.
1 change: 1 addition & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Source folder for the [GitHub Pages](https://pages.github.com) of Angry-HEX
1 change: 1 addition & 0 deletions docs/_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
theme: jekyll-theme-cayman
Binary file added docs/abv1.32/ABDoc.pdf
Binary file not shown.
Binary file added docs/abv1.32/ServerClientProtocol.pdf
Binary file not shown.
61 changes: 61 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Angry-HEX

_Angry-HEX_ is a joint development of groups at Università della Calabria ([UNICAL](http://www.mat.unical.it)), Technische Universität Wien ([TUWIEN](http://www.kr.tuwien.ac.at)), Marmara University ([MARMARA](http://www.knowlp.com)), and Max Planck Institut für Informatik ([MPI](http://www.mpi-inf.mpg.de/departments/databases-and-information-systems/)).

A distinctive characteristic of our agent is that it uses a declarative, logic programming based module for reasoning about the target to shoot at next.
It is realized as a so-called _HEX-program_, i.e., by means of Answer Set Programming (ASP) with external sources and other extensions.

## The Angry-HEX agent
Our agent, called _Angry-HEX_, builds on the Base Framework provided by the organizers and extends it with declarative means for decision making models by means of an Answer Set Programming (ASP).
Declarative logic programming controls two different layers for _Angry-HEX_: the **Tactics** layer, which plans shots, and decides how to complete a level; and the **Strategy** layer, which decides the order of levels to play and repeated attempts to solve the same level.

Tactics is declaratively realized by _HEX-programs_, i.e., an extension of ASP to incorporate external sources of computation via so-called _external atoms_.
It is implemented using the _DLVHEX_ solver and computes optimal shots based on information about the current scene and on domain knowledge modeled within the _HEX-program_.
Its _input_ comprises scene information encoded as a set of logic program facts (position, size and orientation of pigs, ice, wood and stone blocks, slingshot, etc.); its _output_ are _answer sets_ that contain a dedicated atom describing the target to hit, and further information about the required shot.
Physics simulation results and other information are accessed via external atoms.

The **Strategy** layer decides, at the end of each level, which level to play next.
This layer is also realized declaratively as an (ordinary) ASP program encoding our strategy on three priority levels: (1) each available level is played once; (2) levels where the agent score differs most from the current best score are selected; (3) levels where _Angry-HEX_ achieved a score higher than the current best scores and that have the minimum difference from the best score, are selected.
For each level, the **Strategy** layer keeps tracks of previously achieved scores and previously selected initial target objects.

## Core Team
- Francesco Calimeri [2013-2017]
- Michael Fink [2013-2015]
- Valeria Fionda [2016-2017]
- Stefano Germano [2013-2017]
- Andreas Humenberger [2014-2015]
- Giovambattista Ianni [2013-2016]
- Aldo Marzullo [2017]
- Christoph Redl [2013-2017]
- Zeynep G. Saribatur [2016-2017]
- Peter Schüller [2016-2017]
- Daria Stepanova [2014-2017]
- Andrea Tucci [2014-2015]
- Anton Wimmer [2013]

### Contacts
angryhex "AT" mat.unical.it

### Team Descriptions
- [2013](https://aibirds.org/2013-Papers/Team-Descriptions/AngryHEX.pdf)
- [2014](https://aibirds.org/2014-papers/AngryHEX-2014.pdf)
- [2015](https://aibirds.org/2014-papers/AngryHEX-2014.pdf)
- [2016]()
- [2017]()

## License
[GNU Affero General Public License](https://github.com/DeMaCS-UNICAL/Angry-HEX/blob/master/LICENSE)

## Publications
- Francesco Calimeri, Michael Fink, Stefano Germano, Andreas Humenberger, Giovambattista Ianni, Christoph Redl, Daria Stepanova, Andrea Tucci, Anton Wimmer.<br />
_"Angry-HEX: an artificial player for angry birds based on declarative knowledge bases."_<br />
IEEE Transactions on Computational Intelligence and AI in Games (TCIAIG) 8, no. 2 (2016): 128-139.
- Francesco Calimeri, Michael Fink, Stefano Germano, Giovambattista Ianni, Christoph Redl, Anton Wimmer<br />
_"AngryHEX: An Artificial Player for Angry Birds Based on Declarative Knowledge Bases."_<br />
In National Workshop and Prize on Popularize Artificial Intelligence (PAI), Turin, Italy December 5, 2013, vol. 8148, pp. 267-275. Springer, 2013<br />
**Winner of the Best Paper Award for the section "Academic and Research Experiences"**

## Useful material
- [Poster 2013](files/poster_2013.pdf)
- [Slides PAI 2013](files/slides_PAI_13.pdf)
- [Slides 2014](files/slides_2014.pdf)
Binary file added external/Jama-1.0.2.jar
Binary file not shown.
Binary file added external/WebSocket.jar
Binary file not shown.
Binary file added external/commons-codec-1.7.jar
Binary file not shown.
Binary file added external/jar-in-jar-loader.zip
Binary file not shown.
Binary file added external/json-simple-1.1.1.jar
Binary file not shown.
Binary file added img/.DS_Store
Binary file not shown.
Empty file added img/.gitkeep
Empty file.
Empty file added img/BuildingHeuristic/.gitkeep
Empty file.
Empty file added img/DynamiteHeuristic/.gitkeep
Empty file.
Empty file added img/LogWriter/.gitkeep
Empty file.
Binary file added img/LogWriter/img000008_after.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000008_before.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000009_after.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000009_before.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000010_after.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000010_before.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000011_after.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000011_before.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000012_after.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000012_before.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000013_after.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000013_before.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000014_after.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000014_before.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000017_after.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000017_before.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000018_after.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/LogWriter/img000018_before.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file added img/non/.gitkeep
Empty file.
Empty file added img/plannerCheck/.gitkeep
Empty file.
Empty file added img/planning/.gitkeep
Empty file.
Empty file added img/rea/.gitkeep
Empty file.
1 change: 1 addition & 0 deletions imgCnt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
20
28 changes: 28 additions & 0 deletions mac.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/bash
BUHEHE=1

if [ "X$1" == "Xb" ] || [ "X$2" == "Xb" ]; then
BUHEHE=0
ant compile

if [ "$?" -eq "0" ]; then
ant jar

if [ "$?" -eq "0" ]; then
BUHEHE=1
fi
fi
fi

if [ "X$BUHEHE" == "X1" ] && [ "X$1" != "Xb" ]; then
open -a /Applications/Google\ Chrome.app http://chrome.angrybirds.com/
find ./img -name "*.png" -exec rm {} \;
sleep 10
java -jar ABServer.jar &
sleep 5
java -jar ABSoftware.jar 127.0.0.1 # "$1"
PID=$(ps -A | grep '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' | head -1 | sed 's/^[ \t]*//' | cut -d" " -f 1,1)
kill -9 "$PID"
PID=$(ps -A | grep 'ABServer.jar' | head -1 | sed 's/^[ \t]*//' | cut -d" " -f 1,1)
kill -9 "$PID"
fi
9 changes: 9 additions & 0 deletions output.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
1,7,4,4,1,2,1,0,0,36,5,26,5,2,11,0,583,343,90,48,4320,11,OMITTED,3,40,0,11,0,11,0,722,308,95,83,7885,13,OMITTED,4,61,0,13,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,choosable targets : 0,4,2300,2300,2300,8
1,6,2,5,0,1,1,0,0,37,7,25,5,2,11,0,605,342,90,49,4410,11,OMITTED,3,41,0,11,0,11,0,722,308,94,83,7802,13,OMITTED,3,63,0,13,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,choosable targets : 25, num destroyable blocks on selected traj : 3,4,36770,36770,39070,9
1,1,2,5,0,1,1,0,0,33,6,23,4,1,11,0,736,327,207,64,13248,22,OMITTED,1,-1,0,22,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,choosable targets : 23, num destroyable blocks on selected traj : 5,5,5520,5520,44590,10
1,1,1,6,0,0,1,0,0,28,7,17,4,1,11,0,583,342,90,49,4410,10,OMITTED,1,-1,0,10,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,choosable targets : 7, num destroyable blocks on selected traj : 0,4,-1,-1,-1,11
2,5,5,6,0,0,5,0,0,41,34,2,3,2,10,0,641,272,157,115,18055,36,OMITTED,4,32,33,0,1,11,0,683,214,58,51,2958,5,OMITTED,1,-1,1,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,196,3,1,,,,,,,,,,,,,,,,choosable targets : 34, num destroyable blocks on selected traj : 8,4,14850,14850,14850,12
2,3,3,6,0,0,3,0,0,36,30,2,3,2,10,0,641,272,157,115,18055,31,OMITTED,2,23,29,0,1,11,0,683,215,58,50,2900,5,OMITTED,1,-1,1,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,choosable targets : 30, num destroyable blocks on selected traj : 7,4,11700,11700,26550,13
2,2,2,6,0,0,2,0,0,29,23,2,3,2,10,0,516,303,52,49,2548,5,OMITTED,1,-1,5,0,0,11,0,683,215,58,50,2900,5,OMITTED,1,-1,1,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,choosable targets : 23, num destroyable blocks on selected traj : 7,4,12390,12390,38940,14
1,7,4,4,1,2,1,0,0,37,6,26,5,2,11,0,583,343,90,48,4320,11,OMITTED,3,41,0,11,0,11,0,722,308,95,83,7885,13,OMITTED,4,61,0,13,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,choosable targets : 0,4,2300,2300,2300,17
1,6,3,5,0,2,1,0,0,37,6,26,5,2,11,0,605,342,90,49,4410,11,OMITTED,3,41,0,11,0,11,0,722,308,94,83,7802,14,OMITTED,3,63,0,14,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,choosable targets : 26, num destroyable blocks on selected traj : 3,4,36770,36770,39070,18
1 change: 1 addition & 0 deletions output_format.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
CurrentLevel,StartLevelPigCount,StartLevelBirdCount,birdOnSling,StartLevelRedCount,StartLevelYellowCount,StartLevelBlueCount,StartLevelBlackCount,StartLevelWhiteCount,StartLevelBlockCount,StartLevelIceCount,StartLevelWoodCount,StartLevelStoneCount,BuildingsCount,Building1DominantType,Building1Proportions,Building1TopX,Building1TopY,Building1Width,Building1Height,Building1Area,Building1BlocksSize,Building1IsBunkerIncluded,Building1PigsInTheBunker,Building1FurthestBlockFromPig,Building1IceCount,Building1WoodCount,Building1StoneCount,Building2DominantType,Building2Proportions,Building2TopX,Building2TopY,Building2Width,Building2Height,Building2Area,Building2BlocksSize,Building2IsBunkerIncluded,Building2PigsInTheBunker,Building2FurthestBlockFromPig,Building2IceCount,Building2WoodCount,Building2StoneCount,Building3DominantType,Building3Proportions,Building3TopX,Building3TopY,Building3Width,Building3Height,Building3Area,Building3BlocksSize,Building3IsBunkerIncluded,Building3PigsInTheBunker,Building3FurthestBlockFromPig,Building3IceCount,Building3WoodCount,Building3StoneCount,Building4DominantType,Building4Proportions,Building4TopX,Building4TopY,Building4Width,Building4Height,Building4Area,Building4BlocksSize,Building4IsBunkerIncluded,Building4PigsInTheBunker,Building4FurthestBlockFromPig,Building4IceCount,Building4WoodCount,Building4StoneCount,Building5DominantType,Building5Proportions,Building5TopX,Building5TopY,Building5Width,Building5Height,Building5Area,Building5BlocksSize,Building5IsBunkerIncluded,Building5PigsInTheBunker,Building5FurthestBlockFromPig,Building5IceCount,Building5WoodCount,Building5StoneCount,BunkersCount,Bunker1IsStuffAbove,Bunker1IsStuffBelow,Bunker1DominantType,Bunker1Proportions,Bunker1TopX,Bunker1TopY,Bunker1Width,Bunker1Height,Bunker1Area,Bunker1LeftSideSize,Bunker1TotalSize,Bunker1DistanceBelowPig,Bunker1IceCount,Bunker1WoodCount,Bunker1StoneCount,Bunker2IsStuffAbove,Bunker2IsStuffBelow,Bunker2DominantType,Bunker2Proportions,Bunker2TopX,Bunker2TopY,Bunker2Width,Bunker2Height,Bunker2Area,Bunker2LeftSideSize,Bunker2TotalSize,Bunker2DistanceBelowPig,Bunker2IceCount,Bunker2WoodCount,Bunker2StoneCount,Bunker3IsStuffAbove,Bunker3IsStuffBelow,Bunker3DominantType,Bunker3Proportions,Bunker3TopX,Bunker3TopY,Bunker3Width,Bunker3Height,Bunker3Area,Bunker3LeftSideSize,Bunker3TotalSize,Bunker3DistanceBelowPig,Bunker3IceCount,Bunker3WoodCount,Bunker3StoneCount,Bunker4IsStuffAbove,Bunker4IsStuffBelow,Bunker4DominantType,Bunker4Proportions,Bunker4TopX,Bunker4TopY,Bunker4Width,Bunker4Height,Bunker4Area,Bunker4LeftSideSize,Bunker4TotalSize,Bunker4DistanceBelowPig,Bunker4IceCount,Bunker4WoodCount,Bunker4StoneCount,supportBeamsCount,SupportBeam1ObjectType,SupportBeam1Area,SupportBeam1DistanceBelowRegular,SupportBeam1DistanceBelow,SupportBeam2ObjectType,SupportBeam2Area,SupportBeam2DistanceBelowRegular,SupportBeam2DistanceBelow,SupportBeam3ObjectType,SupportBeam3Area,SupportBeam3DistanceBelowRegular,SupportBeam3DistanceBelow,SupportBeam4ObjectType,SupportBeam4Area,SupportBeam4DistanceBelowRegular,SupportBeam4DistanceBelow,SupportBeam5ObjectType,SupportBeam5Area,SupportBeam5DistanceBelowRegular,SupportBeam5DistanceBelow,RoundObjectsCount,Round1CircleArea,Round1NoOfPigsBeneathCircle,Round1MicroHeuristicId,Round2CircleArea,Round2NoOfPigsBeneathCircle,Round2MicroHeuristicId,Round3CircleArea,Round3NoOfPigsBeneathCircle,Round3MicroHeuristicId,Round4CircleArea,Round4NoOfPigsBeneathCircle,Round4MicroHeuristicId,Round5CircleArea,Round5NoOfPigsBeneathCircle,Round5MicroHeuristicId,Round6CircleArea,Round6NoOfPigsBeneathCircle,Round6MicroHeuristicId,HeuristicType,ChangeScore,ChangeScore W/O pigs,TotalScore,ImgCount
4 changes: 4 additions & 0 deletions plugin/jquery-1.7.2.min.js

Large diffs are not rendered by default.

12 changes: 12 additions & 0 deletions plugin/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"name": "Angry Birds Interface",
"version": "1",
"manifest_version": 2,
"content_scripts": [
{
"matches": ["http://chrome.angrybirds.com/"],
"css": ["style.css"],
"js": ["jquery-1.7.2.min.js", "script.js"]
}
]
}
Loading

0 comments on commit 31ea9e1

Please sign in to comment.