Initial commit

This commit is contained in:
Sebastian Seedorf
2020-02-16 16:40:20 +01:00
commit b82e014bd4
30 changed files with 8519 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RiderRiderContentModelStore">
<excludedPaths />
</component>
</project>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/.idea.BrainArmyAnts/riderModule.iml" filepath="$PROJECT_DIR$/.idea/.idea.BrainArmyAnts/riderModule.iml" />
</modules>
</component>
</project>

View File

@@ -0,0 +1,928 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="a5168c10-7772-4fc2-94bf-c53513007a8b" name="Default" comment="" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="DatabaseView">
<option name="SHOW_INTERMEDIATE" value="true" />
<option name="GROUP_SCHEMA" value="true" />
<option name="GROUP_CONTENTS" value="false" />
<option name="SORT_POSITIONED" value="false" />
<option name="SHOW_TABLE_DETAILS" value="true" />
<option name="SHOW_EMPTY_GROUPS" value="false" />
<option name="AUTO_SCROLL_FROM_SOURCE" value="false" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
<component name="FavoritesManager">
<favorites_list name="BrainArmyAnts" />
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="375">
<file leaf-file-name="BrainArmyAntsKlasse.cs" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/BrainArmyAntsKlasse.cs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="103">
<caret line="540" column="28" lean-forward="true" selection-start-line="540" selection-start-column="28" selection-end-line="540" selection-end-column="28" />
<folding>
<marker date="1507739279818" expanded="false" signature="6:191" ph="..." />
<marker date="1507739279818" expanded="true" signature="229:20965" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="236:855" ph="/// Diese Datei enthält die Beschreibung für deine Ameise. Die einzelnen Code-Blöcke ... " />
<marker date="1507739279818" expanded="true" signature="860:1190" ph="[...]" />
<marker date="1507739279818" expanded="true" signature="1196:1474" ph="/* Kasten stellen &quot;Berufsgruppen&quot; innerhalb deines Ameisenvolkes dar. Du kannst hier mit ... */" />
<marker date="1507739279818" expanded="true" signature="1479:3322" ph="[...]" />
<marker date="1507739279818" expanded="true" signature="3374:20189" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="3989:5089" ph="Kasten" />
<marker date="1507739279818" expanded="true" signature="4013:4471" ph="/// Jedes mal, wenn eine neue Ameise geboren wird, muss ihre Berufsgruppe ... " />
<marker date="1507739279818" expanded="true" signature="4548:5069" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="4648:4714" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="5099:8198" ph="Fortbewegung" />
<marker date="1507739279818" expanded="true" signature="5129:5389" ph="/// Wenn die Ameise keinerlei Aufträge hat, wartet sie auf neue Aufgaben. Um dir das ... " />
<marker date="1507739279818" expanded="true" signature="5427:5447" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="5457:5667" ph="/// Erreicht eine Ameise ein drittel ihrer Laufreichweite, wird diese Methode aufgerufen. ... " />
<marker date="1507739279818" expanded="true" signature="5707:5727" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="5737:6124" ph="/// Wenn eine Ameise stirbt, wird diese Methode aufgerufen. Man erfährt dadurch, wie ... " />
<marker date="1507739279818" expanded="true" signature="6185:6454" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6254:6333" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6379:6444" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6464:6836" ph="/// Diese Methode wird in jeder Simulationsrunde aufgerufen - ungeachtet von zusätzlichen ... " />
<marker date="1507739279818" expanded="true" signature="6872:8178" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6937:7019" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7058:7620" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7110:7180" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7201:7606" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7296:7478" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7503:7588" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7649:8045" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7775:7937" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7958:8031" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="8062:8166" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="8208:10431" ph="Nahrung" />
<marker date="1507739279818" expanded="true" signature="8233:8580" ph="/// Sobald eine Ameise innerhalb ihres Sichtradius einen Apfel erspäht wird ... " />
<marker date="1507739279818" expanded="true" signature="8626:8680" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="8690:9050" ph="/// Sobald eine Ameise innerhalb ihres Sichtradius einen Zuckerhügel erspäht wird ... " />
<marker date="1507739279818" expanded="true" signature="9100:9189" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="9199:9611" ph="/// Hat die Ameise ein Stück Obst als Ziel festgelegt, wird diese Methode aufgerufen, ... " />
<marker date="1507739279818" expanded="true" signature="9664:9776" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="9710:9766" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="9786:10205" ph="/// Hat die Ameise eine Zuckerhügel als Ziel festgelegt, wird diese Methode aufgerufen, ... " />
<marker date="1507739279818" expanded="true" signature="10262:10411" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="10308:10401" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="10441:12073" ph="Kommunikation" />
<marker date="1507739279818" expanded="true" signature="10472:10910" ph="/// Markierungen, die von anderen Ameisen platziert werden, können von befreundeten Ameisen ... " />
<marker date="1507739279818" expanded="true" signature="10975:10995" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="11005:11425" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="11481:11502" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="11512:11972" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="12033:12053" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="12083:14384" ph="Kampf" />
<marker date="1507739279818" expanded="true" signature="12106:12530" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="12585:12872" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="12608:12666" ph="/* if (Kaste == &quot;Sammler&quot;) ... */" />
<marker date="1507739279818" expanded="true" signature="12690:12726" ph="/* } ... */" />
<marker date="1507739279818" expanded="true" signature="12800:12862" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="12882:13251" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="13304:13324" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="13334:13772" ph="/// Es kann vorkommen, dass feindliche Lebewesen eine Ameise aktiv angreifen. Sollte ... " />
<marker date="1507739279818" expanded="true" signature="13832:13852" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="13862:14285" ph="/// Es kann vorkommen, dass feindliche Lebewesen eine Ameise aktiv angreifen. Sollte ... " />
<marker date="1507739279818" expanded="true" signature="14343:14363" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14394:20182" ph="Eigene" />
<marker date="1507739279818" expanded="true" signature="14452:16992" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14692:15812" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14769:14884" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14932:15304" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15357:15653" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15685:15798" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15852:16959" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15911:16357" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="16407:16899" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="17044:17431" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="17466:17968" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="17505:17627" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18029:18230" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18151:18220" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18285:18439" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18347:18429" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18498:18659" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18582:18649" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18721:19333" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18784:19323" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18881:18942" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18963:19309" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19035:19131" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19192:19291" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19378:19721" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19439:19711" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19535:19596" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19617:19697" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19767:20161" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19829:20151" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19933:19994" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20015:20137" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20219:20963" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20350:20450" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20492:20551" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20617:20711" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20776:20832" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20892:20957" ph="{...}" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Basisameise.cs" pinned="false" current-in-tab="false">
<entry file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/84FEEEB9-8F74-4B84-9B17-DA8CFC1AB8E5/95/68b28aee/Basisameise.cs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="16" column="41" lean-forward="false" selection-start-line="16" selection-start-column="41" selection-end-line="16" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="CoreAnt.cs" pinned="false" current-in-tab="false">
<entry file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/84FEEEB9-8F74-4B84-9B17-DA8CFC1AB8E5/c6/b5d9e0b8/CoreAnt.cs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="14" column="44" lean-forward="false" selection-start-line="14" selection-start-column="34" selection-end-line="14" selection-end-column="44" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>braucht</find>
<find>brauchtnoch</find>
<find>remove</find>
<find>sprühe</find>
<find>O</find>
<find>gra</find>
<find>gest</find>
<find>istge</find>
<find>grei</find>
<find>feind</find>
<find>bestimme</find>
<find>tick</find>
<find>sieht</find>
</findStrings>
</component>
<component name="HighlightingSettingsPerFile">
<setting file="file://$PROJECT_DIR$/BrainArmyAntsKlasse.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/84FEEEB9-8F74-4B84-9B17-DA8CFC1AB8E5/95/68b28aee/Basisameise.cs" root0="SKIP_INSPECTION" />
<setting file="file://$PROJECT_DIR$/Properties/AssemblyInfo.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/84FEEEB9-8F74-4B84-9B17-DA8CFC1AB8E5/3d/781d1781/CoreFruit.cs" root0="SKIP_INSPECTION" />
<setting file="file://$PROJECT_DIR$/BrainArmyAntsKlasse - Copy.txt" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$USER_HOME$/Downloads/HalloAntMeKlasse.cs" root0="SKIP_INSPECTION" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/84FEEEB9-8F74-4B84-9B17-DA8CFC1AB8E5/c6/b5d9e0b8/CoreAnt.cs" root0="SKIP_INSPECTION" />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/84FEEEB9-8F74-4B84-9B17-DA8CFC1AB8E5/3d/781d1781/CoreFruit.cs" />
<option value="$USER_HOME$/Downloads/HalloAntMeKlasse.cs" />
<option value="$PROJECT_DIR$/BrainArmyAntsKlasse - Copy.cs" />
<option value="$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/84FEEEB9-8F74-4B84-9B17-DA8CFC1AB8E5/95/68b28aee/Basisameise.cs" />
<option value="$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/84FEEEB9-8F74-4B84-9B17-DA8CFC1AB8E5/c6/b5d9e0b8/CoreAnt.cs" />
<option value="$PROJECT_DIR$/BrainArmyAntsKlasse.cs" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="-9" />
<option name="y" value="-9" />
<option name="width" value="1938" />
<option name="height" value="1048" />
</component>
<component name="ProjectView">
<navigator currentView="SolutionExplorer" proportions="" version="1">
<flattenPackages />
<showMembers />
<showModules />
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
<manualOrder />
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="SolutionExplorer">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" />
<option name="myItemType" value="com.jetbrains.rider.projectView.solutionExplorer.SolutionExplorerViewPane$ProjectViewPaneTreeStructure$createRoot$1" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="BrainArmyAnts (1 project)" />
<option name="myItemType" value="com.jetbrains.rider.projectView.solutionExplorer.SolutionExplorerNodeRider" />
</PATH_ELEMENT>
</PATH>
</subPane>
<option name="show-file-system" value="false" />
<option name="show-all-items" value="false" />
</pane>
<pane id="Scratches" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="settings.editor.selected.configurable" value="preferences.lookFeel" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/BrainArmyAntsKlasse.cs" />
<property name="two.files.diff.last.used.file" value="$PROJECT_DIR$/BrainArmyAntsKlasse.cs" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager" selected=".NET Project.Default">
<configuration default="true" type="DotNetProject" factoryName=".NET Project">
<option name="PROJECT_PATH" value="" />
<option name="PROJECT_KIND" value="None" />
<option name="PROJECT_TFM" value="" />
<option name="EXE_PATH" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="USE_MONO" value="0" />
<option name="USE_EXTERNAL_CONSOLE" value="0" />
<envs />
<method />
</configuration>
<configuration default="true" type="JavaScriptTestRunnerJest" factoryName="Jest">
<node-interpreter value="project" />
<working-dir value="" />
<envs />
<scope-kind value="ALL" />
<method />
</configuration>
<configuration default="true" type="JavaScriptTestRunnerProtractor" factoryName="Protractor">
<config-file value="" />
<node-interpreter value="project" />
<envs />
<method />
</configuration>
<configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
<method />
</configuration>
<configuration default="true" type="NodeJSConfigurationType" factoryName="Node.js" path-to-node="project" working-dir="">
<method />
</configuration>
<configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
<node-interpreter>project</node-interpreter>
<node-options />
<gulpfile />
<tasks />
<arguments />
<envs />
<method />
</configuration>
<configuration default="true" type="js.build_tools.npm" factoryName="npm">
<command value="run" />
<scripts />
<node-interpreter value="project" />
<envs />
<method />
</configuration>
<configuration default="true" type="mocha-javascript-test-runner" factoryName="Mocha">
<node-interpreter>project</node-interpreter>
<node-options />
<working-directory />
<pass-parent-env>true</pass-parent-env>
<envs />
<ui />
<extra-mocha-options />
<test-kind>DIRECTORY</test-kind>
<test-directory />
<recursive>false</recursive>
<method />
</configuration>
<configuration default="false" name="Default" type="DotNetProject" factoryName=".NET Project">
<option name="PROJECT_PATH" value="" />
<option name="PROJECT_KIND" value="None" />
<option name="PROJECT_TFM" value="" />
<option name="EXE_PATH" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="USE_MONO" value="0" />
<option name="USE_EXTERNAL_CONSOLE" value="0" />
<envs />
<method />
</configuration>
<list size="1">
<item index="0" class="java.lang.String" itemvalue=".NET Project.Default" />
</list>
</component>
<component name="ShelveChangesManager" show_recycled="false">
<option name="remove_strategy" value="false" />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="a5168c10-7772-4fc2-94bf-c53513007a8b" name="Default" comment="" />
<created>1507277883927</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1507277883927</updated>
<workItem from="1507277888102" duration="241000" />
<workItem from="1507278221639" duration="10000" />
<workItem from="1507280015716" duration="461000" />
<workItem from="1507280504206" duration="476000" />
<workItem from="1507281172595" duration="651000" />
<workItem from="1507289979666" duration="15274000" />
<workItem from="1507321524532" duration="12810000" />
<workItem from="1507535665440" duration="10148000" />
<workItem from="1507726605540" duration="7316000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="47387000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
<is-autoscroll-to-source value="true" />
</todo-panel>
<todo-panel id="all">
<are-packages-shown value="true" />
<is-autoscroll-to-source value="true" />
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="-9" y="-9" width="1938" height="1048" extended-state="6" />
<layout>
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Errors In Solution" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Unit Tests" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="NuGet" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.18489583" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Build" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.118551046" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="processedProjectFiles" value="true" />
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<option name="time" value="6" />
</breakpoint-manager>
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/BrainArmyAntsKlasse.cs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<marker date="1507739279818" expanded="false" signature="6:191" ph="..." />
<marker date="1507739279818" expanded="true" signature="229:20965" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="236:855" ph="/// Diese Datei enthält die Beschreibung für deine Ameise. Die einzelnen Code-Blöcke ... " />
<marker date="1507739279818" expanded="true" signature="860:1190" ph="[...]" />
<marker date="1507739279818" expanded="true" signature="1196:1474" ph="/* Kasten stellen &quot;Berufsgruppen&quot; innerhalb deines Ameisenvolkes dar. Du kannst hier mit ... */" />
<marker date="1507739279818" expanded="true" signature="1479:3322" ph="[...]" />
<marker date="1507739279818" expanded="true" signature="3374:20189" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="3989:5089" ph="Kasten" />
<marker date="1507739279818" expanded="true" signature="4013:4471" ph="/// Jedes mal, wenn eine neue Ameise geboren wird, muss ihre Berufsgruppe ... " />
<marker date="1507739279818" expanded="true" signature="4548:5069" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="4648:4714" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="5099:8198" ph="Fortbewegung" />
<marker date="1507739279818" expanded="true" signature="5129:5389" ph="/// Wenn die Ameise keinerlei Aufträge hat, wartet sie auf neue Aufgaben. Um dir das ... " />
<marker date="1507739279818" expanded="true" signature="5427:5447" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="5457:5667" ph="/// Erreicht eine Ameise ein drittel ihrer Laufreichweite, wird diese Methode aufgerufen. ... " />
<marker date="1507739279818" expanded="true" signature="5707:5727" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="5737:6124" ph="/// Wenn eine Ameise stirbt, wird diese Methode aufgerufen. Man erfährt dadurch, wie ... " />
<marker date="1507739279818" expanded="true" signature="6185:6454" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6254:6333" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6379:6444" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6464:6836" ph="/// Diese Methode wird in jeder Simulationsrunde aufgerufen - ungeachtet von zusätzlichen ... " />
<marker date="1507739279818" expanded="true" signature="6872:8178" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6937:7019" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7058:7620" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7110:7180" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7201:7606" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7296:7478" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7503:7588" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7649:8045" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7775:7937" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7958:8031" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="8062:8166" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="8208:10431" ph="Nahrung" />
<marker date="1507739279818" expanded="true" signature="8233:8580" ph="/// Sobald eine Ameise innerhalb ihres Sichtradius einen Apfel erspäht wird ... " />
<marker date="1507739279818" expanded="true" signature="8626:8680" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="8690:9050" ph="/// Sobald eine Ameise innerhalb ihres Sichtradius einen Zuckerhügel erspäht wird ... " />
<marker date="1507739279818" expanded="true" signature="9100:9189" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="9199:9611" ph="/// Hat die Ameise ein Stück Obst als Ziel festgelegt, wird diese Methode aufgerufen, ... " />
<marker date="1507739279818" expanded="true" signature="9664:9776" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="9710:9766" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="9786:10205" ph="/// Hat die Ameise eine Zuckerhügel als Ziel festgelegt, wird diese Methode aufgerufen, ... " />
<marker date="1507739279818" expanded="true" signature="10262:10411" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="10308:10401" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="10441:12073" ph="Kommunikation" />
<marker date="1507739279818" expanded="true" signature="10472:10910" ph="/// Markierungen, die von anderen Ameisen platziert werden, können von befreundeten Ameisen ... " />
<marker date="1507739279818" expanded="true" signature="10975:10995" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="11005:11425" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="11481:11502" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="11512:11972" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="12033:12053" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="12083:14384" ph="Kampf" />
<marker date="1507739279818" expanded="true" signature="12106:12530" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="12585:12872" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="12608:12666" ph="/* if (Kaste == &quot;Sammler&quot;) ... */" />
<marker date="1507739279818" expanded="true" signature="12690:12726" ph="/* } ... */" />
<marker date="1507739279818" expanded="true" signature="12800:12862" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="12882:13251" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="13304:13324" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="13334:13772" ph="/// Es kann vorkommen, dass feindliche Lebewesen eine Ameise aktiv angreifen. Sollte ... " />
<marker date="1507739279818" expanded="true" signature="13832:13852" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="13862:14285" ph="/// Es kann vorkommen, dass feindliche Lebewesen eine Ameise aktiv angreifen. Sollte ... " />
<marker date="1507739279818" expanded="true" signature="14343:14363" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14394:20182" ph="Eigene" />
<marker date="1507739279818" expanded="true" signature="14452:16992" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14692:15812" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14769:14884" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14932:15304" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15357:15653" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15685:15798" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15852:16959" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15911:16357" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="16407:16899" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="17044:17431" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="17466:17968" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="17505:17627" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18029:18230" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18151:18220" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18285:18439" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18347:18429" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18498:18659" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18582:18649" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18721:19333" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18784:19323" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18881:18942" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18963:19309" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19035:19131" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19192:19291" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19378:19721" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19439:19711" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19535:19596" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19617:19697" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19767:20161" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19829:20151" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19933:19994" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20015:20137" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20219:20963" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20350:20450" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20492:20551" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20617:20711" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20776:20832" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20892:20957" ph="{...}" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/84FEEEB9-8F74-4B84-9B17-DA8CFC1AB8E5/95/68b28aee/Basisameise.cs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="336">
<caret line="16" column="41" lean-forward="false" selection-start-line="16" selection-start-column="41" selection-end-line="16" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/84FEEEB9-8F74-4B84-9B17-DA8CFC1AB8E5/c6/b5d9e0b8/CoreAnt.cs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="294">
<caret line="14" column="44" lean-forward="false" selection-start-line="14" selection-start-column="34" selection-end-line="14" selection-end-column="44" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/BrainArmyAntsKlasse.cs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<marker date="1507739279818" expanded="false" signature="6:191" ph="..." />
<marker date="1507739279818" expanded="true" signature="229:20965" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="236:855" ph="/// Diese Datei enthält die Beschreibung für deine Ameise. Die einzelnen Code-Blöcke ... " />
<marker date="1507739279818" expanded="true" signature="860:1190" ph="[...]" />
<marker date="1507739279818" expanded="true" signature="1196:1474" ph="/* Kasten stellen &quot;Berufsgruppen&quot; innerhalb deines Ameisenvolkes dar. Du kannst hier mit ... */" />
<marker date="1507739279818" expanded="true" signature="1479:3322" ph="[...]" />
<marker date="1507739279818" expanded="true" signature="3374:20189" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="3989:5089" ph="Kasten" />
<marker date="1507739279818" expanded="true" signature="4013:4471" ph="/// Jedes mal, wenn eine neue Ameise geboren wird, muss ihre Berufsgruppe ... " />
<marker date="1507739279818" expanded="true" signature="4548:5069" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="4648:4714" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="5099:8198" ph="Fortbewegung" />
<marker date="1507739279818" expanded="true" signature="5129:5389" ph="/// Wenn die Ameise keinerlei Aufträge hat, wartet sie auf neue Aufgaben. Um dir das ... " />
<marker date="1507739279818" expanded="true" signature="5427:5447" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="5457:5667" ph="/// Erreicht eine Ameise ein drittel ihrer Laufreichweite, wird diese Methode aufgerufen. ... " />
<marker date="1507739279818" expanded="true" signature="5707:5727" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="5737:6124" ph="/// Wenn eine Ameise stirbt, wird diese Methode aufgerufen. Man erfährt dadurch, wie ... " />
<marker date="1507739279818" expanded="true" signature="6185:6454" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6254:6333" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6379:6444" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6464:6836" ph="/// Diese Methode wird in jeder Simulationsrunde aufgerufen - ungeachtet von zusätzlichen ... " />
<marker date="1507739279818" expanded="true" signature="6872:8178" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6937:7019" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7058:7620" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7110:7180" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7201:7606" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7296:7478" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7503:7588" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7649:8045" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7775:7937" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7958:8031" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="8062:8166" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="8208:10431" ph="Nahrung" />
<marker date="1507739279818" expanded="true" signature="8233:8580" ph="/// Sobald eine Ameise innerhalb ihres Sichtradius einen Apfel erspäht wird ... " />
<marker date="1507739279818" expanded="true" signature="8626:8680" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="8690:9050" ph="/// Sobald eine Ameise innerhalb ihres Sichtradius einen Zuckerhügel erspäht wird ... " />
<marker date="1507739279818" expanded="true" signature="9100:9189" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="9199:9611" ph="/// Hat die Ameise ein Stück Obst als Ziel festgelegt, wird diese Methode aufgerufen, ... " />
<marker date="1507739279818" expanded="true" signature="9664:9776" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="9710:9766" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="9786:10205" ph="/// Hat die Ameise eine Zuckerhügel als Ziel festgelegt, wird diese Methode aufgerufen, ... " />
<marker date="1507739279818" expanded="true" signature="10262:10411" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="10308:10401" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="10441:12073" ph="Kommunikation" />
<marker date="1507739279818" expanded="true" signature="10472:10910" ph="/// Markierungen, die von anderen Ameisen platziert werden, können von befreundeten Ameisen ... " />
<marker date="1507739279818" expanded="true" signature="10975:10995" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="11005:11425" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="11481:11502" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="11512:11972" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="12033:12053" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="12083:14384" ph="Kampf" />
<marker date="1507739279818" expanded="true" signature="12106:12530" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="12585:12872" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="12608:12666" ph="/* if (Kaste == &quot;Sammler&quot;) ... */" />
<marker date="1507739279818" expanded="true" signature="12690:12726" ph="/* } ... */" />
<marker date="1507739279818" expanded="true" signature="12800:12862" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="12882:13251" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="13304:13324" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="13334:13772" ph="/// Es kann vorkommen, dass feindliche Lebewesen eine Ameise aktiv angreifen. Sollte ... " />
<marker date="1507739279818" expanded="true" signature="13832:13852" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="13862:14285" ph="/// Es kann vorkommen, dass feindliche Lebewesen eine Ameise aktiv angreifen. Sollte ... " />
<marker date="1507739279818" expanded="true" signature="14343:14363" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14394:20182" ph="Eigene" />
<marker date="1507739279818" expanded="true" signature="14452:16992" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14692:15812" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14769:14884" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14932:15304" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15357:15653" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15685:15798" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15852:16959" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15911:16357" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="16407:16899" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="17044:17431" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="17466:17968" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="17505:17627" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18029:18230" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18151:18220" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18285:18439" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18347:18429" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18498:18659" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18582:18649" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18721:19333" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18784:19323" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18881:18942" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18963:19309" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19035:19131" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19192:19291" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19378:19721" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19439:19711" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19535:19596" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19617:19697" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19767:20161" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19829:20151" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19933:19994" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20015:20137" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20219:20963" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20350:20450" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20492:20551" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20617:20711" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20776:20832" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20892:20957" ph="{...}" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Properties/AssemblyInfo.cs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="231">
<caret line="13" column="28" lean-forward="false" selection-start-line="13" selection-start-column="28" selection-end-line="13" selection-end-column="28" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/BrainArmyAntsKlasse.cs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<marker date="1507739279818" expanded="false" signature="6:191" ph="..." />
<marker date="1507739279818" expanded="true" signature="229:20965" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="236:855" ph="/// Diese Datei enthält die Beschreibung für deine Ameise. Die einzelnen Code-Blöcke ... " />
<marker date="1507739279818" expanded="true" signature="860:1190" ph="[...]" />
<marker date="1507739279818" expanded="true" signature="1196:1474" ph="/* Kasten stellen &quot;Berufsgruppen&quot; innerhalb deines Ameisenvolkes dar. Du kannst hier mit ... */" />
<marker date="1507739279818" expanded="true" signature="1479:3322" ph="[...]" />
<marker date="1507739279818" expanded="true" signature="3374:20189" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="3989:5089" ph="Kasten" />
<marker date="1507739279818" expanded="true" signature="4013:4471" ph="/// Jedes mal, wenn eine neue Ameise geboren wird, muss ihre Berufsgruppe ... " />
<marker date="1507739279818" expanded="true" signature="4548:5069" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="4648:4714" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="5099:8198" ph="Fortbewegung" />
<marker date="1507739279818" expanded="true" signature="5129:5389" ph="/// Wenn die Ameise keinerlei Aufträge hat, wartet sie auf neue Aufgaben. Um dir das ... " />
<marker date="1507739279818" expanded="true" signature="5427:5447" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="5457:5667" ph="/// Erreicht eine Ameise ein drittel ihrer Laufreichweite, wird diese Methode aufgerufen. ... " />
<marker date="1507739279818" expanded="true" signature="5707:5727" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="5737:6124" ph="/// Wenn eine Ameise stirbt, wird diese Methode aufgerufen. Man erfährt dadurch, wie ... " />
<marker date="1507739279818" expanded="true" signature="6185:6454" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6254:6333" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6379:6444" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6464:6836" ph="/// Diese Methode wird in jeder Simulationsrunde aufgerufen - ungeachtet von zusätzlichen ... " />
<marker date="1507739279818" expanded="true" signature="6872:8178" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6937:7019" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7058:7620" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7110:7180" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7201:7606" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7296:7478" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7503:7588" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7649:8045" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7775:7937" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7958:8031" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="8062:8166" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="8208:10431" ph="Nahrung" />
<marker date="1507739279818" expanded="true" signature="8233:8580" ph="/// Sobald eine Ameise innerhalb ihres Sichtradius einen Apfel erspäht wird ... " />
<marker date="1507739279818" expanded="true" signature="8626:8680" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="8690:9050" ph="/// Sobald eine Ameise innerhalb ihres Sichtradius einen Zuckerhügel erspäht wird ... " />
<marker date="1507739279818" expanded="true" signature="9100:9189" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="9199:9611" ph="/// Hat die Ameise ein Stück Obst als Ziel festgelegt, wird diese Methode aufgerufen, ... " />
<marker date="1507739279818" expanded="true" signature="9664:9776" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="9710:9766" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="9786:10205" ph="/// Hat die Ameise eine Zuckerhügel als Ziel festgelegt, wird diese Methode aufgerufen, ... " />
<marker date="1507739279818" expanded="true" signature="10262:10411" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="10308:10401" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="10441:12073" ph="Kommunikation" />
<marker date="1507739279818" expanded="true" signature="10472:10910" ph="/// Markierungen, die von anderen Ameisen platziert werden, können von befreundeten Ameisen ... " />
<marker date="1507739279818" expanded="true" signature="10975:10995" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="11005:11425" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="11481:11502" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="11512:11972" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="12033:12053" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="12083:14384" ph="Kampf" />
<marker date="1507739279818" expanded="true" signature="12106:12530" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="12585:12872" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="12608:12666" ph="/* if (Kaste == &quot;Sammler&quot;) ... */" />
<marker date="1507739279818" expanded="true" signature="12690:12726" ph="/* } ... */" />
<marker date="1507739279818" expanded="true" signature="12800:12862" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="12882:13251" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="13304:13324" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="13334:13772" ph="/// Es kann vorkommen, dass feindliche Lebewesen eine Ameise aktiv angreifen. Sollte ... " />
<marker date="1507739279818" expanded="true" signature="13832:13852" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="13862:14285" ph="/// Es kann vorkommen, dass feindliche Lebewesen eine Ameise aktiv angreifen. Sollte ... " />
<marker date="1507739279818" expanded="true" signature="14343:14363" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14394:20182" ph="Eigene" />
<marker date="1507739279818" expanded="true" signature="14452:16992" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14692:15812" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14769:14884" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14932:15304" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15357:15653" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15685:15798" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15852:16959" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15911:16357" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="16407:16899" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="17044:17431" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="17466:17968" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="17505:17627" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18029:18230" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18151:18220" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18285:18439" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18347:18429" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18498:18659" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18582:18649" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18721:19333" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18784:19323" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18881:18942" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18963:19309" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19035:19131" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19192:19291" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19378:19721" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19439:19711" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19535:19596" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19617:19697" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19767:20161" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19829:20151" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19933:19994" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20015:20137" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20219:20963" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20350:20450" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20492:20551" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20617:20711" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20776:20832" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20892:20957" ph="{...}" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Properties/AssemblyInfo.cs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="231">
<caret line="13" column="28" lean-forward="false" selection-start-line="13" selection-start-column="28" selection-end-line="13" selection-end-column="28" />
</state>
</provider>
</entry>
<entry file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/84FEEEB9-8F74-4B84-9B17-DA8CFC1AB8E5/3d/781d1781/CoreFruit.cs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="294">
<caret line="43" column="18" lean-forward="false" selection-start-line="43" selection-start-column="18" selection-end-line="43" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Properties/AssemblyInfo.cs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="231">
<caret line="13" column="28" lean-forward="false" selection-start-line="13" selection-start-column="28" selection-end-line="13" selection-end-column="28" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/Downloads/HalloAntMeKlasse.cs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/BrainArmyAntsKlasse - Copy.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/84FEEEB9-8F74-4B84-9B17-DA8CFC1AB8E5/95/68b28aee/Basisameise.cs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="16" column="41" lean-forward="false" selection-start-line="16" selection-start-column="41" selection-end-line="16" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/84FEEEB9-8F74-4B84-9B17-DA8CFC1AB8E5/c6/b5d9e0b8/CoreAnt.cs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="14" column="44" lean-forward="false" selection-start-line="14" selection-start-column="34" selection-end-line="14" selection-end-column="44" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/BrainArmyAntsKlasse.cs">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="103">
<caret line="540" column="28" lean-forward="true" selection-start-line="540" selection-start-column="28" selection-end-line="540" selection-end-column="28" />
<folding>
<marker date="1507739279818" expanded="false" signature="6:191" ph="..." />
<marker date="1507739279818" expanded="true" signature="229:20965" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="236:855" ph="/// Diese Datei enthält die Beschreibung für deine Ameise. Die einzelnen Code-Blöcke ... " />
<marker date="1507739279818" expanded="true" signature="860:1190" ph="[...]" />
<marker date="1507739279818" expanded="true" signature="1196:1474" ph="/* Kasten stellen &quot;Berufsgruppen&quot; innerhalb deines Ameisenvolkes dar. Du kannst hier mit ... */" />
<marker date="1507739279818" expanded="true" signature="1479:3322" ph="[...]" />
<marker date="1507739279818" expanded="true" signature="3374:20189" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="3989:5089" ph="Kasten" />
<marker date="1507739279818" expanded="true" signature="4013:4471" ph="/// Jedes mal, wenn eine neue Ameise geboren wird, muss ihre Berufsgruppe ... " />
<marker date="1507739279818" expanded="true" signature="4548:5069" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="4648:4714" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="5099:8198" ph="Fortbewegung" />
<marker date="1507739279818" expanded="true" signature="5129:5389" ph="/// Wenn die Ameise keinerlei Aufträge hat, wartet sie auf neue Aufgaben. Um dir das ... " />
<marker date="1507739279818" expanded="true" signature="5427:5447" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="5457:5667" ph="/// Erreicht eine Ameise ein drittel ihrer Laufreichweite, wird diese Methode aufgerufen. ... " />
<marker date="1507739279818" expanded="true" signature="5707:5727" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="5737:6124" ph="/// Wenn eine Ameise stirbt, wird diese Methode aufgerufen. Man erfährt dadurch, wie ... " />
<marker date="1507739279818" expanded="true" signature="6185:6454" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6254:6333" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6379:6444" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6464:6836" ph="/// Diese Methode wird in jeder Simulationsrunde aufgerufen - ungeachtet von zusätzlichen ... " />
<marker date="1507739279818" expanded="true" signature="6872:8178" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="6937:7019" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7058:7620" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7110:7180" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7201:7606" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7296:7478" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7503:7588" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7649:8045" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7775:7937" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="7958:8031" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="8062:8166" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="8208:10431" ph="Nahrung" />
<marker date="1507739279818" expanded="true" signature="8233:8580" ph="/// Sobald eine Ameise innerhalb ihres Sichtradius einen Apfel erspäht wird ... " />
<marker date="1507739279818" expanded="true" signature="8626:8680" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="8690:9050" ph="/// Sobald eine Ameise innerhalb ihres Sichtradius einen Zuckerhügel erspäht wird ... " />
<marker date="1507739279818" expanded="true" signature="9100:9189" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="9199:9611" ph="/// Hat die Ameise ein Stück Obst als Ziel festgelegt, wird diese Methode aufgerufen, ... " />
<marker date="1507739279818" expanded="true" signature="9664:9776" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="9710:9766" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="9786:10205" ph="/// Hat die Ameise eine Zuckerhügel als Ziel festgelegt, wird diese Methode aufgerufen, ... " />
<marker date="1507739279818" expanded="true" signature="10262:10411" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="10308:10401" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="10441:12073" ph="Kommunikation" />
<marker date="1507739279818" expanded="true" signature="10472:10910" ph="/// Markierungen, die von anderen Ameisen platziert werden, können von befreundeten Ameisen ... " />
<marker date="1507739279818" expanded="true" signature="10975:10995" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="11005:11425" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="11481:11502" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="11512:11972" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="12033:12053" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="12083:14384" ph="Kampf" />
<marker date="1507739279818" expanded="true" signature="12106:12530" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="12585:12872" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="12608:12666" ph="/* if (Kaste == &quot;Sammler&quot;) ... */" />
<marker date="1507739279818" expanded="true" signature="12690:12726" ph="/* } ... */" />
<marker date="1507739279818" expanded="true" signature="12800:12862" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="12882:13251" ph="/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch ... " />
<marker date="1507739279818" expanded="true" signature="13304:13324" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="13334:13772" ph="/// Es kann vorkommen, dass feindliche Lebewesen eine Ameise aktiv angreifen. Sollte ... " />
<marker date="1507739279818" expanded="true" signature="13832:13852" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="13862:14285" ph="/// Es kann vorkommen, dass feindliche Lebewesen eine Ameise aktiv angreifen. Sollte ... " />
<marker date="1507739279818" expanded="true" signature="14343:14363" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14394:20182" ph="Eigene" />
<marker date="1507739279818" expanded="true" signature="14452:16992" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14692:15812" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14769:14884" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="14932:15304" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15357:15653" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15685:15798" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15852:16959" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="15911:16357" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="16407:16899" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="17044:17431" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="17466:17968" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="17505:17627" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18029:18230" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18151:18220" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18285:18439" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18347:18429" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18498:18659" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18582:18649" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18721:19333" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18784:19323" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18881:18942" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="18963:19309" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19035:19131" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19192:19291" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19378:19721" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19439:19711" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19535:19596" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19617:19697" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19767:20161" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19829:20151" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="19933:19994" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20015:20137" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20219:20963" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20350:20450" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20492:20551" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20617:20711" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20776:20832" ph="{...}" />
<marker date="1507739279818" expanded="true" signature="20892:20957" ph="{...}" />
</folding>
</state>
</provider>
</entry>
</component>
</project>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="RIDER_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$/../..">
<sourceFolder url="file://$MODULE_DIR$/../.." isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/../../bin" />
<excludeFolder url="file://$MODULE_DIR$/../../obj" />
<excludeFolder url="file://$MODULE_DIR$/../../packages" />
</content>
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{c9150cc8-d3d1-4c58-88d4-21467cc3e5cd}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>AntMe.Player.BrainArmyAnts</RootNamespace>
<AssemblyName>AntMe.Player.BrainArmyAnts</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="AntMe.SharedComponents">
<HintPath>C:\Program Files (x86)\AntMe 1.7\AntMe.SharedComponents.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="AntMe.Simulation">
<HintPath>C:\Program Files (x86)\AntMe 1.7\AntMe.Simulation.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Content Include="BrainArmyAntsKlasse - Copy.txt" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="BrainArmyAntsKlasse.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<StartAction>Program</StartAction>
<StartProgram>C:\Program Files (x86)\AntMe 1.7\AntMe.exe</StartProgram>
<StartArguments>/file="D:\nextcloud\Documents\Programmierung\CSharp\BrainArmyAnts\BrainArmyAnts\bin\AntMe.Player.BrainArmyAnts.dll"</StartArguments>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<StartAction>Program</StartAction>
<StartProgram>C:\Program Files (x86)\AntMe 1.7\AntMe.exe</StartProgram>
<StartArguments>/file="D:\nextcloud\Documents\Programmierung\CSharp\BrainArmyAnts\BrainArmyAnts\bin\AntMe.Player.BrainArmyAnts.dll"</StartArguments>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,22 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.31101.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{5073ec23-8de2-41a9-8111-f403901fa274}") = "BrainArmyAnts", "BrainArmyAnts.csproj", "{c9150cc8-d3d1-4c58-88d4-21467cc3e5cd}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{c9150cc8-d3d1-4c58-88d4-21467cc3e5cd}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{c9150cc8-d3d1-4c58-88d4-21467cc3e5cd}.Debug|Any CPU.Build.0 = Debug|Any CPU
{c9150cc8-d3d1-4c58-88d4-21467cc3e5cd}.Release|Any CPU.ActiveCfg = Release|Any CPU
{c9150cc8-d3d1-4c58-88d4-21467cc3e5cd}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,499 @@
using AntMe.Deutsch;
using System;
using System.CodeDom;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
namespace AntMe.Player.BrainArmyAnts
{
/// <summary>
/// Diese Datei enthält die Beschreibung für deine Ameise. Die einzelnen Code-Blöcke
/// (Beginnend mit "public override void") fassen zusammen, wie deine Ameise in den
/// entsprechenden Situationen reagieren soll. Welche Befehle du hier verwenden kannst,
/// findest du auf der Befehlsübersicht im Wiki (http://wiki.antme.net/de/API1:Befehlsliste).
///
/// Wenn du etwas Unterstützung bei der Erstellung einer Ameise brauchst, findest du
/// in den AntMe!-Lektionen ein paar Schritt-für-Schritt Anleitungen.
/// (http://wiki.antme.net/de/Lektionen)
/// </summary>
[Spieler(
Volkname = "BrainArmyAnts", // Hier kannst du den Namen des Volkes festlegen
Vorname = "Sebastian", // An dieser Stelle kannst du dich als Schöpfer der Ameise eintragen
Nachname = "Seedorf" // An dieser Stelle kannst du dich als Schöpfer der Ameise eintragen
)]
/// Kasten stellen "Berufsgruppen" innerhalb deines Ameisenvolkes dar. Du kannst hier mit
/// den Fähigkeiten einzelner Ameisen arbeiten. Wie genau das funktioniert kannst du der
/// Lektion zur Spezialisierung von Ameisen entnehmen (http://wiki.antme.net/de/Lektion7).
[Kaste(
Name = "Sammler", // Name der Berufsgruppe
AngriffModifikator = -1, // Angriffsstärke einer Ameise
DrehgeschwindigkeitModifikator = -1, // Drehgeschwindigkeit einer Ameise
EnergieModifikator = -1, // Lebensenergie einer Ameise
GeschwindigkeitModifikator = 2, // Laufgeschwindigkeit einer Ameise
LastModifikator = 2, // Tragkraft einer Ameise
ReichweiteModifikator = -1, // Ausdauer einer Ameise
SichtweiteModifikator = 0 // Sichtweite einer Ameise
),
Kaste(
Name = "Erkunder", // Name der Berufsgruppe
AngriffModifikator = -1, // Angriffsstärke einer Ameise
DrehgeschwindigkeitModifikator = -1, // Drehgeschwindigkeit einer Ameise
EnergieModifikator = -1, // Lebensenergie einer Ameise
GeschwindigkeitModifikator = 1, // Laufgeschwindigkeit einer Ameise
LastModifikator = -1, // Tragkraft einer Ameise
ReichweiteModifikator = 1, // Ausdauer einer Ameise
SichtweiteModifikator = 2 // Sichtweite einer Ameise
),
Kaste(
Name = "Krieger", // Name der Berufsgruppe
AngriffModifikator = 2, // Angriffsstärke einer Ameise
DrehgeschwindigkeitModifikator = 1, // Drehgeschwindigkeit einer Ameise
EnergieModifikator = 1, // Lebensenergie einer Ameise
GeschwindigkeitModifikator = -1, // Laufgeschwindigkeit einer Ameise
LastModifikator = -1, // Tragkraft einer Ameise
ReichweiteModifikator = -1, // Ausdauer einer Ameise
SichtweiteModifikator = -1 // Sichtweite einer Ameise
)]
public class BrainArmyAntsKlasse : Basisameise
{
private static Bau bau = null;
private static readonly Random rand = new Random();
private static readonly List<Zucker> VorkZuckers = new List<Zucker>();
private static readonly List<int> RemovedZuckers = new List<int>();
private static readonly List<ObstTraeger> VorkObsts = new List<ObstTraeger>();
private Spielobjekt _z;
#region Kasten
/// <summary>
/// Jedes mal, wenn eine neue Ameise geboren wird, muss ihre Berufsgruppe
/// bestimmt werden. Das kannst du mit Hilfe dieses Rückgabewertes dieser
/// Methode steuern.
/// Weitere Infos unter http://wiki.antme.net/de/API1:BestimmeKaste
/// </summary>
/// <param name="anzahl">Anzahl Ameisen pro Kaste</param>
/// <returns>Name der Kaste zu der die geborene Ameise gehören soll</returns>
public override string BestimmeKaste(Dictionary<string, int> anzahl)
{
int count = 0;
foreach(KeyValuePair<string, int> entry in anzahl)
{
count += entry.Value;
}
if (anzahl["Sammler"] > anzahl["Erkunder"] * 12)
return "Erkunder";
// Gibt den Namen der betroffenen Kaste zurück.
return "Sammler";
}
#endregion
#region Fortbewegung
/// <summary>
/// Wenn die Ameise keinerlei Aufträge hat, wartet sie auf neue Aufgaben. Um dir das
/// mitzuteilen, wird diese Methode hier aufgerufen.
/// Weitere Infos unter http://wiki.antme.net/de/API1:Wartet
/// </summary>
public override void Wartet()
{
//GeheGeradeaus();
//SprüheMarkierung(5, 100);
}
/// <summary>
/// Erreicht eine Ameise ein drittel ihrer Laufreichweite, wird diese Methode aufgerufen.
/// Weitere Infos unter http://wiki.antme.net/de/API1:WirdM%C3%BCde
/// </summary>
public override void WirdMüde()
{
//GeheZuBau();
}
/// <summary>
/// Wenn eine Ameise stirbt, wird diese Methode aufgerufen. Man erfährt dadurch, wie
/// die Ameise gestorben ist. Die Ameise kann zu diesem Zeitpunkt aber keinerlei Aktion
/// mehr ausführen.
/// Weitere Infos unter http://wiki.antme.net/de/API1:IstGestorben
/// </summary>
/// <param name="todesart">Art des Todes</param>
public override void IstGestorben(Todesart todesart)
{
foreach (ObstTraeger obstTraeger in VorkObsts)
{
obstTraeger.AmeiseEntfernen(this);
}
}
/// <summary>
/// Diese Methode wird in jeder Simulationsrunde aufgerufen - ungeachtet von zusätzlichen
/// Bedingungen. Dies eignet sich für Aktionen, die unter Bedingungen ausgeführt werden
/// sollen, die von den anderen Methoden nicht behandelt werden.
/// Weitere Infos unter http://wiki.antme.net/de/API1:Tick
/// </summary>
public override void Tick()
{
if (IstMüde)
{
SchrittBau();
return;
}
if (Kaste == "Sammler")
{
if (GetragenesObst != null && AnzahlAmeisenDerSelbenKasteInSichtweite < 10)
SprüheMarkierung(2, 250);
if (AktuelleLast > 0)
{
SprüheMarkierung(5, 30);
SchrittBau();
}
else
{
_z = BestimmeZiel();
if (_z == null)
{
GeheGeradeaus(10);
if (rand.Next(50) == 0)
DreheUmWinkel(60);
}
else
{
SchrittZiel(_z);
}
}
}
else
{
GeheGeradeaus();
SprüheMarkierung(4, 30);
}
}
#endregion
#region Nahrung
/// <summary>
/// Sobald eine Ameise innerhalb ihres Sichtradius einen Apfel erspäht wird
/// diese Methode aufgerufen. Als Parameter kommt das betroffene Stück Obst.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:Sieht(Obst)"
/// </summary>
/// <param name="obst">Das gesichtete Stück Obst</param>
public override void Sieht(Obst obst)
{
/*if (Ziel == null && BrauchtNochTräger(obst))
SchrittZiel(obst);*/
ObstHinzufügen(obst);
}
/// <summary>
/// Sobald eine Ameise innerhalb ihres Sichtradius einen Zuckerhügel erspäht wird
/// diese Methode aufgerufen. Als Parameter kommt der betroffene Zuckerghügel.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:Sieht(Zucker)"
/// </summary>
/// <param name="zucker">Der gesichtete Zuckerhügel</param>
public override void Sieht(Zucker zucker)
{
ZuckerHinzufügen(zucker);
ZuckerEntfernen(); /////////////////////////////////////////////////////
}
/// <summary>
/// Hat die Ameise ein Stück Obst als Ziel festgelegt, wird diese Methode aufgerufen,
/// sobald die Ameise ihr Ziel erreicht hat. Ab jetzt ist die Ameise nahe genug um mit
/// dem Ziel zu interagieren.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:ZielErreicht(Obst)"
/// </summary>
/// <param name="obst">Das erreichte Stück Obst</param>
public override void ZielErreicht(Obst obst)
{
if (Kaste == "Sammler")
{
Nimm(obst);
}
}
/// <summary>
/// Hat die Ameise eine Zuckerhügel als Ziel festgelegt, wird diese Methode aufgerufen,
/// sobald die Ameise ihr Ziel erreicht hat. Ab jetzt ist die Ameise nahe genug um mit
/// dem Ziel zu interagieren.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:ZielErreicht(Zucker)"
/// </summary>
/// <param name="zucker">Der erreichte Zuckerhügel</param>
public override void ZielErreicht(Zucker zucker)
{
if (Kaste == "Sammler")
{
Nimm(zucker);
ZuckerEntfernen();
}
}
#endregion
#region Kommunikation
/// <summary>
/// Markierungen, die von anderen Ameisen platziert werden, können von befreundeten Ameisen
/// gewittert werden. Diese Methode wird aufgerufen, wenn eine Ameise zum ersten Mal eine
/// befreundete Markierung riecht.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:RiechtFreund(Markierung)"
/// </summary>
/// <param name="markierung">Die gerochene Markierung</param>
public override void RiechtFreund(Markierung markierung)
{
/*if ((markierung.Information & 255) == 2 && Ziel == null) // Apfel
SchrittZiel(markierung);*/
}
/// <summary>
/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch
/// andere Spielelemente. Entdeckt die Ameise eine Ameise aus dem eigenen Volk, so
/// wird diese Methode aufgerufen.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:SiehtFreund(Ameise)"
/// </summary>
/// <param name="ameise">Erspähte befreundete Ameise</param>
public override void SiehtFreund(Ameise ameise)
{
}
/// <summary>
/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch
/// andere Spielelemente. Entdeckt die Ameise eine Ameise aus einem befreundeten Volk
/// (Völker im selben Team), so wird diese Methode aufgerufen.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:SiehtVerb%C3%BCndeten(Ameise)"
/// </summary>
/// <param name="ameise">Erspähte verbündete Ameise</param>
public override void SiehtVerbündeten(Ameise ameise)
{
}
#endregion
#region Kampf
/// <summary>
/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch
/// andere Spielelemente. Entdeckt die Ameise eine Ameise aus einem feindlichen Volk,
/// so wird diese Methode aufgerufen.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:SiehtFeind(Ameise)"
/// </summary>
/// <param name="ameise">Erspähte feindliche Ameise</param>
public override void SiehtFeind(Ameise ameise)
{
}
/// <summary>
/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch
/// andere Spielelemente. Entdeckt die Ameise eine Wanze, so wird diese Methode aufgerufen.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:SiehtFeind(Wanze)"
/// </summary>
/// <param name="wanze">Erspähte Wanze</param>
public override void SiehtFeind(Wanze wanze)
{
}
/// <summary>
/// Es kann vorkommen, dass feindliche Lebewesen eine Ameise aktiv angreifen. Sollte
/// eine feindliche Ameise angreifen, wird diese Methode hier aufgerufen und die
/// Ameise kann entscheiden, wie sie darauf reagieren möchte.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:WirdAngegriffen(Ameise)"
/// </summary>
/// <param name="ameise">Angreifende Ameise</param>
public override void WirdAngegriffen(Ameise ameise)
{
}
/// <summary>
/// Es kann vorkommen, dass feindliche Lebewesen eine Ameise aktiv angreifen. Sollte
/// eine Wanze angreifen, wird diese Methode hier aufgerufen und die Ameise kann
/// entscheiden, wie sie darauf reagieren möchte.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:WirdAngegriffen(Wanze)"
/// </summary>
/// <param name="wanze">Angreifende Wanze</param>
public override void WirdAngegriffen(Wanze wanze)
{
}
#endregion
#region Eigene
private Spielobjekt BestimmeZiel()
{
ZuckerEntfernen();
ObstEntfernen();
var entfernung = int.MaxValue;
Spielobjekt s = null;
foreach (ObstTraeger obstTraeger in VorkObsts)
{
if (obstTraeger.IstTraeger(this)) return obstTraeger.Obst;
}
foreach (var obst in VorkObsts)
{
var neu = Koordinate.BestimmeEntfernung(this, obst.Obst);
if (s != null && neu >= entfernung || neu >= Reichweite / 3 || !obst.BrauchtNochTraeger()) continue; //Ich verstehe das "z != null &&" nicht
s = obst.Obst;
entfernung = neu;
}
foreach (var zucker in VorkZuckers)
{
var neu = Koordinate.BestimmeEntfernung(this, zucker);
if (s != null && neu >= entfernung || neu >= Reichweite / 3) continue; //Ich verstehe das "z != null &&" nicht
s = zucker;
entfernung = neu;
}
if (s is Obst)
{
VorkObsts.Find(o => o.Obst == s).AmeiseHinzufügen(this);
}
return s;
}
private void SchrittZiel(Spielobjekt ziel)
{
var dist = Koordinate.BestimmeEntfernung(this, ziel);
var angle = Koordinate.BestimmeRichtung(this, ziel);
if (Math.Abs(angle-Richtung) > 10)
DreheInRichtung(angle);
DreheZuZiel(ziel);
if (dist > 2)
GeheGeradeaus(dist/3*2);
else
GeheZuZiel(ziel);
}
private void SchrittBau()
{
if (bau == null)
{
GeheZuBau();
bau = (Bau) Ziel;
BleibStehen();
}
var dist = Koordinate.BestimmeEntfernung(this, bau);
var angle = Koordinate.BestimmeRichtung(this, bau);
if (Math.Abs(angle-Richtung) > 10)
DreheInRichtung(angle);
if (dist > 4)
GeheGeradeaus(dist-2);
else
GeheZuZiel(bau);
}
private static void ZuckerHinzufügen(Zucker zucker)
{
if (zucker.Menge > 100 && !VorkZuckers.Contains(zucker) && RemovedZuckers.All(z => z != zucker.Id))
{
VorkZuckers.Add(zucker);
}
}
private static void ObstHinzufügen(Obst obst)
{
if (VorkObsts.All(o => o.Obst != obst))
{
VorkObsts.Add(new ObstTraeger(obst));
}
}
private static void ZuckerEntfernen()//Zucker zucker
{
for (int i = 0; i < VorkZuckers.Count; )
{
var zucker = VorkZuckers[i];
if (zucker.Menge > 0)
{
i++;
}
else
{
if (VorkZuckers.Contains(zucker))
{
VorkZuckers.Remove(zucker);
}
if (!RemovedZuckers.Contains(zucker.Id))
{
RemovedZuckers.Add(zucker.Id);
}
}
}
}
private static void ObstEntfernen()
{
for (int i = 0; i < VorkObsts.Count; )
{
var obst = VorkObsts[i];
if (obst.Obst.Menge > 0)
{
i++;
}
else
{
VorkObsts.Remove(obst);
}
}
}
#endregion
}
public class ObstTraeger
{
public Obst Obst;
private readonly List<BrainArmyAntsKlasse> ameisen;
public ObstTraeger(Obst obst)
{
Obst = obst;
ameisen = new List<BrainArmyAntsKlasse>();
}
public bool BrauchtNochTraeger()
{
return ameisen.Count < 10;
}
public void AmeiseHinzufügen(BrainArmyAntsKlasse ameise)
{
ameisen.Add(ameise);
}
public void AmeiseEntfernen(BrainArmyAntsKlasse ameise)
{
ameisen.Remove(ameise);
}
public bool IstTraeger(BrainArmyAntsKlasse ameise)
{
return ameisen.Contains(ameise);
}
}
}

View File

@@ -0,0 +1,573 @@
using AntMe.Deutsch;
using System;
using System.CodeDom;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using AntMe.Simulation;
namespace AntMe.Player.BrainArmyAnts
{
/// <summary>
/// Diese Datei enthält die Beschreibung für deine Ameise. Die einzelnen Code-Blöcke
/// (Beginnend mit "public override void") fassen zusammen, wie deine Ameise in den
/// entsprechenden Situationen reagieren soll. Welche Befehle du hier verwenden kannst,
/// findest du auf der Befehlsübersicht im Wiki (http://wiki.antme.net/de/API1:Befehlsliste).
///
/// Wenn du etwas Unterstützung bei der Erstellung einer Ameise brauchst, findest du
/// in den AntMe!-Lektionen ein paar Schritt-für-Schritt Anleitungen.
/// (http://wiki.antme.net/de/Lektionen)
/// </summary>
[Spieler(
Volkname = "BrainArmyAnts", // Hier kannst du den Namen des Volkes festlegen
Vorname = "Joshua Priebsch,", // An dieser Stelle kannst du dich als Schöpfer der Ameise eintragen
Nachname = "Sebastian Seedorf" // An dieser Stelle kannst du dich als Schöpfer der Ameise eintragen
)]
/// Kasten stellen "Berufsgruppen" innerhalb deines Ameisenvolkes dar. Du kannst hier mit
/// den Fähigkeiten einzelner Ameisen arbeiten. Wie genau das funktioniert kannst du der
/// Lektion zur Spezialisierung von Ameisen entnehmen (http://wiki.antme.net/de/Lektion7).
[Kaste(
Name = "Sammler", // Name der Berufsgruppe
AngriffModifikator = -1, // Angriffsstärke einer Ameise
DrehgeschwindigkeitModifikator = -1, // Drehgeschwindigkeit einer Ameise
EnergieModifikator = -1, // Lebensenergie einer Ameise
GeschwindigkeitModifikator = 2, // Laufgeschwindigkeit einer Ameise
LastModifikator = 2, // Tragkraft einer Ameise
ReichweiteModifikator = -1, // Ausdauer einer Ameise
SichtweiteModifikator = 0 // Sichtweite einer Ameise
),
Kaste(
Name = "Erkunder", // Name der Berufsgruppe
AngriffModifikator = -1, // Angriffsstärke einer Ameise
DrehgeschwindigkeitModifikator = -1, // Drehgeschwindigkeit einer Ameise
EnergieModifikator = -1, // Lebensenergie einer Ameise
GeschwindigkeitModifikator = 1, // Laufgeschwindigkeit einer Ameise
LastModifikator = -1, // Tragkraft einer Ameise
ReichweiteModifikator = 1, // Ausdauer einer Ameise
SichtweiteModifikator = 2 // Sichtweite einer Ameise
),
Kaste(
Name = "Krieger", // Name der Berufsgruppe
AngriffModifikator = 2, // Angriffsstärke einer Ameise
DrehgeschwindigkeitModifikator = 0, // Drehgeschwindigkeit einer Ameise
EnergieModifikator = 1, // Lebensenergie einer Ameise
GeschwindigkeitModifikator = 0, // Laufgeschwindigkeit einer Ameise
LastModifikator = -1, // Tragkraft einer Ameise
ReichweiteModifikator = -1, // Ausdauer einer Ameise
SichtweiteModifikator = -1 // Sichtweite einer Ameise
)]
public class BrainArmyAntsKlasse : Basisameise
{
private static Bau bau = null;
private static readonly Random rand = new Random();
private static readonly List<Zucker> VorkZuckers = new List<Zucker>();
private static readonly List<int> RemovedZuckers = new List<int>();
private static readonly List<ObstTraeger> VorkObsts = new List<ObstTraeger>();
private static readonly List<Insekt> VorkFeinde = new List<Insekt>();
private static int GestorbeneAmeisen = 0;
private static int GetoeteteAmeisen = 0;
private Spielobjekt _z;
private Insekt _aktuellerFeind;
#region Kasten
/// <summary>
/// Jedes mal, wenn eine neue Ameise geboren wird, muss ihre Berufsgruppe
/// bestimmt werden. Das kannst du mit Hilfe dieses Rückgabewertes dieser
/// Methode steuern.
/// Weitere Infos unter http://wiki.antme.net/de/API1:BestimmeKaste
/// </summary>
/// <param name="anzahl">Anzahl Ameisen pro Kaste</param>
/// <returns>Name der Kaste zu der die geborene Ameise gehören soll</returns>
public override string BestimmeKaste(Dictionary<string, int> anzahl)
{
int count = 0;
foreach(KeyValuePair<string, int> entry in anzahl)
{
count += entry.Value;
}
if (anzahl["Krieger"] < 6 || anzahl["Sammler"] > anzahl["Krieger"] * (GetoeteteAmeisen/(GestorbeneAmeisen+1)))
return "Krieger";
if (anzahl["Sammler"] > anzahl["Erkunder"] * 20)
return "Erkunder";
// Gibt den Namen der betroffenen Kaste zurück.
return "Sammler";
}
#endregion
#region Fortbewegung
/// <summary>
/// Wenn die Ameise keinerlei Aufträge hat, wartet sie auf neue Aufgaben. Um dir das
/// mitzuteilen, wird diese Methode hier aufgerufen.
/// Weitere Infos unter http://wiki.antme.net/de/API1:Wartet
/// </summary>
public override void Wartet()
{
}
/// <summary>
/// Erreicht eine Ameise ein drittel ihrer Laufreichweite, wird diese Methode aufgerufen.
/// Weitere Infos unter http://wiki.antme.net/de/API1:WirdM%C3%BCde
/// </summary>
public override void WirdMüde()
{
}
/// <summary>
/// Wenn eine Ameise stirbt, wird diese Methode aufgerufen. Man erfährt dadurch, wie
/// die Ameise gestorben ist. Die Ameise kann zu diesem Zeitpunkt aber keinerlei Aktion
/// mehr ausführen.
/// Weitere Infos unter http://wiki.antme.net/de/API1:IstGestorben
/// </summary>
/// <param name="todesart">Art des Todes</param>
public override void IstGestorben(Todesart todesart)
{
foreach (ObstTraeger obstTraeger in VorkObsts)
{
obstTraeger.AmeiseEntfernen(this);
}
if (todesart == Todesart.Besiegt)
{
GestorbeneAmeisen++;
}
}
/// <summary>
/// Diese Methode wird in jeder Simulationsrunde aufgerufen - ungeachtet von zusätzlichen
/// Bedingungen. Dies eignet sich für Aktionen, die unter Bedingungen ausgeführt werden
/// sollen, die von den anderen Methoden nicht behandelt werden.
/// Weitere Infos unter http://wiki.antme.net/de/API1:Tick
/// </summary>
public override void Tick()
{
if (ZurückgelegteStrecke*2+2 > Reichweite)
{
SchrittBau();
return;
}
if (Kaste == "Sammler")
{
if (AktuelleLast > 0)
{
SchrittBau();
}
else
{
_z = BestimmeZiel();
if (_z == null)
{
GeheGeradeaus(10);
if (rand.Next(50) == 0)
DreheUmWinkel(60);
}
else
{
SchrittZiel(_z);
}
}
} else if (Kaste == "Krieger")
{
//SprüheMarkierung(5, 10);
_z = BestimmeZiel();
if (_z == null)
{
GeheGeradeaus(10);
if (rand.Next(50) == 0)
DreheUmWinkel(60);
}
else
{
SchrittZiel(_z);
}
}
else
{
GeheGeradeaus();
//SprüheMarkierung(4, 30);
}
}
#endregion
#region Nahrung
/// <summary>
/// Sobald eine Ameise innerhalb ihres Sichtradius einen Apfel erspäht wird
/// diese Methode aufgerufen. Als Parameter kommt das betroffene Stück Obst.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:Sieht(Obst)"
/// </summary>
/// <param name="obst">Das gesichtete Stück Obst</param>
public override void Sieht(Obst obst)
{
ObstHinzufügen(obst);
}
/// <summary>
/// Sobald eine Ameise innerhalb ihres Sichtradius einen Zuckerhügel erspäht wird
/// diese Methode aufgerufen. Als Parameter kommt der betroffene Zuckerghügel.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:Sieht(Zucker)"
/// </summary>
/// <param name="zucker">Der gesichtete Zuckerhügel</param>
public override void Sieht(Zucker zucker)
{
ZuckerHinzufügen(zucker);
ZuckerEntfernen();
}
/// <summary>
/// Hat die Ameise ein Stück Obst als Ziel festgelegt, wird diese Methode aufgerufen,
/// sobald die Ameise ihr Ziel erreicht hat. Ab jetzt ist die Ameise nahe genug um mit
/// dem Ziel zu interagieren.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:ZielErreicht(Obst)"
/// </summary>
/// <param name="obst">Das erreichte Stück Obst</param>
public override void ZielErreicht(Obst obst)
{
if (Kaste == "Sammler")
{
Nimm(obst);
}
}
/// <summary>
/// Hat die Ameise eine Zuckerhügel als Ziel festgelegt, wird diese Methode aufgerufen,
/// sobald die Ameise ihr Ziel erreicht hat. Ab jetzt ist die Ameise nahe genug um mit
/// dem Ziel zu interagieren.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:ZielErreicht(Zucker)"
/// </summary>
/// <param name="zucker">Der erreichte Zuckerhügel</param>
public override void ZielErreicht(Zucker zucker)
{
if (Kaste == "Sammler")
{
Nimm(zucker);
ZuckerEntfernen();
}
}
#endregion
#region Kommunikation
/// <summary>
/// Markierungen, die von anderen Ameisen platziert werden, können von befreundeten Ameisen
/// gewittert werden. Diese Methode wird aufgerufen, wenn eine Ameise zum ersten Mal eine
/// befreundete Markierung riecht.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:RiechtFreund(Markierung)"
/// </summary>
/// <param name="markierung">Die gerochene Markierung</param>
public override void RiechtFreund(Markierung markierung)
{
}
/// <summary>
/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch
/// andere Spielelemente. Entdeckt die Ameise eine Ameise aus dem eigenen Volk, so
/// wird diese Methode aufgerufen.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:SiehtFreund(Ameise)"
/// </summary>
/// <param name="ameise">Erspähte befreundete Ameise</param>
public override void SiehtFreund(Ameise ameise)
{
}
/// <summary>
/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch
/// andere Spielelemente. Entdeckt die Ameise eine Ameise aus einem befreundeten Volk
/// (Völker im selben Team), so wird diese Methode aufgerufen.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:SiehtVerb%C3%BCndeten(Ameise)"
/// </summary>
/// <param name="ameise">Erspähte verbündete Ameise</param>
public override void SiehtVerbündeten(Ameise ameise)
{
}
#endregion
#region Kampf
/// <summary>
/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch
/// andere Spielelemente. Entdeckt die Ameise eine Ameise aus einem feindlichen Volk,
/// so wird diese Methode aufgerufen.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:SiehtFeind(Ameise)"
/// </summary>
/// <param name="ameise">Erspähte feindliche Ameise</param>
public override void SiehtFeind(Ameise ameise)
{
/*if (Kaste == "Sammler")
{
*/FeindHinzufügen(ameise);/*
}
else */if (Kaste == "Krieger" && Koordinate.BestimmeEntfernung(this, ameise) < 4)
{
GreifeAn(ameise);
}
}
/// <summary>
/// So wie Ameisen unterschiedliche Nahrungsmittel erspähen können, entdecken Sie auch
/// andere Spielelemente. Entdeckt die Ameise eine Wanze, so wird diese Methode aufgerufen.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:SiehtFeind(Wanze)"
/// </summary>
/// <param name="wanze">Erspähte Wanze</param>
public override void SiehtFeind(Wanze wanze)
{
}
/// <summary>
/// Es kann vorkommen, dass feindliche Lebewesen eine Ameise aktiv angreifen. Sollte
/// eine feindliche Ameise angreifen, wird diese Methode hier aufgerufen und die
/// Ameise kann entscheiden, wie sie darauf reagieren möchte.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:WirdAngegriffen(Ameise)"
/// </summary>
/// <param name="ameise">Angreifende Ameise</param>
public override void WirdAngegriffen(Ameise ameise)
{
}
/// <summary>
/// Es kann vorkommen, dass feindliche Lebewesen eine Ameise aktiv angreifen. Sollte
/// eine Wanze angreifen, wird diese Methode hier aufgerufen und die Ameise kann
/// entscheiden, wie sie darauf reagieren möchte.
/// Weitere Infos unter "http://wiki.antme.net/de/API1:WirdAngegriffen(Wanze)"
/// </summary>
/// <param name="wanze">Angreifende Wanze</param>
public override void WirdAngegriffen(Wanze wanze)
{
}
#endregion
#region Eigene
private Spielobjekt BestimmeZiel()
{
ZuckerEntfernen();
ObstEntfernen();
FeindEntfernen();
var entfernung = int.MaxValue;
Spielobjekt s = null;
if (Kaste == "Sammler")
{
foreach (ObstTraeger obstTraeger in VorkObsts)
{
if (obstTraeger.IstTraeger(this)) return obstTraeger.Obst;
}
foreach (var obst in VorkObsts)
{
var neu = Koordinate.BestimmeEntfernung(this, obst.Obst);
if (s != null && neu >= entfernung || neu >= Reichweite / 3 || !obst.BrauchtNochTraeger())
continue; //Ich verstehe das "z != null &&" nicht
s = obst.Obst;
entfernung = neu;
}
foreach (var zucker in VorkZuckers)
{
var neu = Koordinate.BestimmeEntfernung(this, zucker);
if (s != null && neu >= entfernung || neu >= Reichweite / 3)
continue;
s = zucker;
entfernung = neu;
}
if (s is Obst)
{
VorkObsts.Find(o => o.Obst == s).AmeiseHinzufügen(this);
}
}
else if(Kaste == "Krieger")
{
if (_aktuellerFeind != null)
{
var neu = Koordinate.BestimmeEntfernung(this, _aktuellerFeind);
if (!(neu >= Reichweite / 3 && (Angriff == 0 || _aktuellerFeind.Angriff > 0 &&
_aktuellerFeind.AktuelleEnergie / Angriff <
AktuelleEnergie / _aktuellerFeind.Angriff)))
return s;
}
foreach (var feind in VorkFeinde)
{
var neu = Koordinate.BestimmeEntfernung(this, feind);
if (s != null && neu >= entfernung || neu >= Reichweite / 3)
continue;
if (Angriff==0 || feind.Angriff>0 && feind.AktuelleEnergie/Angriff < AktuelleEnergie/feind.Angriff)
continue;
if (rand.Next(6)<1)
s = feind;
entfernung = neu;
}
_aktuellerFeind = (Insekt) s;
}
return s;
}
private void SchrittZiel(Spielobjekt ziel)
{
var dist = Koordinate.BestimmeEntfernung(this, ziel);
var angle = Koordinate.BestimmeRichtung(this, ziel);
if (Math.Abs(angle-Richtung) > 10)
DreheInRichtung(angle);
DreheZuZiel(ziel);
if (dist > 2)
GeheGeradeaus(dist/3*2);
else
GeheZuZiel(ziel);
}
private void SchrittBau()
{
if (bau == null)
{
GeheZuBau();
bau = (Bau) Ziel;
BleibStehen();
}
var dist = Koordinate.BestimmeEntfernung(this, bau);
var angle = Koordinate.BestimmeRichtung(this, bau);
if (Math.Abs(angle-Richtung) > 10)
DreheInRichtung(angle);
if (dist > 4)
GeheGeradeaus(dist-2);
else
GeheZuZiel(bau);
}
private static void ZuckerHinzufügen(Zucker zucker)
{
if (zucker.Menge > 100 && !VorkZuckers.Contains(zucker) && RemovedZuckers.All(z => z != zucker.Id))
{
VorkZuckers.Add(zucker);
}
}
private static void ObstHinzufügen(Obst obst)
{
if (VorkObsts.All(o => o.Obst != obst))
{
VorkObsts.Add(new ObstTraeger(obst));
}
}
private static void FeindHinzufügen(Ameise feind)
{
if (feind.AktuelleEnergie > 0 && !VorkFeinde.Contains(feind))
{
VorkFeinde.Add(feind);
}
}
private static void ZuckerEntfernen()//Zucker zucker
{
for (int i = 0; i < VorkZuckers.Count; )
{
var zucker = VorkZuckers[i];
if (zucker.Menge > 0)
{
i++;
}
else
{
if (VorkZuckers.Contains(zucker))
{
VorkZuckers.Remove(zucker);
}
if (!RemovedZuckers.Contains(zucker.Id))
{
RemovedZuckers.Add(zucker.Id);
}
}
}
}
private static void ObstEntfernen()
{
for (int i = 0; i < VorkObsts.Count; )
{
var obst = VorkObsts[i];
if (obst.Obst.Menge > 0)
{
i++;
}
else
{
VorkObsts.Remove(obst);
}
}
}
private static void FeindEntfernen()
{
for (int i = 0; i < VorkFeinde.Count; )
{
var feind = VorkFeinde[i];
if (feind.AktuelleEnergie > 0)
{
i++;
}
else
{
VorkFeinde.Remove(feind);
GetoeteteAmeisen++;
}
}
}
#endregion
}
public class ObstTraeger
{
public Obst Obst;
private readonly List<BrainArmyAntsKlasse> ameisen;
public ObstTraeger(Obst obst)
{
Obst = obst;
ameisen = new List<BrainArmyAntsKlasse>();
}
public bool BrauchtNochTraeger()
{
return ameisen.Count < 10;
}
public void AmeiseHinzufügen(BrainArmyAntsKlasse ameise)
{
if (!IstTraeger(ameise))
ameisen.Add(ameise);
}
public void AmeiseEntfernen(BrainArmyAntsKlasse ameise)
{
ameisen.Remove(ameise);
}
public bool IstTraeger(BrainArmyAntsKlasse ameise)
{
return ameisen.Contains(ameise);
}
}
}

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("AntMe! Player")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("AntMe!")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("c9150cc8-d3d1-4c58-88d4-21467cc3e5cd")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
478fbae6997bd38d8e7edb8a7243770c6e5fd442

View File

@@ -0,0 +1,12 @@
D:\nextcloud\Documents\Programmierung\CSharp\BrainArmyAnts\BrainArmyAnts\bin\AntMe.Player.BrainArmyAnts.dll
D:\nextcloud\Documents\Programmierung\CSharp\BrainArmyAnts\BrainArmyAnts\bin\AntMe.Player.BrainArmyAnts.pdb
D:\nextcloud\Documents\Programmierung\CSharp\BrainArmyAnts\BrainArmyAnts\bin\AntMe.SharedComponents.dll
D:\nextcloud\Documents\Programmierung\CSharp\BrainArmyAnts\BrainArmyAnts\bin\AntMe.Simulation.dll
D:\nextcloud\Documents\Programmierung\CSharp\BrainArmyAnts\BrainArmyAnts\bin\AntMe.SharedComponents.xml
D:\nextcloud\Documents\Programmierung\CSharp\BrainArmyAnts\BrainArmyAnts\bin\AntMe.Simulation.xml
D:\nextcloud\Documents\Programmierung\CSharp\BrainArmyAnts\BrainArmyAnts\bin\de\AntMe.SharedComponents.resources.dll
D:\nextcloud\Documents\Programmierung\CSharp\BrainArmyAnts\BrainArmyAnts\bin\de\AntMe.Simulation.resources.dll
D:\nextcloud\Documents\Programmierung\CSharp\BrainArmyAnts\BrainArmyAnts\obj\Debug\BrainArmyAnts.csprojResolveAssemblyReference.cache
D:\nextcloud\Documents\Programmierung\CSharp\BrainArmyAnts\BrainArmyAnts\obj\Debug\AntMe.Player.BrainArmyAnts.dll
D:\nextcloud\Documents\Programmierung\CSharp\BrainArmyAnts\BrainArmyAnts\obj\Debug\AntMe.Player.BrainArmyAnts.pdb
D:\nextcloud\Documents\Programmierung\CSharp\BrainArmyAnts\BrainArmyAnts\obj\Debug\BrainArmyAnts.csproj.CoreCompileInputs.cache