Compare commits
52 Commits
master-d2c
...
generateAl
| Author | SHA1 | Date | |
|---|---|---|---|
|
7ab8d3227d
|
|||
|
ec2b0d9d5f
|
|||
|
ea1d884ca6
|
|||
|
f3b37d395c
|
|||
|
f0982d1c72
|
|||
|
0a69fe6555
|
|||
|
b8487c3c08
|
|||
|
a9c0c86868
|
|||
|
7c355c8270
|
|||
|
|
192570fb47 | ||
|
|
cad296eb0e | ||
|
da5d6dbdff
|
|||
|
0a4f729108
|
|||
|
d2c8ba86c0
|
|||
|
c37ee0c5f7
|
|||
|
|
ccf71b45b4 | ||
|
|
938ebe95fc | ||
|
3307b01bf2
|
|||
|
1ad2f6d3f3
|
|||
|
|
8db5652ec6 | ||
|
ad5579bded
|
|||
|
e228e9551a
|
|||
|
|
bd37e467fb | ||
|
10b23e8a8c
|
|||
|
8bab67bcba
|
|||
|
a9a7ddef94
|
|||
|
3e04727e7c
|
|||
|
741ddc2cf0
|
|||
|
bfc7070b78
|
|||
|
70f3b3c707
|
|||
|
da04d53092
|
|||
|
899497d037
|
|||
|
8ed19d75bd
|
|||
|
28630ea520
|
|||
|
543a09f548
|
|||
|
2179ba5eaa
|
|||
|
7ed595dced
|
|||
|
82a8dbccda
|
|||
|
|
2b2ac29343 | ||
|
|
72fd76408a | ||
|
|
e259a9a982 | ||
|
|
0402735e96 | ||
|
e73524592a
|
|||
|
c58bddbc29
|
|||
|
024f6f63ff
|
|||
|
2538dff7f5
|
|||
|
cba1604afa
|
|||
|
8adc551913
|
|||
|
dff851727e
|
|||
|
|
53fe954a57 | ||
|
|
defab09245 | ||
|
|
10d2a9b3ac |
@@ -9,8 +9,10 @@ stages:
|
|||||||
before_script:
|
before_script:
|
||||||
- export PATH_TO_FX=/usr/share/openjfx/lib
|
- export PATH_TO_FX=/usr/share/openjfx/lib
|
||||||
- export JAVAFX_OPTIONS="--module-path $PATH_TO_FX --add-modules javafx.controls,javafx.fxml,javafx.media"
|
- export JAVAFX_OPTIONS="--module-path $PATH_TO_FX --add-modules javafx.controls,javafx.fxml,javafx.media"
|
||||||
- export CP=src:/ass2/*:/shared/junit-platform-console-standalone-1.7.0.jar:$PATH_TO_FX/*
|
- export CP=src:src-dev:/ass2/*:/shared/junit-platform-console-standalone-1.7.0.jar:$PATH_TO_FX/*
|
||||||
- export JUNIT="java $JAVAFX_OPTIONS -jar /shared/junit-platform-console-standalone-1.7.0.jar --class-path src:/ass2/comp1110-ass2.jar --disable-banner"
|
- export JUNIT="java $JAVAFX_OPTIONS -jar /shared/junit-platform-console-standalone-1.7.0.jar --class-path src:src-dev:/ass2/comp1110-ass2.jar --disable-banner --reports-dir=junit-reports"
|
||||||
|
- export SRC_FILES=$(find src/ -type f -name '*.java')
|
||||||
|
- export SRC_DEV_FILES=$(if [ -d "src-dev/" ]; then find src-dev/ -type f -name '*.java'; fi)
|
||||||
|
|
||||||
checksum:
|
checksum:
|
||||||
tags:
|
tags:
|
||||||
@@ -38,11 +40,11 @@ build:
|
|||||||
- comp1110
|
- comp1110
|
||||||
stage: build
|
stage: build
|
||||||
script:
|
script:
|
||||||
- javac -encoding utf-8 $JAVAFX_OPTIONS -cp $CP src/comp1110/ass2/*.java src/comp1110/ass2/*/*.java
|
- javac -encoding utf-8 $JAVAFX_OPTIONS -cp $CP $SRC_FILES $SRC_DEV_FILES
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- src/comp1110/ass2/*.class
|
- src/
|
||||||
- src/comp1110/ass2/*/*.class
|
- src-dev/
|
||||||
|
|
||||||
task3:
|
task3:
|
||||||
tags:
|
tags:
|
||||||
@@ -51,6 +53,9 @@ task3:
|
|||||||
script:
|
script:
|
||||||
- $JUNIT -c=comp1110.ass2.IsStateStringWellFormedTest
|
- $JUNIT -c=comp1110.ass2.IsStateStringWellFormedTest
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
junit: junit-reports/TEST-junit-jupiter.xml
|
||||||
|
|
||||||
task4:
|
task4:
|
||||||
tags:
|
tags:
|
||||||
@@ -59,6 +64,9 @@ task4:
|
|||||||
script:
|
script:
|
||||||
- $JUNIT -c=comp1110.ass2.IsMoveStringWellFormedTest
|
- $JUNIT -c=comp1110.ass2.IsMoveStringWellFormedTest
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
junit: junit-reports/TEST-junit-jupiter.xml
|
||||||
|
|
||||||
task6:
|
task6:
|
||||||
tags:
|
tags:
|
||||||
@@ -67,6 +75,9 @@ task6:
|
|||||||
script:
|
script:
|
||||||
- $JUNIT -c=comp1110.ass2.DistributeResourcesTest
|
- $JUNIT -c=comp1110.ass2.DistributeResourcesTest
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
junit: junit-reports/TEST-junit-jupiter.xml
|
||||||
|
|
||||||
task7:
|
task7:
|
||||||
tags:
|
tags:
|
||||||
@@ -75,6 +86,9 @@ task7:
|
|||||||
script:
|
script:
|
||||||
- $JUNIT -c=comp1110.ass2.IsMoveValidTest
|
- $JUNIT -c=comp1110.ass2.IsMoveValidTest
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
junit: junit-reports/TEST-junit-jupiter.xml
|
||||||
|
|
||||||
task8:
|
task8:
|
||||||
tags:
|
tags:
|
||||||
@@ -83,6 +97,9 @@ task8:
|
|||||||
script:
|
script:
|
||||||
- $JUNIT -c=comp1110.ass2.GenerateAllValidMovesTest
|
- $JUNIT -c=comp1110.ass2.GenerateAllValidMovesTest
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
junit: junit-reports/TEST-junit-jupiter.xml
|
||||||
|
|
||||||
task9:
|
task9:
|
||||||
tags:
|
tags:
|
||||||
@@ -91,6 +108,9 @@ task9:
|
|||||||
script:
|
script:
|
||||||
- $JUNIT -c=comp1110.ass2.IsPhaseOverTest
|
- $JUNIT -c=comp1110.ass2.IsPhaseOverTest
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
junit: junit-reports/TEST-junit-jupiter.xml
|
||||||
|
|
||||||
task10:
|
task10:
|
||||||
tags:
|
tags:
|
||||||
@@ -99,6 +119,9 @@ task10:
|
|||||||
script:
|
script:
|
||||||
- $JUNIT -c=comp1110.ass2.PlacePieceTest
|
- $JUNIT -c=comp1110.ass2.PlacePieceTest
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
junit: junit-reports/TEST-junit-jupiter.xml
|
||||||
|
|
||||||
task11:
|
task11:
|
||||||
tags:
|
tags:
|
||||||
@@ -107,6 +130,9 @@ task11:
|
|||||||
script:
|
script:
|
||||||
- $JUNIT -c=comp1110.ass2.CalculateIslandLinksScoreTest -c=comp1110.ass2.CalculateIslandMajoritiesScoreTest -c=comp1110.ass2.CalculateResourcesAndStatuettesScoreTest -c=comp1110.ass2.CalculateTotalIslandsScoreTest -c=comp1110.ass2.CalculateScoresTest
|
- $JUNIT -c=comp1110.ass2.CalculateIslandLinksScoreTest -c=comp1110.ass2.CalculateIslandMajoritiesScoreTest -c=comp1110.ass2.CalculateResourcesAndStatuettesScoreTest -c=comp1110.ass2.CalculateTotalIslandsScoreTest -c=comp1110.ass2.CalculateScoresTest
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
junit: junit-reports/TEST-junit-jupiter.xml
|
||||||
|
|
||||||
task12:
|
task12:
|
||||||
tags:
|
tags:
|
||||||
@@ -115,6 +141,9 @@ task12:
|
|||||||
script:
|
script:
|
||||||
- $JUNIT -c=comp1110.ass2.EndPhaseTest
|
- $JUNIT -c=comp1110.ass2.EndPhaseTest
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
junit: junit-reports/TEST-junit-jupiter.xml
|
||||||
|
|
||||||
task13:
|
task13:
|
||||||
tags:
|
tags:
|
||||||
@@ -123,6 +152,9 @@ task13:
|
|||||||
script:
|
script:
|
||||||
- $JUNIT -c=comp1110.ass2.ApplyMoveTest
|
- $JUNIT -c=comp1110.ass2.ApplyMoveTest
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
junit: junit-reports/TEST-junit-jupiter.xml
|
||||||
|
|
||||||
task16:
|
task16:
|
||||||
tags:
|
tags:
|
||||||
@@ -131,6 +163,9 @@ task16:
|
|||||||
script:
|
script:
|
||||||
- $JUNIT -c=comp1110.ass2.GenerateAIMoveTest
|
- $JUNIT -c=comp1110.ass2.GenerateAIMoveTest
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
junit: junit-reports/TEST-junit-jupiter.xml
|
||||||
|
|
||||||
task17:
|
task17:
|
||||||
tags:
|
tags:
|
||||||
@@ -139,6 +174,9 @@ task17:
|
|||||||
script:
|
script:
|
||||||
- $JUNIT -c=comp1110.ass2.VariableBoardSizeTest -c=comp1110.ass2.ThreeFourPlayerTest -c=comp1110.ass2.VariableSizeThreeFourPlayerTest
|
- $JUNIT -c=comp1110.ass2.VariableBoardSizeTest -c=comp1110.ass2.ThreeFourPlayerTest -c=comp1110.ass2.VariableSizeThreeFourPlayerTest
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
junit: junit-reports/TEST-junit-jupiter.xml
|
||||||
|
|
||||||
## Local Variables:
|
## Local Variables:
|
||||||
## mode: yaml
|
## mode: yaml
|
||||||
|
|||||||
16
.idea/artifacts/game.xml
generated
Normal file
16
.idea/artifacts/game.xml
generated
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<component name="ArtifactManager">
|
||||||
|
<artifact type="jar" build-on-make="true" name="game">
|
||||||
|
<output-path>$PROJECT_DIR$/out/artifacts/game</output-path>
|
||||||
|
<root id="archive" name="game.jar">
|
||||||
|
<element id="module-output" name="comp1110-ass2" />
|
||||||
|
<element id="extracted-dir" path="$PATH_TO_FX$/javafx-swt.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$PATH_TO_FX$/javafx.web.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$PATH_TO_FX$/javafx.base.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$PATH_TO_FX$/javafx.fxml.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$PATH_TO_FX$/javafx.media.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$PATH_TO_FX$/javafx.swing.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$PATH_TO_FX$/javafx.controls.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$PATH_TO_FX$/javafx.graphics.jar" path-in-jar="/" />
|
||||||
|
</root>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
10
.idea/libraries/javafx.xml
generated
10
.idea/libraries/javafx.xml
generated
@@ -7,7 +7,15 @@
|
|||||||
<NATIVE>
|
<NATIVE>
|
||||||
<root url="file://$PATH_TO_FX$" />
|
<root url="file://$PATH_TO_FX$" />
|
||||||
</NATIVE>
|
</NATIVE>
|
||||||
<SOURCES />
|
<SOURCES>
|
||||||
|
<root url="jar://$PATH_TO_FX$/../src.zip!/javafx.base" />
|
||||||
|
<root url="jar://$PATH_TO_FX$/../src.zip!/javafx.controls" />
|
||||||
|
<root url="jar://$PATH_TO_FX$/../src.zip!/javafx.fxml" />
|
||||||
|
<root url="jar://$PATH_TO_FX$/../src.zip!/javafx.graphics" />
|
||||||
|
<root url="jar://$PATH_TO_FX$/../src.zip!/javafx.media" />
|
||||||
|
<root url="jar://$PATH_TO_FX$/../src.zip!/javafx.swing" />
|
||||||
|
<root url="jar://$PATH_TO_FX$/../src.zip!/javafx.web" />
|
||||||
|
</SOURCES>
|
||||||
<jarDirectory url="file://$PATH_TO_FX$" recursive="false" />
|
<jarDirectory url="file://$PATH_TO_FX$" recursive="false" />
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
52
admin/D-originality-u7156831.yml
Normal file
52
admin/D-originality-u7156831.yml
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
# IMPORTANT: It is very important that you correctly complete this originality
|
||||||
|
# statement.
|
||||||
|
#
|
||||||
|
# This is your statement of your submitted work being your own.
|
||||||
|
# Incorrectly filling out this statement could lead to charges
|
||||||
|
# of academic misconduct.
|
||||||
|
#
|
||||||
|
# For information on how to fill this out correctly, see
|
||||||
|
# https://cs.anu.edu.au/courses/comp1110/help/faq/09-originality/
|
||||||
|
#
|
||||||
|
|
||||||
|
declaration: >-
|
||||||
|
I declare that everything I have submitted for stage D of this assignment
|
||||||
|
and all stages before it is entirely my own work, with the following
|
||||||
|
exceptions:
|
||||||
|
|
||||||
|
# Use this to list names of people who you collaborated with, and a
|
||||||
|
# comment about what you collaborated on.
|
||||||
|
#
|
||||||
|
# Add as many "name+comment" entries as necessary
|
||||||
|
# (or remove it altogether if you haven't collaborated with anyone)
|
||||||
|
# collaboration:
|
||||||
|
# - name:
|
||||||
|
# comment: >-
|
||||||
|
|
||||||
|
# Use this to list any code that you used that you did not write,
|
||||||
|
# aside from code provided by the lecturer. Provide a comment
|
||||||
|
# explaining your use and the URL to that code and the licence for
|
||||||
|
# that code
|
||||||
|
#
|
||||||
|
# Add as many "url+licence+comment" entries as necessary
|
||||||
|
# (or remove it altogether if you haven't used any external code)
|
||||||
|
# code:
|
||||||
|
# - comment:
|
||||||
|
# url:
|
||||||
|
# licence:
|
||||||
|
|
||||||
|
# Use this to list any assets (artwork, sound, etc) that you used.
|
||||||
|
# Provide a comment explaining your use of that asset and the URL
|
||||||
|
# and license for the asset
|
||||||
|
#
|
||||||
|
# Add as many "url+licence+comment" entries as necessary
|
||||||
|
# (or remove it altogether if you haven't used any external assets)
|
||||||
|
# assets:
|
||||||
|
# - comment:
|
||||||
|
# url:
|
||||||
|
# licence:
|
||||||
|
|
||||||
|
|
||||||
|
# sign *your* name and uid here
|
||||||
|
name: Nathan Woodburn
|
||||||
|
uid: u7156831
|
||||||
52
admin/D-originality-u7280427.yml
Normal file
52
admin/D-originality-u7280427.yml
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
# IMPORTANT: It is very important that you correctly complete this originality
|
||||||
|
# statement.
|
||||||
|
#
|
||||||
|
# This is your statement of your submitted work being your own.
|
||||||
|
# Incorrectly filling out this statement could lead to charges
|
||||||
|
# of academic misconduct.
|
||||||
|
#
|
||||||
|
# For information on how to fill this out correctly, see
|
||||||
|
# https://cs.anu.edu.au/courses/comp1110/help/faq/09-originality/
|
||||||
|
#
|
||||||
|
|
||||||
|
declaration: >-
|
||||||
|
I declare that everything I have submitted for stage D of this assignment
|
||||||
|
and all stages before it is entirely my own work, with the following
|
||||||
|
exceptions:
|
||||||
|
|
||||||
|
# Use this to list names of people who you collaborated with, and a
|
||||||
|
# comment about what you collaborated on.
|
||||||
|
#
|
||||||
|
# Add as many "name+comment" entries as necessary
|
||||||
|
# (or remove it altogether if you haven't collaborated with anyone)
|
||||||
|
#collaboration:
|
||||||
|
# - name:
|
||||||
|
# comment: >-
|
||||||
|
|
||||||
|
# Use this to list any code that you used that you did not write,
|
||||||
|
# aside from code provided by the lecturer. Provide a comment
|
||||||
|
# explaining your use and the URL to that code and the licence for
|
||||||
|
# that code
|
||||||
|
#
|
||||||
|
# Add as many "url+licence+comment" entries as necessary
|
||||||
|
# (or remove it altogether if you haven't used any external code)
|
||||||
|
#code:
|
||||||
|
# - comment:
|
||||||
|
# url:
|
||||||
|
# licence:
|
||||||
|
|
||||||
|
# Use this to list any assets (artwork, sound, etc) that you used.
|
||||||
|
# Provide a comment explaining your use of that asset and the URL
|
||||||
|
# and license for the asset
|
||||||
|
#
|
||||||
|
# Add as many "url+licence+comment" entries as necessary
|
||||||
|
# (or remove it altogether if you haven't used any external assets)
|
||||||
|
#assets:
|
||||||
|
# - comment:
|
||||||
|
# url:
|
||||||
|
# licence:
|
||||||
|
|
||||||
|
|
||||||
|
# sign *your* name and uid here
|
||||||
|
name: Immanuel Alvaro Bhirawa
|
||||||
|
uid: u7280427
|
||||||
@@ -19,9 +19,9 @@ declaration: >-
|
|||||||
#
|
#
|
||||||
# Add as many "name+comment" entries as necessary
|
# Add as many "name+comment" entries as necessary
|
||||||
# (or remove it altogether if you haven't collaborated with anyone)
|
# (or remove it altogether if you haven't collaborated with anyone)
|
||||||
collaboration:
|
# collaboration:
|
||||||
- name:
|
# - name:
|
||||||
comment: >-
|
# comment: >-
|
||||||
|
|
||||||
# Use this to list any code that you used that you did not write,
|
# Use this to list any code that you used that you did not write,
|
||||||
# aside from code provided by the lecturer. Provide a comment
|
# aside from code provided by the lecturer. Provide a comment
|
||||||
@@ -30,10 +30,10 @@ collaboration:
|
|||||||
#
|
#
|
||||||
# Add as many "url+licence+comment" entries as necessary
|
# Add as many "url+licence+comment" entries as necessary
|
||||||
# (or remove it altogether if you haven't used any external code)
|
# (or remove it altogether if you haven't used any external code)
|
||||||
code:
|
# code:
|
||||||
- comment:
|
# - comment:
|
||||||
url:
|
# url:
|
||||||
licence:
|
# licence:
|
||||||
|
|
||||||
# Use this to list any assets (artwork, sound, etc) that you used.
|
# Use this to list any assets (artwork, sound, etc) that you used.
|
||||||
# Provide a comment explaining your use of that asset and the URL
|
# Provide a comment explaining your use of that asset and the URL
|
||||||
@@ -41,12 +41,12 @@ code:
|
|||||||
#
|
#
|
||||||
# Add as many "url+licence+comment" entries as necessary
|
# Add as many "url+licence+comment" entries as necessary
|
||||||
# (or remove it altogether if you haven't used any external assets)
|
# (or remove it altogether if you haven't used any external assets)
|
||||||
assets:
|
# assets:
|
||||||
- comment:
|
# - comment:
|
||||||
url:
|
# url:
|
||||||
licence:
|
# licence:
|
||||||
|
|
||||||
|
|
||||||
# sign *your* name and uid here
|
# sign *your* name and uid here
|
||||||
name:
|
name: Justin Ryu
|
||||||
uid:
|
uid: u7492895
|
||||||
@@ -8,19 +8,19 @@ declaration: >-
|
|||||||
# be 100 or 99 (33/33/33 is fine). (Remove entries if you have fewer than three
|
# be 100 or 99 (33/33/33 is fine). (Remove entries if you have fewer than three
|
||||||
# members).
|
# members).
|
||||||
contributions:
|
contributions:
|
||||||
|
- uid: u7156831
|
||||||
|
contribution: 33
|
||||||
- uid:
|
- uid:
|
||||||
contribution:
|
contribution:
|
||||||
- uid:
|
- uid: u7280427
|
||||||
contribution:
|
contribution: 33
|
||||||
- uid:
|
|
||||||
contribution:
|
|
||||||
|
|
||||||
# Sign *your* name and uids here. (Remove entries if you have fewer
|
# Sign *your* name and uids here. (Remove entries if you have fewer
|
||||||
# than three members)
|
# than three members)
|
||||||
signatures:
|
signatures:
|
||||||
|
- name: Nathan Woodburn
|
||||||
|
uid: u7156831
|
||||||
- name:
|
- name:
|
||||||
uid:
|
uid:
|
||||||
- name:
|
- name: Immanuel Alvaro Bhirawa
|
||||||
uid:
|
uid: u7280427
|
||||||
- name:
|
|
||||||
uid:
|
|
||||||
@@ -19,9 +19,9 @@ declaration: >-
|
|||||||
#
|
#
|
||||||
# Add as many "name+comment" entries as necessary
|
# Add as many "name+comment" entries as necessary
|
||||||
# (or remove it altogether if you haven't collaborated with anyone)
|
# (or remove it altogether if you haven't collaborated with anyone)
|
||||||
collaboration:
|
# collaboration:
|
||||||
- name:
|
# - name:
|
||||||
comment: >-
|
# comment: >-
|
||||||
|
|
||||||
# Use this to list any code that you used that you did not write,
|
# Use this to list any code that you used that you did not write,
|
||||||
# aside from code provided by the lecturer. Provide a comment
|
# aside from code provided by the lecturer. Provide a comment
|
||||||
@@ -30,10 +30,10 @@ collaboration:
|
|||||||
#
|
#
|
||||||
# Add as many "url+licence+comment" entries as necessary
|
# Add as many "url+licence+comment" entries as necessary
|
||||||
# (or remove it altogether if you haven't used any external code)
|
# (or remove it altogether if you haven't used any external code)
|
||||||
code:
|
# code:
|
||||||
- comment:
|
# - comment:
|
||||||
url:
|
# url:
|
||||||
licence:
|
# licence:
|
||||||
|
|
||||||
# Use this to list any assets (artwork, sound, etc) that you used.
|
# Use this to list any assets (artwork, sound, etc) that you used.
|
||||||
# Provide a comment explaining your use of that asset and the URL
|
# Provide a comment explaining your use of that asset and the URL
|
||||||
@@ -41,17 +41,17 @@ code:
|
|||||||
#
|
#
|
||||||
# Add as many "url+licence+comment" entries as necessary
|
# Add as many "url+licence+comment" entries as necessary
|
||||||
# (or remove it altogether if you haven't used any external assets)
|
# (or remove it altogether if you haven't used any external assets)
|
||||||
assets:
|
# assets:
|
||||||
- comment:
|
# - comment:
|
||||||
url:
|
# url:
|
||||||
licence:
|
# licence:
|
||||||
|
|
||||||
|
|
||||||
# Sign *your* name and uids here. (Remove entries if you have fewer
|
# Sign *your* name and uids here. (Remove entries if you have fewer
|
||||||
# than three members.)
|
# than three members.)
|
||||||
signatures:
|
signatures:
|
||||||
- name:
|
- name: Nathan Woodburn
|
||||||
uid:
|
uid: u7156831
|
||||||
- name:
|
- name:
|
||||||
uid:
|
uid:
|
||||||
- name:
|
- name:
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
## Code Review
|
|
||||||
|
|
||||||
Reviewed by: <your full name>, <your uid>
|
|
||||||
|
|
||||||
Reviewing code written by: <the other person's full name> <other uid>
|
|
||||||
|
|
||||||
Component: <the component being reviewed>
|
|
||||||
|
|
||||||
### Comments
|
|
||||||
|
|
||||||
<write your comments here>
|
|
||||||
|
|
||||||
|
|
||||||
40
admin/E-review-u7156831.md
Normal file
40
admin/E-review-u7156831.md
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
## Code Review
|
||||||
|
|
||||||
|
Reviewed by: Nathan Woodburn, u7156831
|
||||||
|
|
||||||
|
Reviewing code written by: Immanuel Alvaro Bhirawa, u7280427
|
||||||
|
|
||||||
|
Component: `isMoveValid` from [BlueLagoon.java L145-L311](https://gitlab.cecs.anu.edu.au/u7156831/comp1110-ass2/-/blob/master/src/comp1110/ass2/BlueLagoon.java#L145-L311)
|
||||||
|
|
||||||
|
### Comments
|
||||||
|
|
||||||
|
- Good practices used:
|
||||||
|
- Using other functions to help with the main function, such as `isStateStringWellFormed` and `isMoveStringWellFormed`.
|
||||||
|
- Using good variable names such as `currentPhase` and `boardHeight`
|
||||||
|
- Using a `switch case` statement instead of multiple `if` statements.
|
||||||
|
- Using `.addAll()` to add multiple elements to an arraylist instead of iterating through each element and adding them
|
||||||
|
- Good use of `for` loops to iterate through arrays
|
||||||
|
|
||||||
|
- Places to improve:
|
||||||
|
- Some comments are not needed, such as commenting about well named variables.
|
||||||
|
```java
|
||||||
|
int numberOfPlayer = 0; // Number of player
|
||||||
|
String playerId = ""; // Player ID
|
||||||
|
```
|
||||||
|
- Duplicate code could be avoided. For example [this switch](https://gitlab.cecs.anu.edu.au/u7156831/comp1110-ass2/-/blob/b8487c3c0826bef4e676a13f8ea05c578c73d2de/src/comp1110/ass2/BlueLagoon.java#L231-L256) could be shortened to the below to avoid duplicate code.
|
||||||
|
```java
|
||||||
|
switch (numberOfPlayer) {
|
||||||
|
case 4 -> numberOfSettlersPerPlayer = 20;
|
||||||
|
case 3 -> numberOfSettlersPerPlayer = 25;
|
||||||
|
case 2 -> numberOfSettlersPerPlayer = 30;
|
||||||
|
}
|
||||||
|
if (pieceType.equals("S")) {
|
||||||
|
if (settlerCounter + 1 > numberOfSettlersPerPlayer) return false;
|
||||||
|
} else if (pieceType.equals("T")) {
|
||||||
|
if (villageCounter + 1 > numberOfVillagesPerPlayer) return false;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
- A few parts of code could be moved outside of the loop to improve efficiency and speed. For example the above snippet could be moved to the part of the code where numberOfPlayer is set.
|
||||||
|
|
||||||
|
- Possible errors
|
||||||
|
- `numberOfSettlersPerPlayer -= 10;` (and the `-5` version) could create the incorrect number as this is inside a loop. This could be avoided by setting the variable to a constant value instead of subtracting 10 each time.
|
||||||
33
admin/E-review-u7280427.md
Normal file
33
admin/E-review-u7280427.md
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
## Code Review
|
||||||
|
|
||||||
|
Reviewed by: Immanuel Alvaro Bhirawa, u7280427
|
||||||
|
|
||||||
|
Reviewing code written by: Nathan Woodburn, u7156831
|
||||||
|
|
||||||
|
Component: `isStateStringWellFormed` from BlueLagoon.java starting from line 32 to line 68
|
||||||
|
|
||||||
|
### Comments
|
||||||
|
|
||||||
|
- Best features of the code :
|
||||||
|
`isStateStringWellFormed` uses a great implementation of Regex and everything is very short, concised, and detailed.
|
||||||
|
10/10 for the regex implementation.
|
||||||
|
|
||||||
|
- Documentation of the code :
|
||||||
|
The documentation used throughout the code is short but detailed, only describing what the parts of code do in a concise
|
||||||
|
and informative manner that is both readable and useful for the reader.
|
||||||
|
10/10 for Documentation.
|
||||||
|
|
||||||
|
- The program decomposition ( class and method structure ) :
|
||||||
|
The structure for the method `isStateStringWellFormed` is very organized given the spaces between each functions/parts
|
||||||
|
of the code. Thus, making the method readable and easy to understand without overloading the user too much.
|
||||||
|
10/10 for method structure.
|
||||||
|
|
||||||
|
- Java Code Convention ( Methods, variables, Style ) :
|
||||||
|
All the variables such as `matchArray`, `matchString` and `numPlayers` are all approriately named according to the
|
||||||
|
respective functions of the variables. Additionally, the style of code throughout the style remain consistent,
|
||||||
|
especially the parts that involve Regex.
|
||||||
|
10/10 for variables and style consistency.
|
||||||
|
|
||||||
|
- Any errors on the code? :
|
||||||
|
As far as what I have reviewed, I do not see any errors in the code both from the syntax nor semantics.
|
||||||
|
Everything run as expected.
|
||||||
3
src/META-INF/MANIFEST.MF
Normal file
3
src/META-INF/MANIFEST.MF
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
Manifest-Version: 1.0
|
||||||
|
Main-Class: comp1110.ass2.gui.Game
|
||||||
|
|
||||||
3
src/comp1110/.idea/.gitignore
generated
vendored
Normal file
3
src/comp1110/.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
6
src/comp1110/.idea/misc.xml
generated
Normal file
6
src/comp1110/.idea/misc.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
8
src/comp1110/.idea/modules.xml
generated
Normal file
8
src/comp1110/.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/comp1110.iml" filepath="$PROJECT_DIR$/comp1110.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
package comp1110.ass2;
|
package comp1110.ass2;
|
||||||
|
|
||||||
import gittest.A;
|
import java.lang.reflect.Array;
|
||||||
import javafx.scene.paint.Color;
|
|
||||||
|
|
||||||
import java.sql.Time;
|
|
||||||
import java.text.NumberFormat;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.lang.*;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
public class BlueLagoon {
|
public class BlueLagoon {
|
||||||
// The Game Strings for five maps have been created for you.
|
// The Game Strings for five maps have been created for you.
|
||||||
// They have only been encoded for two players. However, they are
|
// They have only been encoded for two players. However, they are
|
||||||
// easily extendable to more by adding additional player statements.
|
// easily extendable to more by adding additional player statements.
|
||||||
|
|
||||||
|
// region Game Strings
|
||||||
public static final String DEFAULT_GAME = "a 13 2; c 0 E; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
public static final String DEFAULT_GAME = "a 13 2; c 0 E; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
||||||
public static final String WHEELS_GAME = "a 13 2; c 0 E; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
public static final String WHEELS_GAME = "a 13 2; c 0 E; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
||||||
public static final String FACE_GAME = "a 13 2; c 0 E; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
public static final String FACE_GAME = "a 13 2; c 0 E; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
||||||
public static final String SIDES_GAME = "a 7 2; c 0 E; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
public static final String SIDES_GAME = "a 7 2; c 0 E; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
||||||
public static final String SPACE_INVADERS_GAME = "a 23 2; c 0 E; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
public static final String SPACE_INVADERS_GAME = "a 23 2; c 0 E; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
// region Checks on strings
|
||||||
/**
|
/**
|
||||||
* Check if the string encoding of the game state is well-formed.
|
* Check if the string encoding of the game state is well-formed.
|
||||||
* Note that this does not mean checking that the state is valid
|
* Note that this does not mean checking that the state is valid
|
||||||
@@ -57,7 +55,16 @@ public class BlueLagoon {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check if the state string matches the regex string
|
// Check if the state string matches the regex string
|
||||||
return stateString.matches(matchString);
|
if (!stateString.matches(matchString)) return false;
|
||||||
|
|
||||||
|
// Check that there is one and only one of each player id
|
||||||
|
// This fixed test 2-3 of D2DTests.testIsStateStringWellFormed
|
||||||
|
int numPlayers = Integer.parseInt(stateString.substring(stateString.indexOf(";") - 1, stateString.indexOf(";")));
|
||||||
|
for (int i = 0; i < numPlayers; i++) {
|
||||||
|
if (stateString.length() - stateString.replaceAll("p "+i,"").length() != 3) return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -81,6 +88,9 @@ public class BlueLagoon {
|
|||||||
// return false
|
// return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
// region Distribute resources
|
||||||
/**
|
/**
|
||||||
* Given a state string which is yet to have resources distributed amongst the stone circles,
|
* Given a state string which is yet to have resources distributed amongst the stone circles,
|
||||||
* randomly distribute the resources and statuettes between all the stone circles.
|
* randomly distribute the resources and statuettes between all the stone circles.
|
||||||
@@ -99,87 +109,16 @@ public class BlueLagoon {
|
|||||||
* @param stateString a string representing a game state without resources distributed
|
* @param stateString a string representing a game state without resources distributed
|
||||||
* @return a string of the game state with resources randomly distributed
|
* @return a string of the game state with resources randomly distributed
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public static String distributeResources(String stateString) {
|
public static String distributeResources(String stateString) {
|
||||||
// Check if the stateString is well-formed
|
State state = new State(stateString);
|
||||||
if (!isStateStringWellFormed(stateString)) return stateString;
|
state.distributeResources();
|
||||||
|
return state.toString();
|
||||||
// Grab the stone circles from the stateString
|
|
||||||
String stoneCircles = stateString.substring(stateString.indexOf("s") + 2, stateString.indexOf("r") - 2);
|
|
||||||
|
|
||||||
// Split the stone circles into an array of cords
|
|
||||||
String[] stoneCircleCords = stoneCircles.split(" ");
|
|
||||||
|
|
||||||
// Check if there are 32 stone circles
|
|
||||||
if (stoneCircleCords.length != 32) return stateString;
|
|
||||||
|
|
||||||
// Create a random object and an arrays and list to shuffle the stone circles
|
|
||||||
Random rand = new Random();
|
|
||||||
|
|
||||||
// Number of times to shuffle the stone circles (can be changed)
|
|
||||||
int shuffle_number = 3;
|
|
||||||
|
|
||||||
// Create a copy of the stone circle array to shuffle
|
|
||||||
String[] stoneCircleRandom = stoneCircleCords;
|
|
||||||
|
|
||||||
// Shuffle the stone circles the specified number of times
|
|
||||||
for (int i = 0; i < shuffle_number; i++) {
|
|
||||||
// Create a temporary array to store the shuffled stone circles
|
|
||||||
String[] tempStoneCircleRandom = new String[32];
|
|
||||||
// Create a list to store the used cords (to avoid duplicates)
|
|
||||||
List<String> usedCords = new ArrayList<String>();
|
|
||||||
|
|
||||||
// Shuffle the array
|
|
||||||
for (int j = 0; j < 32; j++) {
|
|
||||||
// For 0-31 generate a random cord from the stone circle array and check if it has been used
|
|
||||||
int randomIndex = rand.nextInt(31);
|
|
||||||
while (usedCords.contains(stoneCircleCords[randomIndex])) {
|
|
||||||
// If it has been used, try the next in line
|
|
||||||
if (randomIndex == 31) {
|
|
||||||
randomIndex = 0;
|
|
||||||
}
|
|
||||||
else randomIndex++;
|
|
||||||
}
|
|
||||||
// If it hasn't been used, add it to the new array
|
|
||||||
tempStoneCircleRandom[j] = stoneCircleRandom[randomIndex];
|
|
||||||
usedCords.add(stoneCircleCords[randomIndex]);
|
|
||||||
}
|
|
||||||
// Replace the old array with the new one
|
|
||||||
stoneCircleRandom = tempStoneCircleRandom;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
|
||||||
// Create a string to store the new resources state
|
// region Check and generate moves
|
||||||
String newResourcesState = "r";
|
|
||||||
|
|
||||||
// Create an array for each resource type
|
|
||||||
char[] resources = {'C', 'B', 'W', 'P'};
|
|
||||||
|
|
||||||
// Create a variable to keep track of how many resources have been sorted
|
|
||||||
int numSorted = 0;
|
|
||||||
|
|
||||||
// For each resource type
|
|
||||||
for (char r:resources){
|
|
||||||
newResourcesState += " " + r;
|
|
||||||
// Assign 6 to a stone circle
|
|
||||||
for (int i = 0; i < 6; i++){
|
|
||||||
newResourcesState += " " + stoneCircleRandom[numSorted];
|
|
||||||
numSorted++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Assign 8 statuettes to a stone circle
|
|
||||||
newResourcesState += " S";
|
|
||||||
for (int i = 0; i < 8; i++){
|
|
||||||
newResourcesState += " " + stoneCircleRandom[numSorted];
|
|
||||||
numSorted++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace the old resources state with the new one
|
|
||||||
stateString = stateString.replace("r C B W P S", newResourcesState);
|
|
||||||
|
|
||||||
return stateString;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a state string and a move string, determine if the move is
|
* Given a state string and a move string, determine if the move is
|
||||||
* valid for the current player.
|
* valid for the current player.
|
||||||
@@ -199,8 +138,8 @@ public class BlueLagoon {
|
|||||||
* Importantly, players can now only play on the sea if it is
|
* Importantly, players can now only play on the sea if it is
|
||||||
* adjacent to a piece they already own.
|
* adjacent to a piece they already own.
|
||||||
*
|
*
|
||||||
// * @param stateString a string representing a game state
|
* @param stateString a string representing a game state
|
||||||
// * @param moveString a string representing the current player's move
|
* @param moveString a string representing the current player's move
|
||||||
* @return true if the current player can make the move and false otherwise
|
* @return true if the current player can make the move and false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean isMoveValid(String stateString, String moveString) {
|
public static boolean isMoveValid(String stateString, String moveString) {
|
||||||
@@ -243,25 +182,27 @@ public class BlueLagoon {
|
|||||||
switch (stateCases) {
|
switch (stateCases) {
|
||||||
|
|
||||||
// Get the number of player from here
|
// Get the number of player from here
|
||||||
case "a":
|
case "a" -> {
|
||||||
boardHeight = Integer.parseInt(parseSplit[1]);
|
boardHeight = Integer.parseInt(parseSplit[1]);
|
||||||
String playerAmount = parseSplit[2];
|
String playerAmount = parseSplit[2];
|
||||||
numberOfPlayer = Integer.parseInt(playerAmount);
|
numberOfPlayer = Integer.parseInt(playerAmount);
|
||||||
break;
|
switch (numberOfPlayer) {
|
||||||
|
case 4 -> numberOfSettlersPerPlayer = 20;
|
||||||
|
case 3 -> numberOfSettlersPerPlayer = 25;
|
||||||
|
case 2 -> numberOfSettlersPerPlayer = 30;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Get the player ID and Current Phase from here
|
// Get the player ID and Current Phase from here
|
||||||
// Phase Exploration or Settlement
|
// Phase Exploration or Settlement
|
||||||
case "c":
|
case "c" -> {
|
||||||
playerId = parseSplit[1];
|
playerId = parseSplit[1];
|
||||||
currentPhase = parseSplit[2];
|
currentPhase = parseSplit[2];
|
||||||
break;
|
}
|
||||||
|
|
||||||
// Get the Land coords (Island Coords)
|
// Get the Land coords (Island Coords)
|
||||||
case "i":
|
case "i" -> coordsContainer.addAll(Arrays.asList(parseSplit).subList(2, parseSplit.length));
|
||||||
coordsContainer.addAll(Arrays.asList(parseSplit).subList(2, parseSplit.length));
|
case "p" -> {
|
||||||
break;
|
|
||||||
|
|
||||||
case "p":
|
|
||||||
// Check if there's enough pieces left for that player that is moving
|
// Check if there's enough pieces left for that player that is moving
|
||||||
pStatePlayerId = parseSplit[1];
|
pStatePlayerId = parseSplit[1];
|
||||||
|
|
||||||
@@ -291,50 +232,24 @@ public class BlueLagoon {
|
|||||||
if (pStatePlayerId.equals(playerId)) playerVillageCoords.add(parseSplit[i]);
|
if (pStatePlayerId.equals(playerId)) playerVillageCoords.add(parseSplit[i]);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
if (pieceType.equals("S") && settlerCounter + 1 > numberOfSettlersPerPlayer) return false;
|
||||||
// Checking the requirement of how many pieces are left //
|
else if (pieceType.equals("T") && villageCounter + 1 > numberOfVillagesPerPlayer) return false;
|
||||||
switch (numberOfPlayer) {
|
|
||||||
case 4:
|
|
||||||
numberOfSettlersPerPlayer -= 10;
|
|
||||||
if (pieceType.equals("S")) {
|
|
||||||
if (settlerCounter + 1 > numberOfSettlersPerPlayer) return false;
|
|
||||||
} else if (pieceType.equals("T")) {
|
|
||||||
if (villageCounter + 1 > numberOfVillagesPerPlayer) return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
numberOfSettlersPerPlayer -= 5;
|
|
||||||
if (pieceType.equals("S")) {
|
|
||||||
if (settlerCounter + 1 > numberOfSettlersPerPlayer) return false;
|
|
||||||
} else if (pieceType.equals("T")) {
|
|
||||||
if (villageCounter + 1 > numberOfVillagesPerPlayer) return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
if (pieceType.equals("S")) {
|
|
||||||
if (settlerCounter + 1 > numberOfSettlersPerPlayer) return false;
|
|
||||||
} else if (pieceType.equals("T")) {
|
|
||||||
if (villageCounter + 1 > numberOfVillagesPerPlayer) return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// out of bound for height
|
// out of bound for height
|
||||||
if(yMoveCoords > boardHeight - 1) return false;
|
if(yMoveCoords > boardHeight - 1) return false;
|
||||||
|
|
||||||
// if it's even rows, check the number of cols for out of bound (i.e. the width)
|
// if it's even rows, check the number of cols for out of bound (i.e. the width)
|
||||||
if(yMoveCoords % 2 == 0) {
|
if(yMoveCoords % 2 == 0 && xMoveCoords > boardHeight - 2) return false;
|
||||||
if(xMoveCoords > boardHeight - 2) return false;
|
|
||||||
}
|
|
||||||
else if(xMoveCoords > boardHeight - 1) return false;
|
else if(xMoveCoords > boardHeight - 1) return false;
|
||||||
|
|
||||||
// For Exploration Phase and or Settlement Phase
|
// For Exploration Phase and or Settlement Phase
|
||||||
switch (currentPhase) {
|
switch (currentPhase) {
|
||||||
// Exploration Phase
|
// Exploration Phase
|
||||||
case "E":
|
case "E" -> {
|
||||||
// If the move Coords is an occupied space, return false;
|
// If the move Coords is an occupied space, return false;
|
||||||
if (settlerCoords.contains(moveCoords) || villageCoords.contains(moveCoords)) return false;
|
if (settlerCoords.contains(moveCoords) || villageCoords.contains(moveCoords)) return false;
|
||||||
|
|
||||||
@@ -354,10 +269,10 @@ public class BlueLagoon {
|
|||||||
if (!isAdjacent(moveCoords, playerSettlerCoords) &&
|
if (!isAdjacent(moveCoords, playerSettlerCoords) &&
|
||||||
!isAdjacent(moveCoords, playerVillageCoords)) return false;
|
!isAdjacent(moveCoords, playerVillageCoords)) return false;
|
||||||
}
|
}
|
||||||
break;
|
}
|
||||||
|
|
||||||
// Settlement Phase
|
// Settlement Phase
|
||||||
case "S":
|
case "S" -> {
|
||||||
// If the move coord is an occupied space, return false;
|
// If the move coord is an occupied space, return false;
|
||||||
if (settlerCoords.contains(moveCoords)) return false;
|
if (settlerCoords.contains(moveCoords)) return false;
|
||||||
if (villageCoords.contains(moveCoords)) return false;
|
if (villageCoords.contains(moveCoords)) return false;
|
||||||
@@ -369,10 +284,11 @@ public class BlueLagoon {
|
|||||||
if (!isAdjacent(moveCoords, playerSettlerCoords) &&
|
if (!isAdjacent(moveCoords, playerSettlerCoords) &&
|
||||||
!isAdjacent(moveCoords, playerVillageCoords)) return false;
|
!isAdjacent(moveCoords, playerVillageCoords)) return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isAdjacent(String centerCoords, ArrayList<String> coordsContainer) {
|
public static boolean isAdjacent(String centerCoords, ArrayList<String> coordsContainer) {
|
||||||
String[] coordsSplit = centerCoords.split(",");
|
String[] coordsSplit = centerCoords.split(",");
|
||||||
int mainX = Integer.parseInt(coordsSplit[1]); // xCoord for center Coords
|
int mainX = Integer.parseInt(coordsSplit[1]); // xCoord for center Coords
|
||||||
int mainY = Integer.parseInt(coordsSplit[0]); // yCoord for center Coords
|
int mainY = Integer.parseInt(coordsSplit[0]); // yCoord for center Coords
|
||||||
@@ -393,58 +309,6 @@ public class BlueLagoon {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* This method is to check if the move is valid for the current player
|
|
||||||
* This is a very trimmed down version of the isMoveValid method
|
|
||||||
*
|
|
||||||
* @param pieceType Type of piece being placed (S = Settler, T = Village)
|
|
||||||
* @param moveCoords The coords of the piece being placed (i.e. 1,2)
|
|
||||||
* @param currentPhase The current phase of the game (E = Exploration, S = Settlement)
|
|
||||||
* @param coordsContainer The coords of the land in a ArrayList of Strings
|
|
||||||
* @param settlerCoords The coords of the Settlers in a ArrayList of Strings
|
|
||||||
* @param villageCoords The coords of the Villages in a ArrayList of Strings
|
|
||||||
* @param playerSettlerCoords The coords of the Settlers of the current player in a ArrayList of Strings
|
|
||||||
* @param playerVillageCoords The coords of the Villages of the current player in a ArrayList of Strings
|
|
||||||
* @return boolean True if the move is valid, false if the move is invalid
|
|
||||||
*/
|
|
||||||
|
|
||||||
public static boolean isMoveValidTrim(String pieceType, String moveCoords,
|
|
||||||
String currentPhase, ArrayList<String> coordsContainer,
|
|
||||||
ArrayList<String> settlerCoords,
|
|
||||||
ArrayList<String> villageCoords, ArrayList<String> playerSettlerCoords,
|
|
||||||
ArrayList<String> playerVillageCoords) {
|
|
||||||
// For Exploration Phase and or Settlement Phase
|
|
||||||
switch(currentPhase){
|
|
||||||
// Exploration Phase
|
|
||||||
case "E":
|
|
||||||
// If the move Coords is an occupied space, return false;
|
|
||||||
if(settlerCoords.contains(moveCoords) || villageCoords.contains(moveCoords)) return false;
|
|
||||||
// If the Village is being placed on the sea return false
|
|
||||||
if(pieceType.equals("T") && !coordsContainer.contains(moveCoords)) return false;
|
|
||||||
// if the village is placed on Land and it's not adjacent to any
|
|
||||||
// of the pieces return false
|
|
||||||
if(pieceType.equals("T") && (!isAdjacent(moveCoords, playerVillageCoords) &&
|
|
||||||
!isAdjacent(moveCoords, playerSettlerCoords))) return false;
|
|
||||||
// If settler is on land and it's not adjacent to any of the pieces
|
|
||||||
// return false
|
|
||||||
if(pieceType.equals("S") && coordsContainer.contains(moveCoords)){
|
|
||||||
if(!isAdjacent(moveCoords, playerSettlerCoords) &&
|
|
||||||
!isAdjacent(moveCoords, playerVillageCoords)) return false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
// Settlement Phase
|
|
||||||
case "S":
|
|
||||||
// If the move coord is an occupied space, return false;
|
|
||||||
if(settlerCoords.contains(moveCoords)) return false;
|
|
||||||
if(villageCoords.contains(moveCoords)) return false;
|
|
||||||
|
|
||||||
// if the settler is not adjacent with any of the pieces return false
|
|
||||||
if(!isAdjacent(moveCoords, playerSettlerCoords) &&
|
|
||||||
!isAdjacent(moveCoords, playerVillageCoords)) return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a state string, generate a set containing all move strings playable
|
* Given a state string, generate a set containing all move strings playable
|
||||||
* by the current player.
|
* by the current player.
|
||||||
@@ -456,77 +320,18 @@ public class BlueLagoon {
|
|||||||
*/
|
*/
|
||||||
public static Set<String> generateAllValidMoves(String stateString) {
|
public static Set<String> generateAllValidMoves(String stateString) {
|
||||||
|
|
||||||
// Get number of players
|
// Create a state object
|
||||||
int numPlayers = Character.getNumericValue(stateString.charAt(stateString.indexOf(";") - 1));
|
State state = new State(stateString);
|
||||||
// Store the current game phase
|
|
||||||
String gamePhase = "E";
|
// Get information from the state string
|
||||||
// If the game is not in the exploration phase use state 1
|
int numPlayers = state.getNumPlayers();
|
||||||
if (!stateString.contains("E")) gamePhase = "S";
|
char gamePhase = state.getCurrentPhase();
|
||||||
// Get the current player
|
|
||||||
String currentPlayer = stateString.substring(stateString.indexOf("c ") + 2,stateString.indexOf("c ") + 3);
|
|
||||||
// Get the board size
|
// Get the board size
|
||||||
int boardHeight = Integer.parseInt(stateString.substring(stateString.indexOf("a ") + 2, stateString.indexOf(";") - 2));
|
int boardHeight = state.boardHeight;
|
||||||
// Get player data
|
|
||||||
String allPlayerData = stateString.substring(stateString.indexOf("p " + currentPlayer));
|
|
||||||
String playerData = allPlayerData.substring(0, allPlayerData.indexOf(";"));
|
|
||||||
String[] pStates = stateString.substring(stateString.indexOf("p ")).split("; ?");
|
|
||||||
|
|
||||||
ArrayList<String> settlerCoords = new ArrayList<>(); // Placed Settler Coordinates
|
// Create a set to store all possible moves
|
||||||
ArrayList<String> villageCoords = new ArrayList<>(); // Placed villages coordinates
|
Set<String> allMoves = new HashSet<>();
|
||||||
ArrayList<String> playerSettlerCoords = new ArrayList<>(); // The current Player's settler coords
|
|
||||||
ArrayList<String> playerVillageCoords = new ArrayList<>(); // The current Player's Village coords
|
|
||||||
|
|
||||||
for (String pState:pStates) {
|
|
||||||
|
|
||||||
String[] parseSplit = pState.split(" ");
|
|
||||||
// Check if there's enough pieces left for that player that is moving
|
|
||||||
String pStatePlayerId = parseSplit[1];
|
|
||||||
|
|
||||||
// Collecting the settler Coords that has been placed
|
|
||||||
for (int i = 9; i < parseSplit.length; i++) {
|
|
||||||
while (!parseSplit[i].equals("T")) {
|
|
||||||
settlerCoords.add(parseSplit[i]); // Store all the settler coords
|
|
||||||
|
|
||||||
// If the current player ID is the same as the placed settler's player ID
|
|
||||||
// Store it into array
|
|
||||||
if (pStatePlayerId.equals(currentPlayer)) playerSettlerCoords.add(parseSplit[i]);
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
|
|
||||||
// Collecting the village coords that has been placed
|
|
||||||
while (i < parseSplit.length) {
|
|
||||||
villageCoords.add(parseSplit[i]); // Store all the village Coords
|
|
||||||
|
|
||||||
// If the current player ID is the same as the placed Village's player ID
|
|
||||||
// Store it into array
|
|
||||||
if (pStatePlayerId.equals(currentPlayer)) playerVillageCoords.add(parseSplit[i]);
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get placed pieces
|
|
||||||
String settlersPlaced = playerData.substring(playerData.indexOf("S") + 2, playerData.indexOf("T"));
|
|
||||||
int numSettlersPlaced = settlersPlaced.split(" ").length;
|
|
||||||
if (!settlersPlaced.contains(" ")){
|
|
||||||
numSettlersPlaced = 0;
|
|
||||||
}
|
|
||||||
String villagesPlaced = playerData.substring(playerData.indexOf("T")+1);
|
|
||||||
int numVillagesPlaced = villagesPlaced.split(" ").length;
|
|
||||||
if (!villagesPlaced.contains(" ")){
|
|
||||||
numVillagesPlaced = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get island data
|
|
||||||
String[] islands = stateString.substring(stateString.indexOf("i ")).split("; ");
|
|
||||||
// Get the coordinates of the islands
|
|
||||||
ArrayList<String> coordsContainer = new ArrayList<>();
|
|
||||||
|
|
||||||
for (String island : islands) {
|
|
||||||
if (!island.substring(0, 2).equals("i ")) continue;
|
|
||||||
coordsContainer.addAll(Arrays.asList(island.substring(4).split(" ")));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Calculate number of pieces each player starts with
|
// Calculate number of pieces each player starts with
|
||||||
int startNumSettlers = 0;
|
int startNumSettlers = 0;
|
||||||
@@ -542,12 +347,43 @@ public class BlueLagoon {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if the player has placed all their settlers or villages
|
|
||||||
boolean hasSettler = (numSettlersPlaced < startNumSettlers);
|
|
||||||
boolean hasVillage = (numVillagesPlaced <= 5);
|
|
||||||
|
|
||||||
// Create a set to store all possible moves
|
// Check if the player has placed all their settlers or villages
|
||||||
Set<String> allMoves = new HashSet<>();
|
boolean hasSettler = (state.getCurrentPlayer().getSettlers().length < startNumSettlers);
|
||||||
|
boolean hasVillage = (state.getCurrentPlayer().getVillages().length < 5);
|
||||||
|
|
||||||
|
if (!hasSettler && !(hasVillage && gamePhase == 'E')) return allMoves;
|
||||||
|
|
||||||
|
// Add used coords
|
||||||
|
ArrayList<String> settlerCoords = new ArrayList<>(); // Placed Settler Coordinates
|
||||||
|
ArrayList<String> villageCoords = new ArrayList<>(); // Placed villages coordinates
|
||||||
|
ArrayList<String> playerSettlerCoords = new ArrayList<>(); // The current Player's settler coords
|
||||||
|
ArrayList<String> playerVillageCoords = new ArrayList<>(); // The current Player's Village coords
|
||||||
|
|
||||||
|
for (int i = 0; i < numPlayers; i++){
|
||||||
|
for (Coord c: state.getPlayer(i).getSettlers()){
|
||||||
|
settlerCoords.add(c.toString());
|
||||||
|
}
|
||||||
|
for (Coord c: state.getPlayer(i).getVillages()){
|
||||||
|
villageCoords.add(c.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Coord c: state.getCurrentPlayer().getSettlers()){
|
||||||
|
playerSettlerCoords.add(c.toString());
|
||||||
|
}
|
||||||
|
for (Coord c: state.getCurrentPlayer().getVillages()){
|
||||||
|
playerVillageCoords.add(c.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the coordinates of the islands
|
||||||
|
ArrayList<String> coordsContainer = new ArrayList<>();
|
||||||
|
|
||||||
|
for (Island island : state.getIslands()) {
|
||||||
|
for (Coord c:island.getCoords()){
|
||||||
|
coordsContainer.add(c.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Generate all possible coordinates in an array
|
// Generate all possible coordinates in an array
|
||||||
String[] coordinates = new String[boardHeight * boardHeight];
|
String[] coordinates = new String[boardHeight * boardHeight];
|
||||||
@@ -558,33 +394,46 @@ public class BlueLagoon {
|
|||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// For each coordinate
|
// For each coordinate
|
||||||
for (String cord:coordinates) {
|
for (String cord:coordinates) {
|
||||||
|
// Make sure the coordinate is not already used
|
||||||
|
if(settlerCoords.contains(cord)) continue;
|
||||||
|
if(villageCoords.contains(cord)) continue;
|
||||||
|
// Make sure the coordinate is in bounds
|
||||||
int y = Integer.parseInt(cord.split(",")[1]);
|
int y = Integer.parseInt(cord.split(",")[1]);
|
||||||
if(Integer.parseInt(cord.substring(0,cord.indexOf(','))) % 2 == 0) {
|
if(Integer.parseInt(cord.substring(0,cord.indexOf(','))) % 2 == 0) {
|
||||||
if(y > boardHeight - 2) continue;
|
if(y > boardHeight - 2) continue;
|
||||||
}
|
}
|
||||||
else if(y > boardHeight - 1) continue;
|
else if(y > boardHeight - 1) continue;
|
||||||
|
switch (gamePhase) {
|
||||||
// If the player has not placed all their settlers
|
case 'E' -> {
|
||||||
if (hasSettler){
|
if (!coordsContainer.contains(cord)) {
|
||||||
if (isMoveValidTrim("S", cord,gamePhase,
|
if (hasSettler) allMoves.add("S " + cord);
|
||||||
coordsContainer,settlerCoords,villageCoords,playerSettlerCoords,playerVillageCoords)) {
|
break;
|
||||||
allMoves.add("S " + cord);
|
}
|
||||||
|
// If the Village is being placed on the sea return false
|
||||||
|
if ((isAdjacent(cord, playerVillageCoords) || isAdjacent(cord, playerSettlerCoords))) {
|
||||||
|
// Add the move to the set
|
||||||
|
if (hasVillage) allMoves.add("T " + cord);
|
||||||
|
if (hasSettler) allMoves.add("S " + cord);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (hasVillage && gamePhase == "E") {
|
// Settlement Phase
|
||||||
if (isMoveValidTrim("T", cord,gamePhase,
|
case 'S' -> {
|
||||||
coordsContainer,settlerCoords,villageCoords,playerSettlerCoords,playerVillageCoords)) {
|
// if the settler is not adjacent with any of the pieces return false
|
||||||
allMoves.add("T " + cord);
|
if ((isAdjacent(cord, playerVillageCoords) || isAdjacent(cord, playerSettlerCoords))) {
|
||||||
|
// Add the move to the set
|
||||||
|
if (hasSettler) allMoves.add("S " + cord);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return allMoves;
|
return allMoves;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a state string, determine whether it represents an end of phase state.
|
* Given a state string, determine whether it represents an end of phase state.
|
||||||
* <p>
|
* <p>
|
||||||
@@ -596,7 +445,8 @@ public class BlueLagoon {
|
|||||||
* @return true if the state is at the end of either phase and false otherwise
|
* @return true if the state is at the end of either phase and false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean isPhaseOver(String stateString){
|
public static boolean isPhaseOver(String stateString){
|
||||||
return false; // FIXME Task 9
|
State state = new State(stateString);
|
||||||
|
return state.isPhaseOver();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -611,9 +461,17 @@ public class BlueLagoon {
|
|||||||
* @return a new state string achieved by placing the move on the board
|
* @return a new state string achieved by placing the move on the board
|
||||||
*/
|
*/
|
||||||
public static String placePiece(String stateString, String moveString){
|
public static String placePiece(String stateString, String moveString){
|
||||||
return ""; // FIXME Task 10
|
State state = new State(stateString);
|
||||||
|
char pieceType = moveString.charAt(0);
|
||||||
|
String coordStr = moveString.substring(2);
|
||||||
|
int x = Integer.parseInt(coordStr.split(",")[0]);
|
||||||
|
int y = Integer.parseInt(coordStr.split(",")[1]);
|
||||||
|
Coord coord = new Coord(x, y);
|
||||||
|
state.placePiece(coord, pieceType);
|
||||||
|
return state.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a state string, calculate the "Islands" portion of the score for
|
* Given a state string, calculate the "Islands" portion of the score for
|
||||||
* each player as if it were the end of a phase. The return value is an
|
* each player as if it were the end of a phase. The return value is an
|
||||||
@@ -629,9 +487,21 @@ public class BlueLagoon {
|
|||||||
* @return an integer array containing the calculated "Islands" portion of
|
* @return an integer array containing the calculated "Islands" portion of
|
||||||
* the score for each player
|
* the score for each player
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
//"i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2;"
|
||||||
|
|
||||||
|
// "p 1 42 1 2 3 4 5 S 5,6 8,7 T 1,2;"
|
||||||
|
|
||||||
public static int[] calculateTotalIslandsScore(String stateString) {
|
public static int[] calculateTotalIslandsScore(String stateString) {
|
||||||
return new int[]{0, 0}; // FIXME Task 11
|
State state = new State(stateString);
|
||||||
|
int[] scores = new int[state.getNumPlayers()];
|
||||||
|
for (int i = 0; i < state.getNumPlayers(); i++) {
|
||||||
|
scores[i] = state.scoreTotalIslands(i);
|
||||||
}
|
}
|
||||||
|
return scores;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a state string, calculate the "Links" portion of the score for
|
* Given a state string, calculate the "Links" portion of the score for
|
||||||
@@ -651,7 +521,12 @@ public class BlueLagoon {
|
|||||||
* the score for each player
|
* the score for each player
|
||||||
*/
|
*/
|
||||||
public static int[] calculateIslandLinksScore(String stateString){
|
public static int[] calculateIslandLinksScore(String stateString){
|
||||||
return new int[]{0, 0}; // FIXME Task 11
|
State state = new State(stateString);
|
||||||
|
int[] scores = new int[state.getNumPlayers()];
|
||||||
|
for (int i = 0; i < state.getNumPlayers(); i++) {
|
||||||
|
scores[i] = state.scoreLinks(i);
|
||||||
|
}
|
||||||
|
return scores;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -674,7 +549,12 @@ public class BlueLagoon {
|
|||||||
* of the score for each player
|
* of the score for each player
|
||||||
*/
|
*/
|
||||||
public static int[] calculateIslandMajoritiesScore(String stateString){
|
public static int[] calculateIslandMajoritiesScore(String stateString){
|
||||||
return new int[]{0, 0}; // FIXME Task 11
|
State state = new State(stateString);
|
||||||
|
int[] scores = new int[state.getNumPlayers()];
|
||||||
|
for (int i = 0; i < state.getNumPlayers(); i++) {
|
||||||
|
scores[i] = state.scoreMajorities(i);
|
||||||
|
}
|
||||||
|
return scores;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -701,7 +581,12 @@ public class BlueLagoon {
|
|||||||
* portions of the score for each player
|
* portions of the score for each player
|
||||||
*/
|
*/
|
||||||
public static int[] calculateResourcesAndStatuettesScore(String stateString){
|
public static int[] calculateResourcesAndStatuettesScore(String stateString){
|
||||||
return new int[]{0, 0}; // FIXME Task 11
|
State state = new State(stateString);
|
||||||
|
int[] scores = new int[state.getNumPlayers()];
|
||||||
|
for (int i = 0; i < state.getNumPlayers(); i++) {
|
||||||
|
scores[i] = state.scoreResources(i)+state.scoreStatuettes(i);
|
||||||
|
}
|
||||||
|
return scores;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -716,8 +601,14 @@ public class BlueLagoon {
|
|||||||
* @return an integer array containing the calculated scores for each player
|
* @return an integer array containing the calculated scores for each player
|
||||||
*/
|
*/
|
||||||
public static int[] calculateScores(String stateString){
|
public static int[] calculateScores(String stateString){
|
||||||
return new int[]{0, 0}; // FIXME Task 11
|
State state = new State(stateString);
|
||||||
|
int[] scores = new int[state.getNumPlayers()];
|
||||||
|
for (int i = 0; i < state.getNumPlayers(); i++) {
|
||||||
|
scores[i] = state.createScore(i);
|
||||||
}
|
}
|
||||||
|
return scores;
|
||||||
|
}
|
||||||
|
// endregion
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a state string representing an end of phase state, return a new state
|
* Given a state string representing an end of phase state, return a new state
|
||||||
@@ -737,7 +628,14 @@ public class BlueLagoon {
|
|||||||
* @return a string representing the new state achieved by following the end of phase rules
|
* @return a string representing the new state achieved by following the end of phase rules
|
||||||
*/
|
*/
|
||||||
public static String endPhase(String stateString){
|
public static String endPhase(String stateString){
|
||||||
return ""; // FIXME Task 12
|
State state = new State(stateString);
|
||||||
|
state.scorePhase();
|
||||||
|
if (state.getCurrentPhase() == 'E') {
|
||||||
|
state.cleanBoard();
|
||||||
|
state.distributeResources();
|
||||||
|
state.nextPhase();
|
||||||
|
}
|
||||||
|
return state.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -753,7 +651,27 @@ public class BlueLagoon {
|
|||||||
* @return a string representing the new state after the move is applied to the board
|
* @return a string representing the new state after the move is applied to the board
|
||||||
*/
|
*/
|
||||||
public static String applyMove(String stateString, String moveString){
|
public static String applyMove(String stateString, String moveString){
|
||||||
return ""; // FIXME Task 13
|
State state = new State(stateString);
|
||||||
|
char pieceType = moveString.charAt(0);
|
||||||
|
String coordStr = moveString.substring(2);
|
||||||
|
int x = Integer.parseInt(coordStr.split(",")[0]);
|
||||||
|
int y = Integer.parseInt(coordStr.split(",")[1]);
|
||||||
|
Coord coord = new Coord(x, y);
|
||||||
|
state.placePiece(coord, pieceType);
|
||||||
|
|
||||||
|
if (state.isPhaseOver()){
|
||||||
|
state.scorePhase();
|
||||||
|
if (state.getCurrentPhase() == 'E') {
|
||||||
|
state.cleanBoard();
|
||||||
|
state.distributeResources();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
state.nextPlayer();
|
||||||
|
while (!state.getCurrentPlayer().canPlay(state)) {
|
||||||
|
state.nextPlayer();
|
||||||
|
}
|
||||||
|
|
||||||
|
return state.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -770,6 +688,7 @@ public class BlueLagoon {
|
|||||||
* @return a move string generated by an AI
|
* @return a move string generated by an AI
|
||||||
*/
|
*/
|
||||||
public static String generateAIMove(String stateString){
|
public static String generateAIMove(String stateString){
|
||||||
return ""; // FIXME Task 16
|
State state = new State(stateString);
|
||||||
|
return state.getCurrentPlayer().createAIMove(state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
101
src/comp1110/ass2/Coord.java
Normal file
101
src/comp1110/ass2/Coord.java
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
package comp1110.ass2;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Object to store coordinates
|
||||||
|
* This stores the x and y coordinates of a point
|
||||||
|
*/
|
||||||
|
public class Coord {
|
||||||
|
private int x;
|
||||||
|
private int y;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor for the Coord object
|
||||||
|
* @param x x coordinate
|
||||||
|
* @param y y coordinate
|
||||||
|
*/
|
||||||
|
public Coord(int y, int x) {
|
||||||
|
this.x = x;
|
||||||
|
this.y = y;
|
||||||
|
}
|
||||||
|
|
||||||
|
// region Getters and Setters
|
||||||
|
/**
|
||||||
|
* Get the x coordinate
|
||||||
|
* @return int x coordinate
|
||||||
|
*/
|
||||||
|
public int getX() {
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the y coordinate
|
||||||
|
* @return int y coordinate
|
||||||
|
*/
|
||||||
|
public int getY() {
|
||||||
|
return y;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the x coordinate
|
||||||
|
* @param x int x coordinate
|
||||||
|
*/
|
||||||
|
public void setX(int x) {
|
||||||
|
this.x = x;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the y coordinate
|
||||||
|
* @param y int y coordinate
|
||||||
|
*/
|
||||||
|
public void setY(int y) {
|
||||||
|
this.y = y;
|
||||||
|
}
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if two coordinates are equal
|
||||||
|
* @param coord Coord object to compare to
|
||||||
|
* @return boolean true if equal, false otherwise
|
||||||
|
*/
|
||||||
|
public boolean equals(Coord coord) {
|
||||||
|
return (this.x == coord.x && this.y == coord.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if two coordinates are adjacent (does not include diagonals)
|
||||||
|
* @param coord Coord object to compare to
|
||||||
|
*/
|
||||||
|
public boolean isAdjacent(Coord coord) {
|
||||||
|
if (this.y == coord.y) {
|
||||||
|
return (this.x == coord.x - 1 || this.x == coord.x + 1);
|
||||||
|
}
|
||||||
|
if (this.x == coord.x) {
|
||||||
|
return (this.y == coord.y - 1 || this.y == coord.y + 1);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if two coordinates are adjacent (includes diagonals)
|
||||||
|
* @param coord Coord object to compare to
|
||||||
|
*/
|
||||||
|
public boolean isAdjacentDiagonal(Coord coord){
|
||||||
|
if (isAdjacent(coord)) return true;
|
||||||
|
if (this.x == coord.x - 1 && this.y == coord.y - 1) return true;
|
||||||
|
if (this.x == coord.x - 1 && this.y == coord.y + 1) return true;
|
||||||
|
if (this.x == coord.x + 1 && this.y == coord.y - 1) return true;
|
||||||
|
return (this.x == coord.x + 1 && this.y == coord.y + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a string representation of the coordinate (y,x)
|
||||||
|
* @return String representation of the coordinate
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return y + "," + x;
|
||||||
|
}
|
||||||
|
}
|
||||||
91
src/comp1110/ass2/Island.java
Normal file
91
src/comp1110/ass2/Island.java
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
package comp1110.ass2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Island class
|
||||||
|
* This class is used to store the information of an island
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class Island {
|
||||||
|
final int bonus;
|
||||||
|
private Coord[] coords;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor for Island class
|
||||||
|
* This creates an island with a bonus and an empty array of coordinates
|
||||||
|
* @param bonus the bonus of the island
|
||||||
|
*/
|
||||||
|
public Island(int bonus) {
|
||||||
|
this.bonus = bonus;
|
||||||
|
this.coords = new Coord[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the bonus of the island
|
||||||
|
* @return int bonus of the island
|
||||||
|
*/
|
||||||
|
public int getBonus() {
|
||||||
|
return bonus;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the coordinates of the island
|
||||||
|
* @return Coord[] coordinates of the island
|
||||||
|
*/
|
||||||
|
public Coord[] getCoords() {
|
||||||
|
return coords;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the island contains a coordinate
|
||||||
|
* @param coord the coordinate to be checked
|
||||||
|
* @return boolean true if the island contains the coordinate
|
||||||
|
*/
|
||||||
|
public boolean containsCoord(Coord coord) {
|
||||||
|
for (Coord c : this.coords) {
|
||||||
|
if (c.equals(coord)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a coordinate to the island
|
||||||
|
* @param coord the coordinate to be added
|
||||||
|
*/
|
||||||
|
public void addCoord(Coord coord) {
|
||||||
|
|
||||||
|
if (this.containsCoord(coord)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Coord[] newCoords = new Coord[this.coords.length + 1];
|
||||||
|
for (int i = 0; i < this.coords.length; i++) {
|
||||||
|
newCoords[i] = this.coords[i];
|
||||||
|
}
|
||||||
|
newCoords[this.coords.length] = coord;
|
||||||
|
this.coords = newCoords;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if island is equal to another island
|
||||||
|
* @param island the island to be compared to
|
||||||
|
* @return boolean true if the island is equal to the other island
|
||||||
|
*/
|
||||||
|
public boolean equals(Island island) {
|
||||||
|
if (this.bonus != island.bonus) return false;
|
||||||
|
if (this.coords.length != island.coords.length) return false;
|
||||||
|
for (int i = 0; i < this.coords.length; i++) {
|
||||||
|
if (!this.containsCoord(island.coords[i])) return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
String str = "i " + this.bonus;
|
||||||
|
for (Coord c : this.coords) {
|
||||||
|
str += " " + c.toString();
|
||||||
|
}
|
||||||
|
return str + ";";
|
||||||
|
}
|
||||||
|
}
|
||||||
609
src/comp1110/ass2/Player.java
Normal file
609
src/comp1110/ass2/Player.java
Normal file
@@ -0,0 +1,609 @@
|
|||||||
|
package comp1110.ass2;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Random;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import static comp1110.ass2.BlueLagoon.isAdjacent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Player class
|
||||||
|
* This class is used to store the information of a player
|
||||||
|
* This includes the player's ID, score, resources, settlers and villages
|
||||||
|
*/
|
||||||
|
public class Player {
|
||||||
|
|
||||||
|
// region Setup
|
||||||
|
final int playerID;
|
||||||
|
private int score;
|
||||||
|
private int numCoconuts;
|
||||||
|
private int numBamboo;
|
||||||
|
private int numWater;
|
||||||
|
private int numPreciousStones;
|
||||||
|
private int numStatuette;
|
||||||
|
private Coord[] settlers;
|
||||||
|
private Coord[] villages;
|
||||||
|
private Coord lastMove;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor for Player class
|
||||||
|
* This creates a player with a player ID and initialises the player's score, resources, settlers and villages
|
||||||
|
* @param playerID int player ID
|
||||||
|
*/
|
||||||
|
public Player(int playerID) {
|
||||||
|
this.playerID = playerID;
|
||||||
|
this.score = 0;
|
||||||
|
this.numCoconuts = 0;
|
||||||
|
this.numBamboo = 0;
|
||||||
|
this.numWater = 0;
|
||||||
|
this.numPreciousStones = 0;
|
||||||
|
this.numStatuette = 0;
|
||||||
|
this.settlers = new Coord[0];
|
||||||
|
this.villages = new Coord[0];
|
||||||
|
lastMove = new Coord(-1, -1);
|
||||||
|
}
|
||||||
|
// endregion
|
||||||
|
// region Getters and Setters
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the player's ID
|
||||||
|
* @return int player ID
|
||||||
|
*/
|
||||||
|
public int getPlayerID() {
|
||||||
|
return playerID;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the player's score
|
||||||
|
* @return int player score
|
||||||
|
*/
|
||||||
|
public int getScore() {
|
||||||
|
return score;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a score to the player's score
|
||||||
|
* @param score int score to be added
|
||||||
|
*/
|
||||||
|
public void addScore(int score) {
|
||||||
|
this.score += score;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the number of a resource the player has of a type
|
||||||
|
* @param resourceType char resource type
|
||||||
|
* @return int number of the resource the player has
|
||||||
|
*/
|
||||||
|
public int getNumResource(char resourceType) {
|
||||||
|
switch (resourceType) {
|
||||||
|
case 'C':
|
||||||
|
return numCoconuts;
|
||||||
|
case 'B':
|
||||||
|
return numBamboo;
|
||||||
|
case 'W':
|
||||||
|
return numWater;
|
||||||
|
case 'P':
|
||||||
|
return numPreciousStones;
|
||||||
|
case 'S':
|
||||||
|
return numStatuette;
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a resource to the player's resources
|
||||||
|
* @param numResource int number of the resource to be added
|
||||||
|
* @param resourceType char resource type
|
||||||
|
*/
|
||||||
|
public void addResource(int numResource, char resourceType) {
|
||||||
|
switch (resourceType) {
|
||||||
|
case 'C':
|
||||||
|
numCoconuts += numResource;
|
||||||
|
break;
|
||||||
|
case 'B':
|
||||||
|
numBamboo += numResource;
|
||||||
|
break;
|
||||||
|
case 'W':
|
||||||
|
numWater += numResource;
|
||||||
|
break;
|
||||||
|
case 'P':
|
||||||
|
numPreciousStones += numResource;
|
||||||
|
break;
|
||||||
|
case 'S':
|
||||||
|
numStatuette += numResource;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove all resources from the player's resources
|
||||||
|
*/
|
||||||
|
public void removeResources() {
|
||||||
|
numCoconuts = 0;
|
||||||
|
numBamboo = 0;
|
||||||
|
numWater = 0;
|
||||||
|
numPreciousStones = 0;
|
||||||
|
numStatuette = 0;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the player's settlers
|
||||||
|
* @return Coord[] list of the player's settlers coords
|
||||||
|
*/
|
||||||
|
public Coord[] getSettlers() {
|
||||||
|
return settlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the player's villages
|
||||||
|
* @return Coord[] list of the player's villages coords
|
||||||
|
*/
|
||||||
|
public Coord[] getVillages() {
|
||||||
|
return villages;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add settlers to the player's settlers
|
||||||
|
* @param coord Coord coord of the settler to be added
|
||||||
|
*/
|
||||||
|
public void addSettler(Coord coord) {
|
||||||
|
Coord[] newSettlers = new Coord[settlers.length + 1];
|
||||||
|
for (int i = 0; i < settlers.length; i++) {
|
||||||
|
newSettlers[i] = settlers[i];
|
||||||
|
}
|
||||||
|
newSettlers[settlers.length] = coord;
|
||||||
|
settlers = newSettlers;
|
||||||
|
lastMove = coord;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a village to the player's villages
|
||||||
|
* @param coord Coord coord of the village to be added
|
||||||
|
*/
|
||||||
|
public void addVillage(Coord coord) {
|
||||||
|
// Check if the player already has the maximum number of villages
|
||||||
|
if (villages.length >= 5) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Coord[] newVillages = new Coord[villages.length + 1];
|
||||||
|
for (int i = 0; i < villages.length; i++) {
|
||||||
|
newVillages[i] = villages[i];
|
||||||
|
}
|
||||||
|
newVillages[villages.length] = coord;
|
||||||
|
villages = newVillages;
|
||||||
|
lastMove = coord;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete all settlers
|
||||||
|
*/
|
||||||
|
public void clearSettlers() {
|
||||||
|
settlers = new Coord[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete village
|
||||||
|
*/
|
||||||
|
public void removeVillage(Coord coord) {
|
||||||
|
Coord[] newVillages = new Coord[villages.length - 1];
|
||||||
|
int j = 0;
|
||||||
|
for (int i = 0; i < villages.length; i++) {
|
||||||
|
if (villages[i] != coord) {
|
||||||
|
newVillages[j] = villages[i];
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
villages = newVillages;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all the player's piece's coords
|
||||||
|
* @return coord[] list of all the player's piece's coords
|
||||||
|
*/
|
||||||
|
public Coord[] getPieces() {
|
||||||
|
Coord[] pieces = new Coord[settlers.length + villages.length];
|
||||||
|
for (int i = 0; i < settlers.length; i++) {
|
||||||
|
pieces[i] = settlers[i];
|
||||||
|
}
|
||||||
|
for (int i = 0; i < villages.length; i++) {
|
||||||
|
pieces[settlers.length + i] = villages[i];
|
||||||
|
}
|
||||||
|
return pieces;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get number of pieces on island
|
||||||
|
* @param island Island island to check
|
||||||
|
* @return int number of pieces on island
|
||||||
|
*/
|
||||||
|
public int getNumPiecesOnIsland(Island island) {
|
||||||
|
int numPieces = 0;
|
||||||
|
for (Coord piece : getPieces()) {
|
||||||
|
if (island.containsCoord(piece)) {
|
||||||
|
numPieces++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return numPieces;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Coord getLastMove() {
|
||||||
|
return lastMove;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if player is able to do any moves
|
||||||
|
* @return true if player can do any moves, false otherwise
|
||||||
|
*/
|
||||||
|
public boolean canPlay(State state) {
|
||||||
|
|
||||||
|
// Check if the player has placed all their settlers or villages
|
||||||
|
int startNumSettlers = switch (state.getNumPlayers()) {
|
||||||
|
case 2 -> 30;
|
||||||
|
case 3 -> 25;
|
||||||
|
case 4 -> 20;
|
||||||
|
default -> 0;
|
||||||
|
};
|
||||||
|
boolean hasSettler = (settlers.length < startNumSettlers);
|
||||||
|
boolean hasVillage = (settlers.length < 5);
|
||||||
|
if (!hasSettler && !(hasVillage && state.getCurrentPhase() == 'E')) return false;
|
||||||
|
|
||||||
|
// Add used coords
|
||||||
|
ArrayList<String> settlerCoords = new ArrayList<>(); // Placed Settler Coordinates
|
||||||
|
ArrayList<String> villageCoords = new ArrayList<>(); // Placed villages coordinates
|
||||||
|
ArrayList<String> playerSettlerCoords = new ArrayList<>(); // The current Player's settler coords
|
||||||
|
ArrayList<String> playerVillageCoords = new ArrayList<>(); // The current Player's Village coords
|
||||||
|
|
||||||
|
for (int i = 0; i < state.getNumPlayers(); i++){
|
||||||
|
for (Coord c: state.getPlayer(i).getSettlers()){
|
||||||
|
settlerCoords.add(c.toString());
|
||||||
|
}
|
||||||
|
for (Coord c: state.getPlayer(i).getVillages()){
|
||||||
|
villageCoords.add(c.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Coord c: settlers){
|
||||||
|
playerSettlerCoords.add(c.toString());
|
||||||
|
}
|
||||||
|
for (Coord c: villages){
|
||||||
|
playerVillageCoords.add(c.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the coordinates of the islands
|
||||||
|
ArrayList<String> islandCoords = new ArrayList<>();
|
||||||
|
|
||||||
|
for (Island island : state.getIslands()) {
|
||||||
|
for (Coord c:island.getCoords()){
|
||||||
|
islandCoords.add(c.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Generate all possible coordinates in an array
|
||||||
|
String[] coordinates = new String[state.boardHeight * state.boardHeight];
|
||||||
|
int index = 0;
|
||||||
|
for (int i = 0; i < state.boardHeight; i++){
|
||||||
|
for (int j = 0; j < state.boardHeight; j++){
|
||||||
|
coordinates[index] = j + "," + i;
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// For each coordinate
|
||||||
|
for (String cord:coordinates) {
|
||||||
|
// Make sure the coordinate is not already used
|
||||||
|
if(settlerCoords.contains(cord)) continue;
|
||||||
|
if(villageCoords.contains(cord)) continue;
|
||||||
|
// Make sure the coordinate is in bounds
|
||||||
|
int y = Integer.parseInt(cord.split(",")[1]);
|
||||||
|
if(Integer.parseInt(cord.substring(0,cord.indexOf(','))) % 2 == 0) {
|
||||||
|
if(y > state.boardHeight - 2) continue;
|
||||||
|
}
|
||||||
|
else if(y > state.boardHeight - 1) continue;
|
||||||
|
switch (state.getCurrentPhase()) {
|
||||||
|
case 'E' -> {
|
||||||
|
if (!islandCoords.contains(cord)) {
|
||||||
|
if (hasSettler) return true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// If the Village is being placed on the sea return false
|
||||||
|
if ((isAdjacent(cord, playerVillageCoords) || isAdjacent(cord, playerSettlerCoords))) {
|
||||||
|
// Add the move to the set
|
||||||
|
if (hasVillage) return true;
|
||||||
|
if (hasSettler) return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Settlement Phase
|
||||||
|
case 'S' -> {
|
||||||
|
// if the settler is not adjacent with any of the pieces return false
|
||||||
|
if ((isAdjacent(cord, playerVillageCoords) || isAdjacent(cord, playerSettlerCoords))) {
|
||||||
|
// Add the move to the set
|
||||||
|
if (hasSettler) return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
// region Auto Player
|
||||||
|
/**
|
||||||
|
* Do a Random Move
|
||||||
|
* @param state State to do the move on
|
||||||
|
*/
|
||||||
|
public void doRandomMove(State state) {
|
||||||
|
if (state.getCurrentPlayer() != this) {
|
||||||
|
System.out.println("Not this player's turn");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Set<String> validMoves = BlueLagoon.generateAllValidMoves(state.toString());
|
||||||
|
if (validMoves.size() == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Random rand = new Random();
|
||||||
|
int randomMove = rand.nextInt(0, validMoves.size());
|
||||||
|
int i = 0;
|
||||||
|
for (String move : validMoves) {
|
||||||
|
if (i == randomMove) {
|
||||||
|
char pieceType = move.charAt(0);
|
||||||
|
String coordStr = move.substring(2);
|
||||||
|
int x = Integer.parseInt(coordStr.split(",")[0]);
|
||||||
|
int y = Integer.parseInt(coordStr.split(",")[1]);
|
||||||
|
Coord coord = new Coord(x, y);
|
||||||
|
lastMove = coord;
|
||||||
|
state.placePiece(coord, pieceType);
|
||||||
|
state.nextPlayer();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do a calculated move
|
||||||
|
* @param state State to do the move on
|
||||||
|
*/
|
||||||
|
public String createAIMove(State state){
|
||||||
|
if (state.getCurrentPlayer() != this){
|
||||||
|
System.out.println("Not this player's turn");
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
Set<String> validMoves = BlueLagoon.generateAllValidMoves(state.toString());
|
||||||
|
if (validMoves.size() == 0){
|
||||||
|
System.out.println("No valid moves");
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
int islandCount = 0;
|
||||||
|
for (Island island : state.getIslands()) {
|
||||||
|
if (this.getNumPiecesOnIsland(island)>0) islandCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
String bestMove = "";
|
||||||
|
int bestScore = -1;
|
||||||
|
for (String move : validMoves){
|
||||||
|
int score = calculateMoveScore(state, move,islandCount);
|
||||||
|
if (score > bestScore){
|
||||||
|
bestScore = score;
|
||||||
|
bestMove = move;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return bestMove;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do a calculated move
|
||||||
|
*/
|
||||||
|
public void doAIMove(State state){
|
||||||
|
|
||||||
|
String bestMove = createAIMove(state);
|
||||||
|
char pieceType = bestMove.charAt(0);
|
||||||
|
String coordStr = bestMove.substring(2);
|
||||||
|
int x = Integer.parseInt(coordStr.split(",")[0]);
|
||||||
|
int y = Integer.parseInt(coordStr.split(",")[1]);
|
||||||
|
Coord coord = new Coord(x, y);
|
||||||
|
lastMove = coord;
|
||||||
|
state.placePiece(coord, pieceType);
|
||||||
|
state.nextPlayer();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calculate the score of a move
|
||||||
|
* The score is calculated only with public information
|
||||||
|
* The score is calculated by:
|
||||||
|
* 1. If the move gives the player some resources (10 points)
|
||||||
|
* 2. If the move gives the player a new island (1 point) or if below rules are met don't give a point
|
||||||
|
* 3. If this move makes the player have the pieces on 7-8 islands (10-20 points)
|
||||||
|
* 4. If this move makes the player have the most pieces on an island (island bonus points)
|
||||||
|
*
|
||||||
|
* @param state State to do the move on
|
||||||
|
* @param move String move to calculate the score of
|
||||||
|
* @return int score of the move
|
||||||
|
*/
|
||||||
|
public int calculateMoveScore(State state, String move, int currentIslandCount){
|
||||||
|
int score = 0;
|
||||||
|
String coordStr = move.substring(2);
|
||||||
|
int y = Integer.parseInt(coordStr.split(",")[0]);
|
||||||
|
int x = Integer.parseInt(coordStr.split(",")[1]);
|
||||||
|
Coord coord = new Coord(y, x);
|
||||||
|
|
||||||
|
// Check if this will give player some resources
|
||||||
|
if (state.isStone(coord)){
|
||||||
|
score += 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if this is a new island or will make player have the most pieces on the island
|
||||||
|
for (Island island:state.getIslands()) {
|
||||||
|
if (!island.containsCoord(coord)) continue;
|
||||||
|
if (this.getNumPiecesOnIsland(island) == 0) {
|
||||||
|
if (currentIslandCount == 7) score += 20;
|
||||||
|
else if (currentIslandCount == 6) score += 10;
|
||||||
|
else score += 1;
|
||||||
|
}
|
||||||
|
// Check if adding this piece will make player have the most pieces on the island
|
||||||
|
int ties = 0;
|
||||||
|
int wins = 0;
|
||||||
|
int loses = 0;
|
||||||
|
int myPieces = this.getNumPiecesOnIsland(island);
|
||||||
|
for (int i = 0; i < state.getNumPlayers(); i++) {
|
||||||
|
if (i == this.getPlayerID()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
int otherPlayerPieces = state.getPlayer(i).getNumPiecesOnIsland(island);
|
||||||
|
if (otherPlayerPieces > myPieces+1) {
|
||||||
|
loses++;
|
||||||
|
} else
|
||||||
|
if (otherPlayerPieces == myPieces) {
|
||||||
|
wins++;
|
||||||
|
} else if (otherPlayerPieces == myPieces + 1) {
|
||||||
|
ties++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (loses == 0){
|
||||||
|
if (ties > 0){
|
||||||
|
score += island.getBonus()/(ties+1);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
score += island.getBonus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if player needs more islands
|
||||||
|
if (score == 0) {
|
||||||
|
if (currentIslandCount < 8 ){
|
||||||
|
// Check if there is an island adjacent to this move
|
||||||
|
for (Island island : state.getIslands()) {
|
||||||
|
if (island.containsCoord(new Coord(coord.getX() + 1, coord.getY()))
|
||||||
|
|| island.containsCoord(new Coord(coord.getX() - 1, coord.getY()))
|
||||||
|
|| island.containsCoord(new Coord(coord.getX(), coord.getY() + 1))
|
||||||
|
|| island.containsCoord(new Coord(coord.getX(), coord.getY() - 1))) {
|
||||||
|
score += 1;
|
||||||
|
if (state.getCurrentPhase() == 'E'){
|
||||||
|
score += 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return score;
|
||||||
|
}
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the largest column of the player's pieces
|
||||||
|
* @param coords Coord[] list of the player's pieces
|
||||||
|
* @return int largest column
|
||||||
|
*/
|
||||||
|
private int maxCol(Coord[] coords){
|
||||||
|
int maxCol = 0;
|
||||||
|
for (Coord coord : coords) {
|
||||||
|
if (coord.getX() > maxCol) {
|
||||||
|
maxCol = coord.getX();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return maxCol;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if player is equal to another player
|
||||||
|
* @param player Player player to be compared to
|
||||||
|
* @return true if the players are equal, false otherwise
|
||||||
|
*/
|
||||||
|
public boolean equals(Player player) {
|
||||||
|
if (player.getPlayerID() != playerID) return false;
|
||||||
|
if (player.getScore() != score) return false;
|
||||||
|
if (player.getNumResource('C') != numCoconuts) return false;
|
||||||
|
if (player.getNumResource('B') != numBamboo) return false;
|
||||||
|
if (player.getNumResource('W') != numWater) return false;
|
||||||
|
if (player.getNumResource('P') != numPreciousStones) return false;
|
||||||
|
if (player.getNumResource('S') != numStatuette) return false;
|
||||||
|
if (player.getSettlers().length != settlers.length) return false;
|
||||||
|
if (player.getVillages().length != villages.length) return false;
|
||||||
|
|
||||||
|
for (int i = 0; i < settlers.length; i++) {
|
||||||
|
if (!player.getSettlers()[i].equals(settlers[i])) return false;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < villages.length; i++) {
|
||||||
|
if (!player.getVillages()[i].equals(villages[i])) return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the string representation of the player
|
||||||
|
* @return String representation of the player in playerString format
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
String str = "p " + playerID + " " + score + " " + numCoconuts + " " + numBamboo + " " + numWater + " " + numPreciousStones + " " + numStatuette + " S";
|
||||||
|
|
||||||
|
|
||||||
|
// Get the coords of the player's pieces in row major order
|
||||||
|
Coord[] settlersCoords = new Coord[settlers.length];
|
||||||
|
if (settlers.length != 0) {
|
||||||
|
int row = 0;
|
||||||
|
int col = 0;
|
||||||
|
int i = 0;
|
||||||
|
int maxcol = maxCol(settlers);
|
||||||
|
|
||||||
|
while (settlersCoords[settlers.length - 1] == null) {
|
||||||
|
for (Coord coord : settlers) {
|
||||||
|
if (coord.getX() == col && coord.getY() == row) {
|
||||||
|
settlersCoords[i] = coord;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
col++;
|
||||||
|
if (col > maxcol) {
|
||||||
|
col = 0;
|
||||||
|
row++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Coord[] villagesCoords = new Coord[villages.length];
|
||||||
|
if (villages.length != 0) {
|
||||||
|
int row = 0;
|
||||||
|
int col = 0;
|
||||||
|
int i = 0;
|
||||||
|
int maxcol = maxCol(villages);
|
||||||
|
|
||||||
|
while (villagesCoords[villages.length-1] == null){
|
||||||
|
for (Coord coord : villages) {
|
||||||
|
if (coord.getX() == col && coord.getY() == row) {
|
||||||
|
villagesCoords[i] = coord;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
col++;
|
||||||
|
if (col > maxcol) {
|
||||||
|
col = 0;
|
||||||
|
row++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
for (Coord coord : settlersCoords) {
|
||||||
|
str += " " + coord.toString();
|
||||||
|
|
||||||
|
}
|
||||||
|
str += " T";
|
||||||
|
for (Coord coord : villagesCoords) {
|
||||||
|
str += " " + coord.toString();
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
}
|
||||||
111
src/comp1110/ass2/Resource.java
Normal file
111
src/comp1110/ass2/Resource.java
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
package comp1110.ass2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resource class
|
||||||
|
* This class is used to store the information of a resource
|
||||||
|
* This stores the type and the coordinate of the resource
|
||||||
|
*/
|
||||||
|
public class Resource {
|
||||||
|
private char type;
|
||||||
|
private Coord coord;
|
||||||
|
private boolean claimed;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor for Resource class
|
||||||
|
* This creates a resource with a type and a coordinate
|
||||||
|
* @param type the type of the resource
|
||||||
|
* @param coord the coordinate of the resource
|
||||||
|
*/
|
||||||
|
public Resource(char type, Coord coord) {
|
||||||
|
this.type = type;
|
||||||
|
this.coord = coord;
|
||||||
|
this.claimed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the type of the resource
|
||||||
|
* @return char type of the resource
|
||||||
|
*/
|
||||||
|
public char getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the type of the resource
|
||||||
|
* @return String type of the resource
|
||||||
|
*/
|
||||||
|
public String getTypeString() {
|
||||||
|
switch (type){
|
||||||
|
case 'C':
|
||||||
|
return "Coconut";
|
||||||
|
case 'B':
|
||||||
|
return "Bamboo";
|
||||||
|
case 'W':
|
||||||
|
return "Water";
|
||||||
|
case 'P':
|
||||||
|
return "Precious Stone";
|
||||||
|
case 'S':
|
||||||
|
return "Statuette";
|
||||||
|
default:
|
||||||
|
return "Invalid";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the coordinate of the resource
|
||||||
|
* @return Coord coordinate of the resource
|
||||||
|
*/
|
||||||
|
public Coord getCoord() {
|
||||||
|
return coord;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the type of the resource
|
||||||
|
* @param type char type of the resource
|
||||||
|
*/
|
||||||
|
public void setType(char type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the coordinate of the resource
|
||||||
|
* @param coord Coord coordinate of the resource
|
||||||
|
*/
|
||||||
|
public void setCoord(Coord coord) {
|
||||||
|
this.coord = coord;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the resource is equal to another resource
|
||||||
|
* @param resource Resource resource to be compared
|
||||||
|
* @return boolean true if the resources are equal
|
||||||
|
*/
|
||||||
|
public boolean equals(Resource resource) {
|
||||||
|
return (this.type == resource.type && this.coord.equals(resource.coord));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the resource to be claimed
|
||||||
|
* This is used to check if the resource has been claimed
|
||||||
|
*/
|
||||||
|
public void setClaimed() {
|
||||||
|
this.claimed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the resource has been claimed
|
||||||
|
* @return boolean true if the resource has been claimed
|
||||||
|
*/
|
||||||
|
public boolean isClaimed() {
|
||||||
|
return this.claimed;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Resource{" +
|
||||||
|
"type=" + type +
|
||||||
|
", coord=" + coord +
|
||||||
|
", claimed=" + claimed +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
866
src/comp1110/ass2/State.java
Normal file
866
src/comp1110/ass2/State.java
Normal file
@@ -0,0 +1,866 @@
|
|||||||
|
package comp1110.ass2;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Object to store the game state
|
||||||
|
* This stores the state of the game in a way that is easy to access and modify
|
||||||
|
* It stores the board height, number of players, current player, current phase, islands, stones,
|
||||||
|
* unclaimed resources and players (with their data)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class State {
|
||||||
|
|
||||||
|
// region Constants
|
||||||
|
// Constants for the game. Changing these could create errors
|
||||||
|
final int maxPlayers = 4;
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
// region Variables
|
||||||
|
final int boardHeight;
|
||||||
|
private int numPlayers;
|
||||||
|
private int currentPlayer;
|
||||||
|
private int currentPhase; // 0 for exploration, 1 for settlement
|
||||||
|
|
||||||
|
private Island[] islands;
|
||||||
|
final private Coord[] stonesCoords;
|
||||||
|
private Resource[] resources;
|
||||||
|
private Player[] players;
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
// region Setup methods/constructors
|
||||||
|
/**
|
||||||
|
* Constructor for the state object
|
||||||
|
* This takes a string containing the state of the game and initialises the object
|
||||||
|
* @param stateString String containing the state of the game
|
||||||
|
*/
|
||||||
|
public State(String stateString) {
|
||||||
|
|
||||||
|
// Split the state string into its components
|
||||||
|
String[] components = stateString.split(";");
|
||||||
|
|
||||||
|
// For the game initialisation part
|
||||||
|
String[] gameInitComponents = components[0].trim().split(" ");
|
||||||
|
|
||||||
|
boardHeight = Integer.parseInt(gameInitComponents[1]);
|
||||||
|
numPlayers = Integer.parseInt(gameInitComponents[2]);
|
||||||
|
|
||||||
|
|
||||||
|
// Current state part
|
||||||
|
String[] currentStateComponents = components[1].trim().split(" ");
|
||||||
|
currentPlayer = Integer.parseInt(currentStateComponents[1]);
|
||||||
|
|
||||||
|
if (currentStateComponents[2].equals("E")) currentPhase = 0;
|
||||||
|
else currentPhase = 1;
|
||||||
|
|
||||||
|
// Islands part
|
||||||
|
int islandcount = 0;
|
||||||
|
for (int i=2; i< components.length; i++)
|
||||||
|
{
|
||||||
|
// Split island part
|
||||||
|
String[] islandComponents = components[i].trim().split(" ");
|
||||||
|
// Check if the component is still an island
|
||||||
|
if (!islandComponents[0].equals("i")) break;
|
||||||
|
|
||||||
|
Island tmpIsland = new Island(Integer.parseInt(islandComponents[1]));
|
||||||
|
|
||||||
|
// Add each coord
|
||||||
|
for (int j=2; j<islandComponents.length; j++)
|
||||||
|
{
|
||||||
|
String[] coordComponents = islandComponents[j].split(",");
|
||||||
|
tmpIsland.addCoord(new Coord(Integer.parseInt(coordComponents[0]), Integer.parseInt(coordComponents[1])));
|
||||||
|
}
|
||||||
|
|
||||||
|
islandcount++;
|
||||||
|
// Add the island to the array
|
||||||
|
Island[] tmpislands = new Island[islandcount];
|
||||||
|
for (int j=0; j<tmpislands.length-1; j++)
|
||||||
|
{
|
||||||
|
tmpislands[j] = islands[j];
|
||||||
|
}
|
||||||
|
tmpislands[islandcount-1] = tmpIsland;
|
||||||
|
islands = tmpislands;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Stones part
|
||||||
|
String[] stonesComponents = components[2+islandcount].trim().split(" ");
|
||||||
|
stonesCoords = new Coord[stonesComponents.length-1];
|
||||||
|
for (int i=1; i<stonesComponents.length; i++)
|
||||||
|
{
|
||||||
|
String[] coordComponents = stonesComponents[i].split(",");
|
||||||
|
stonesCoords[i-1] = new Coord(Integer.parseInt(coordComponents[0]), Integer.parseInt(coordComponents[1]));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unclaimed resources part
|
||||||
|
String[] resourcesComponents = components[3+islandcount].trim().split(" ");
|
||||||
|
resources = new Resource[resourcesComponents.length-6];
|
||||||
|
int currentResource = 0;
|
||||||
|
char type = 'C';
|
||||||
|
for (int i=1; i<resourcesComponents.length; i++)
|
||||||
|
{
|
||||||
|
if (resourcesComponents[i].matches("[CBWPS]")){
|
||||||
|
currentResource++;
|
||||||
|
type = resourcesComponents[i].charAt(0);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String[] coordComponents = resourcesComponents[i].split(",");
|
||||||
|
Coord tmpCoord = new Coord(Integer.parseInt(coordComponents[0]), Integer.parseInt(coordComponents[1]));
|
||||||
|
resources[i-1-currentResource] = new Resource(type, tmpCoord);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Players part
|
||||||
|
players = new Player[numPlayers];
|
||||||
|
for (int i=0; i<numPlayers; i++)
|
||||||
|
{
|
||||||
|
String[] playerComponents = components[4+islandcount+i].trim().split(" ");
|
||||||
|
players[i] = new Player(Integer.parseInt(playerComponents[1]));
|
||||||
|
players[i].addScore(Integer.parseInt(playerComponents[2]));
|
||||||
|
players[i].addResource(Integer.parseInt(playerComponents[3]),'C');
|
||||||
|
players[i].addResource(Integer.parseInt(playerComponents[4]),'B');
|
||||||
|
players[i].addResource(Integer.parseInt(playerComponents[5]),'W');
|
||||||
|
players[i].addResource(Integer.parseInt(playerComponents[6]),'P');
|
||||||
|
players[i].addResource(Integer.parseInt(playerComponents[7]),'S');
|
||||||
|
|
||||||
|
int pieceType = 0;
|
||||||
|
for (int j=8; j<playerComponents.length; j++)
|
||||||
|
{
|
||||||
|
if (playerComponents[j].matches("[ST]")){
|
||||||
|
pieceType++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pieceType == 1) {
|
||||||
|
String[] coordComponents = playerComponents[j].split(",");
|
||||||
|
players[i].addSettler(new Coord(Integer.parseInt(coordComponents[0]), Integer.parseInt(coordComponents[1])));
|
||||||
|
}
|
||||||
|
else if (pieceType == 2) {
|
||||||
|
String[] coordComponents = playerComponents[j].split(",");
|
||||||
|
players[i].addVillage(new Coord(Integer.parseInt(coordComponents[0]), Integer.parseInt(coordComponents[1])));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a player to the game
|
||||||
|
* This will add a player to the game if there is less than the maximum number of players
|
||||||
|
*/
|
||||||
|
public void addPlayer(){
|
||||||
|
if (numPlayers >= maxPlayers) return; // There are already the maximum number of players
|
||||||
|
Player[] oldPlayers = players;
|
||||||
|
players = new Player[numPlayers+1];
|
||||||
|
for (int i=0; i<numPlayers; i++)
|
||||||
|
{
|
||||||
|
players[i] = oldPlayers[i];
|
||||||
|
}
|
||||||
|
players[numPlayers] = new Player(numPlayers);
|
||||||
|
numPlayers++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Distribute the resources to the stone circles randomly
|
||||||
|
*/
|
||||||
|
public void distributeResources() {
|
||||||
|
if (stonesCoords.length != 32) return; // There are not enough stones to distribute resources
|
||||||
|
|
||||||
|
|
||||||
|
// Create a random object and an arrays and list to shuffle the stone circles
|
||||||
|
Random rand = new Random();
|
||||||
|
|
||||||
|
// Number of times to shuffle the stone circles (can be changed)
|
||||||
|
int shuffle_number = 3;
|
||||||
|
|
||||||
|
// Create a copy of the stone circle array to shuffle
|
||||||
|
Coord[] stoneCircleRandom = stonesCoords;
|
||||||
|
|
||||||
|
// Shuffle the stone circles the specified number of times
|
||||||
|
for (int i = 0; i < shuffle_number; i++) {
|
||||||
|
// Create a temporary array to store the shuffled stone circles
|
||||||
|
Coord[] tempStoneCircleRandom = new Coord[32];
|
||||||
|
// Create a list to store the used cords (to avoid duplicates)
|
||||||
|
List<Coord> usedCords = new ArrayList<Coord>();
|
||||||
|
|
||||||
|
// Shuffle the array
|
||||||
|
for (int j = 0; j < 32; j++) {
|
||||||
|
// For 0-31 generate a random cord from the stone circle array and check if it has been used
|
||||||
|
int randomIndex = rand.nextInt(31);
|
||||||
|
while (usedCords.contains(stonesCoords[randomIndex])) {
|
||||||
|
// If it has been used, try the next in line
|
||||||
|
if (randomIndex == 31) {
|
||||||
|
randomIndex = 0;
|
||||||
|
}
|
||||||
|
else randomIndex++;
|
||||||
|
}
|
||||||
|
// If it hasn't been used, add it to the new array
|
||||||
|
tempStoneCircleRandom[j] = stoneCircleRandom[randomIndex];
|
||||||
|
usedCords.add(stonesCoords[randomIndex]);
|
||||||
|
}
|
||||||
|
// Replace the old array with the new one
|
||||||
|
stoneCircleRandom = tempStoneCircleRandom;
|
||||||
|
}
|
||||||
|
// Initialise unclaimed resources
|
||||||
|
resources = new Resource[32];
|
||||||
|
|
||||||
|
// Create an array for each resource type
|
||||||
|
char[] toDistribute = {'C', 'B', 'W', 'P'};
|
||||||
|
|
||||||
|
// Create a variable to keep track of how many resources have been sorted
|
||||||
|
int numSorted = 0;
|
||||||
|
|
||||||
|
// For each resource type
|
||||||
|
for (char r:toDistribute){
|
||||||
|
// Assign 6 to a stone circle
|
||||||
|
for (int i = 0; i < 6; i++){
|
||||||
|
resources[numSorted] = new Resource(r, stoneCircleRandom[numSorted]);
|
||||||
|
numSorted++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Assign 8 statuettes to a stone circle
|
||||||
|
for (int i = 0; i < 8; i++){
|
||||||
|
resources[numSorted] = new Resource('S', stoneCircleRandom[numSorted]);
|
||||||
|
numSorted++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
// region Getters/Setters
|
||||||
|
/**
|
||||||
|
* Get the board height
|
||||||
|
* @return int board height
|
||||||
|
*/
|
||||||
|
public int getBoardHeight() {
|
||||||
|
return boardHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the number of players
|
||||||
|
* @return int number of players
|
||||||
|
*/
|
||||||
|
public int getNumPlayers() {
|
||||||
|
return numPlayers;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the current player ID
|
||||||
|
* @return int current player
|
||||||
|
*/
|
||||||
|
public int getCurrentPlayerID() {
|
||||||
|
return currentPlayer;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Get the current player
|
||||||
|
* @return Player current player
|
||||||
|
*/
|
||||||
|
public Player getCurrentPlayer() {
|
||||||
|
return players[currentPlayer];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the current phase
|
||||||
|
* Returns 'E' for exploration, 'S' for settlement, 'O' for game over
|
||||||
|
* @return char current phase
|
||||||
|
*/
|
||||||
|
public char getCurrentPhase() {
|
||||||
|
if (currentPhase == 0) return 'E';
|
||||||
|
else if (currentPhase == 1) return 'S';
|
||||||
|
else return 'O'; // Return 'O' for game over
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the islands
|
||||||
|
* @return Island[] islands
|
||||||
|
*/
|
||||||
|
public Island[] getIslands() {
|
||||||
|
return islands;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get one island (by 0 index)
|
||||||
|
* @return Island island
|
||||||
|
*/
|
||||||
|
public Island getIsland(int i) {
|
||||||
|
return islands[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the stones
|
||||||
|
* @return Coord[] stones
|
||||||
|
*/
|
||||||
|
public Coord[] getStones() {
|
||||||
|
return stonesCoords;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a stone is at a given coordinate
|
||||||
|
* @param coord Coord coordinate to check
|
||||||
|
* @return boolean true if stone is at coordinate
|
||||||
|
*/
|
||||||
|
public boolean isStone(Coord coord) {
|
||||||
|
for (Coord stone : stonesCoords) {
|
||||||
|
if (stone.equals(coord)) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the player with a given index
|
||||||
|
* @param i int index of player
|
||||||
|
* @return Player player
|
||||||
|
*/
|
||||||
|
public Player getPlayer(int i) {
|
||||||
|
return players[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the unclaimed resources
|
||||||
|
* @return Resource[] unclaimed resources
|
||||||
|
*/
|
||||||
|
public Resource[] getResources() {
|
||||||
|
return resources;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the unclaimed resources of a given type
|
||||||
|
* @param type char type of resource
|
||||||
|
* @return Resource[] unclaimed resources of type
|
||||||
|
*/
|
||||||
|
public Resource[] getResources(char type) {
|
||||||
|
Resource[] tmpResources = new Resource[resources.length];
|
||||||
|
int i = 0;
|
||||||
|
for (Resource resource : resources) {
|
||||||
|
if (resource.getType() == type){
|
||||||
|
tmpResources[i] = resource;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Resource[] resources = new Resource[i];
|
||||||
|
for (int j=0; j<i; j++) {
|
||||||
|
resources[j] = tmpResources[j];
|
||||||
|
}
|
||||||
|
return resources;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the unclaimed resource at a given coordinate
|
||||||
|
* @param coord Coord coordinate to check
|
||||||
|
* @return Resource unclaimed resource at coordinate
|
||||||
|
*/
|
||||||
|
public Resource getUnclaimedResource(Coord coord) {
|
||||||
|
for (Resource resource : resources) {
|
||||||
|
if (resource.getCoord().equals(coord)) return resource;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
// region Game play functions
|
||||||
|
/**
|
||||||
|
* Start next player's turn
|
||||||
|
*/
|
||||||
|
public void nextPlayer() {
|
||||||
|
currentPlayer++;
|
||||||
|
if (currentPlayer >= numPlayers) currentPlayer = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Start next phase
|
||||||
|
*/
|
||||||
|
public void nextPhase() {
|
||||||
|
currentPhase++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Place a piece on the board. Uses current turn's player
|
||||||
|
* This does not check if the move is valid (Use isValidMove() first)
|
||||||
|
* @param coord Coord coordinate to place piece
|
||||||
|
* @param type char type of piece
|
||||||
|
*/
|
||||||
|
public void placePiece(Coord coord, char type) {
|
||||||
|
if (type == 'S') {
|
||||||
|
players[currentPlayer].addSettler(coord);
|
||||||
|
}
|
||||||
|
else if (type == 'V' || type == 'T') {
|
||||||
|
players[currentPlayer].addVillage(coord);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Claim resource if it is a stone circle
|
||||||
|
if (isStone(coord)) {
|
||||||
|
for (Resource resource : resources) {
|
||||||
|
if (resource.getCoord().equals(coord) && !resource.isClaimed()) {
|
||||||
|
players[currentPlayer].addResource(1, resource.getType());
|
||||||
|
resource.setClaimed();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is move valid?
|
||||||
|
* @param coord Coord coordinate to place piece
|
||||||
|
* @param type char type of piece
|
||||||
|
* @return boolean true if move is valid
|
||||||
|
*/
|
||||||
|
public boolean isMoveValid(Coord coord, char type){
|
||||||
|
// Create moveString
|
||||||
|
String moveString = type + " " + coord.toString();
|
||||||
|
return BlueLagoon.isMoveValid(this.toString(), moveString);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* is the phase over?
|
||||||
|
* Defaults to simple mode
|
||||||
|
*/
|
||||||
|
public boolean isPhaseOver() {
|
||||||
|
return isPhaseOver(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* is the phase over?
|
||||||
|
* @param simple boolean don't check all player moves
|
||||||
|
*/
|
||||||
|
public boolean isPhaseOver(boolean simple){
|
||||||
|
boolean resourcesLeft = false;
|
||||||
|
for (Resource r : resources) {
|
||||||
|
if (!r.isClaimed() && r.getType() != 'S') resourcesLeft = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean moveLeft = false;
|
||||||
|
if (simple) {
|
||||||
|
if (getCurrentPlayer().canPlay(this)) moveLeft = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (Player player : players) {
|
||||||
|
if (player.canPlay(this)) moveLeft = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return !resourcesLeft || !moveLeft;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clean board for next phase
|
||||||
|
*/
|
||||||
|
public void cleanBoard(){
|
||||||
|
for (Player player : players) {
|
||||||
|
player.clearSettlers();
|
||||||
|
player.removeResources();
|
||||||
|
for (Coord coord : player.getVillages()) {
|
||||||
|
if (isStone(coord)) {
|
||||||
|
player.removeVillage(coord);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
// region Scoring
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Score for that phase
|
||||||
|
* This does not automatically move to the next phase
|
||||||
|
*/
|
||||||
|
public void scorePhase() {
|
||||||
|
for (Player p: players) {
|
||||||
|
p.addScore(createScore(p.getPlayerID()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get score of player ID based on current phase and game state
|
||||||
|
* @param playerID int player ID base 0
|
||||||
|
* @return int score
|
||||||
|
*/
|
||||||
|
public int createScore(int playerID) {
|
||||||
|
int score = 0;
|
||||||
|
score += scoreTotalIslands(playerID);
|
||||||
|
score += scoreLinks(playerID);
|
||||||
|
score += scoreMajorities(playerID);
|
||||||
|
score += scoreResources(playerID);
|
||||||
|
score += scoreStatuettes(playerID);
|
||||||
|
return score;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get score from total islands
|
||||||
|
* @param playerID int player to score
|
||||||
|
* @return int score
|
||||||
|
*/
|
||||||
|
public int scoreTotalIslands(int playerID) {
|
||||||
|
int score = 0;
|
||||||
|
int islandCount = 0;
|
||||||
|
for (Island island : islands) {
|
||||||
|
// Get island coords
|
||||||
|
Coord[] islandCoords = island.getCoords();
|
||||||
|
// Get player's coords
|
||||||
|
Coord[] playerCoords = players[playerID].getPieces();
|
||||||
|
// Check if player has a piece on the island
|
||||||
|
boolean hasPiece = false;
|
||||||
|
for (Coord playerCoord : playerCoords) {
|
||||||
|
for (Coord islandCoord : islandCoords) {
|
||||||
|
if (playerCoord.equals(islandCoord)) {
|
||||||
|
hasPiece = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (hasPiece) break;
|
||||||
|
}
|
||||||
|
if (hasPiece) islandCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (islandCount >= 8) score = 20;
|
||||||
|
else if (islandCount == 7) score = 10;
|
||||||
|
|
||||||
|
return score;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Score majorities
|
||||||
|
* @param playerID int player to score
|
||||||
|
* @return int score
|
||||||
|
*/
|
||||||
|
public int scoreMajorities(int playerID){
|
||||||
|
int score = 0;
|
||||||
|
|
||||||
|
for (Island island:islands){
|
||||||
|
int[] playerPieces = new int[getNumPlayers()];
|
||||||
|
|
||||||
|
for (int i = 0; i < getNumPlayers(); i++){
|
||||||
|
playerPieces[i] = players[i].getNumPiecesOnIsland(island);
|
||||||
|
}
|
||||||
|
boolean ishighest = true;
|
||||||
|
int ties = 0;
|
||||||
|
for (int i = 0; i < getNumPlayers(); i++){
|
||||||
|
if (i == playerID) continue;
|
||||||
|
if (playerPieces[i] > playerPieces[playerID]) {
|
||||||
|
ishighest = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (playerPieces[i] == playerPieces[playerID]) ties++;
|
||||||
|
}
|
||||||
|
if (ishighest && playerPieces[playerID] > 0) {
|
||||||
|
if (ties > 0){
|
||||||
|
score += island.getBonus()/(ties + 1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
score += island.getBonus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return score;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Score Links
|
||||||
|
* A (potentially) branching path of neighbouring settlers and villages
|
||||||
|
* belonging to a player forms a chain. Players earn points from the chain
|
||||||
|
* of their pieces which links the most islands. Players earn 5 points
|
||||||
|
* per linked island in this chain.
|
||||||
|
* @param playerID int player to score
|
||||||
|
* @return int score
|
||||||
|
*/
|
||||||
|
|
||||||
|
// public boolean isAdjacent(Coord coord) {
|
||||||
|
// if (this.y == coord.y) {
|
||||||
|
// return (this.x == coord.x - 1 || this.x == coord.x + 1);
|
||||||
|
// }
|
||||||
|
// if (this.x == coord.x) {
|
||||||
|
// return (this.y == coord.y - 1 || this.y == coord.y + 1);
|
||||||
|
// }
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * Check if two coordinates are adjacent (includes diagonals)
|
||||||
|
// * @param coord Coord object to compare to
|
||||||
|
// */
|
||||||
|
// public boolean isAdjacentDiagonal(Coord coord){
|
||||||
|
// if (isAdjacent(coord)) return true;
|
||||||
|
// if (this.x == coord.x - 1 && this.y == coord.y - 1) return true;
|
||||||
|
// if (this.x == coord.x - 1 && this.y == coord.y + 1) return true;
|
||||||
|
// if (this.x == coord.x + 1 && this.y == coord.y - 1) return true;
|
||||||
|
// return (this.x == coord.x + 1 && this.y == coord.y + 1);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// public Player(int playerID) {
|
||||||
|
// this.playerID = playerID;
|
||||||
|
// this.score = 0;
|
||||||
|
// this.numCoconuts = 0;
|
||||||
|
// this.numBamboo = 0;
|
||||||
|
// this.numWater = 0;
|
||||||
|
// this.numPreciousStones = 0;
|
||||||
|
// this.numStatuette = 0;
|
||||||
|
// this.settlers = new Coord[0];
|
||||||
|
// this.villages = new Coord[0];
|
||||||
|
// }
|
||||||
|
// // endregion
|
||||||
|
// // region Getters and Setters
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * Get the player's ID
|
||||||
|
// * @return int player ID
|
||||||
|
// */
|
||||||
|
// public int getPlayerID() {
|
||||||
|
// return playerID;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Get the player's settlers
|
||||||
|
// * @return Coord[] list of the player's settlers coords
|
||||||
|
// */
|
||||||
|
// public Coord[] getSettlers() {
|
||||||
|
// return settlers;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * Get the player's villages
|
||||||
|
// * @return Coord[] list of the player's villages coords
|
||||||
|
// */
|
||||||
|
// public Coord[] getVillages() {
|
||||||
|
// return villages;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// public Coord[] getPieces() {
|
||||||
|
// Coord[] pieces = new Coord[settlers.length + villages.length];
|
||||||
|
// for (int i = 0; i < settlers.length; i++) {
|
||||||
|
// pieces[i] = settlers[i];
|
||||||
|
// }
|
||||||
|
// for (int i = 0; i < villages.length; i++) {
|
||||||
|
// pieces[settlers.length + i] = villages[i];
|
||||||
|
// }
|
||||||
|
// return pieces;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * Get number of pieces on island
|
||||||
|
// * @param island Island island to check
|
||||||
|
// * @return int number of pieces on island
|
||||||
|
// */
|
||||||
|
// public int getNumPiecesOnIsland(Island island) {
|
||||||
|
// int numPieces = 0;
|
||||||
|
// for (Coord piece : getPieces()) {
|
||||||
|
// if (island.containsCoord(piece)) {
|
||||||
|
// numPieces++;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return numPieces;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Get the coordinates of the island
|
||||||
|
// * @return Coord[] coordinates of the island
|
||||||
|
// */
|
||||||
|
// public Coord[] getCoords() {
|
||||||
|
// return coords;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Check if the island contains a coordinate
|
||||||
|
// * @param coord the coordinate to be checked
|
||||||
|
// * @return boolean true if the island contains the coordinate
|
||||||
|
// */
|
||||||
|
// public boolean containsCoord(Coord coord) {
|
||||||
|
// for (Coord c : this.coords) {
|
||||||
|
// if (c.equals(coord)) {
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
public int scoreLinks(int playerID) {
|
||||||
|
int maxIslands = 0;
|
||||||
|
int distinctIslandsCounter = 0;
|
||||||
|
int score = 0;
|
||||||
|
|
||||||
|
Coord[] playerCoords = players[playerID].getPieces(); // playerCoords
|
||||||
|
|
||||||
|
for(Island island : islands) {
|
||||||
|
Coord[] islandCoords = island.getCoords();
|
||||||
|
|
||||||
|
for ( Coord playerCoord : playerCoords ) {
|
||||||
|
if (island.containsCoord(playerCoord)) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// for(Island island : islands) {
|
||||||
|
// Coord[] islandCoords = island.getCoords(); // Island Coords
|
||||||
|
//
|
||||||
|
// for ( Coord playerCoord : playerCoords) {
|
||||||
|
// for( Coord islandCoord : islandCoords) {
|
||||||
|
// if (playerCoord.areTwoCoordsLink(islandCoord) && )
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
return maxIslands * 5; //! TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
// public boolean areTwoCoordsLink ( Coord coord) {
|
||||||
|
// if(isAdjacent(coord) || isAdjacentDiagonal(coord)) return true;
|
||||||
|
// else return false;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public Coord[] longestLink ( Coord coord) {
|
||||||
|
// ArrayList<Coord> linkContainer = new ArrayList<>();
|
||||||
|
// if (areTwoCoordsLink(coord)) {
|
||||||
|
// linkContainer.add(coord);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// Coord[] endLinkContainer = new Coord[linkContainer.size()];
|
||||||
|
// return endLinkContainer;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Score Links
|
||||||
|
// * A (potentially) branching path of neighbouring settlers and villages
|
||||||
|
// * belonging to a player forms a chain. Players earn points from the chain
|
||||||
|
// * of their pieces which links the most islands. Players earn 5 points
|
||||||
|
// * per linked island in this chain.
|
||||||
|
|
||||||
|
// public int scoreTotalIslands(int playerID) {
|
||||||
|
// int score = 0;
|
||||||
|
// int islandCount = 0;
|
||||||
|
// for (Island island : islands) {
|
||||||
|
// // Get island coords
|
||||||
|
// Coord[] islandCoords = island.getCoords();
|
||||||
|
// // Get player's coords
|
||||||
|
// Coord[] playerCoords = players[playerID].getPieces();
|
||||||
|
// // Check if player has a piece on the island
|
||||||
|
// boolean hasPiece = false;
|
||||||
|
// for (Coord playerCoord : playerCoords) {
|
||||||
|
// for (Coord islandCoord : islandCoords) {
|
||||||
|
// if (playerCoord.equals(islandCoord)) {
|
||||||
|
// hasPiece = true;
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// if (hasPiece) break;
|
||||||
|
// }
|
||||||
|
// if (hasPiece) islandCount++;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (islandCount >= 8) score = 20;
|
||||||
|
// else if (islandCount == 7) score = 10;
|
||||||
|
//
|
||||||
|
// return score;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// public boolean isAdjacent(Coord coord) {
|
||||||
|
// if (this.y == coord.y) {
|
||||||
|
// return (this.x == coord.x - 1 || this.x == coord.x + 1);
|
||||||
|
// }
|
||||||
|
// if (this.x == coord.x) {
|
||||||
|
// return (this.y == coord.y - 1 || this.y == coord.y + 1);
|
||||||
|
// }
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * Check if two coordinates are adjacent (includes diagonals)
|
||||||
|
// * @param coord Coord object to compare to
|
||||||
|
// */
|
||||||
|
// public boolean isAdjacentDiagonal(Coord coord){
|
||||||
|
// if (isAdjacent(coord)) return true;
|
||||||
|
// if (this.x == coord.x - 1 && this.y == coord.y - 1) return true;
|
||||||
|
// if (this.x == coord.x - 1 && this.y == coord.y + 1) return true;
|
||||||
|
// if (this.x == coord.x + 1 && this.y == coord.y - 1) return true;
|
||||||
|
// return (this.x == coord.x + 1 && this.y == coord.y + 1);
|
||||||
|
// }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Score resources
|
||||||
|
* @param playerID int player to score
|
||||||
|
* @return int score
|
||||||
|
*/
|
||||||
|
public int scoreResources(int playerID) {
|
||||||
|
int score = 0;
|
||||||
|
char[] resourceTypes = {'C', 'B', 'W', 'P'};
|
||||||
|
for (char type : resourceTypes) {
|
||||||
|
int numResources = players[playerID].getNumResource(type);
|
||||||
|
if (numResources >= 4) {
|
||||||
|
score += 20;
|
||||||
|
} else if (numResources == 3) {
|
||||||
|
score += 10;
|
||||||
|
} else if (numResources == 2) {
|
||||||
|
score += 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int numCoconuts = players[playerID].getNumResource('C');
|
||||||
|
int numBananas = players[playerID].getNumResource('B');
|
||||||
|
int numWater = players[playerID].getNumResource('W');
|
||||||
|
int numPreciousStones = players[playerID].getNumResource('P');
|
||||||
|
if (numCoconuts >= 1 && numBananas >= 1 && numWater >= 1 && numPreciousStones >= 1) {
|
||||||
|
score += 10;
|
||||||
|
}
|
||||||
|
return score;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Score statuettes
|
||||||
|
* @param playerID int player to score
|
||||||
|
* @return int score
|
||||||
|
*/
|
||||||
|
public int scoreStatuettes(int playerID) {
|
||||||
|
return players[playerID].getNumResource('S') * 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
// region String conversion
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert board to stateString format string
|
||||||
|
* @return String stateString
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
String str = "a " + boardHeight + " " + getNumPlayers() + "; c " + getCurrentPlayerID() + " " + getCurrentPhase() + "; ";
|
||||||
|
for (Island island : islands) {
|
||||||
|
str += island.toString() + " ";
|
||||||
|
}
|
||||||
|
str += "s";
|
||||||
|
for (Coord s: stonesCoords) {
|
||||||
|
str += " " + s.toString();
|
||||||
|
}
|
||||||
|
str += "; r";
|
||||||
|
|
||||||
|
char[] types = {'C', 'B', 'W', 'P', 'S'};
|
||||||
|
for (char type : types) {
|
||||||
|
str += " " + type;
|
||||||
|
for (Resource resource : resources) {
|
||||||
|
if (resource.getType() == type && !resource.isClaimed()) str += " " + resource.getCoord().toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
str += ";";
|
||||||
|
for (Player player : players) {
|
||||||
|
str += " " + player.toString() + ";";
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a string representation of the score of each player
|
||||||
|
* @return String scoreString
|
||||||
|
*/
|
||||||
|
public String scoreString() {
|
||||||
|
String str = "";
|
||||||
|
for (Player player : players) {
|
||||||
|
str += "Player " + player.getPlayerID() + "'s score is " + player.getScore() + "\n";
|
||||||
|
}
|
||||||
|
return str.substring(0, str.length() - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,25 +1,706 @@
|
|||||||
package comp1110.ass2.gui;
|
package comp1110.ass2.gui;
|
||||||
|
|
||||||
|
import comp1110.ass2.*;
|
||||||
import javafx.application.Application;
|
import javafx.application.Application;
|
||||||
|
import javafx.event.ActionEvent;
|
||||||
|
import javafx.event.EventHandler;
|
||||||
import javafx.scene.Group;
|
import javafx.scene.Group;
|
||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
|
import javafx.scene.control.Button;
|
||||||
|
import javafx.scene.control.CheckBox;
|
||||||
|
import javafx.scene.control.ComboBox;
|
||||||
|
import javafx.scene.control.Label;
|
||||||
|
import javafx.scene.layout.GridPane;
|
||||||
|
import javafx.scene.layout.HBox;
|
||||||
|
import javafx.scene.paint.Color;
|
||||||
|
import javafx.scene.paint.Paint;
|
||||||
|
import javafx.scene.shape.Polygon;
|
||||||
|
import javafx.scene.text.Font;
|
||||||
|
import javafx.scene.text.FontWeight;
|
||||||
|
import javafx.scene.text.Text;
|
||||||
|
import javafx.scene.text.TextAlignment;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
// FIXME Task 14
|
|
||||||
// FIXME Task 15
|
|
||||||
public class Game extends Application {
|
public class Game extends Application {
|
||||||
|
|
||||||
|
// region Variables
|
||||||
private final Group root = new Group();
|
private final Group root = new Group();
|
||||||
private static final int WINDOW_WIDTH = 1200;
|
private static final int WINDOW_WIDTH = 1200;
|
||||||
private static final int WINDOW_HEIGHT = 700;
|
private static final int WINDOW_HEIGHT = 700;
|
||||||
|
private final Group controls = new Group();
|
||||||
|
State currentGame;
|
||||||
|
String message;
|
||||||
|
Boolean messageError;
|
||||||
|
Coord selectedTile;
|
||||||
|
Boolean AI;
|
||||||
|
private final String DEFAULT_GAME = "a 13 2; c 0 E; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
||||||
|
private final String WHEELS_GAME = "a 13 2; c 0 E; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
||||||
|
private final String FACE_GAME = "a 13 2; c 0 E; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
||||||
|
private final String SIDES_GAME = "a 7 2; c 0 E; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
||||||
|
private final String SPACE_INVADERS_GAME = "a 23 2; c 0 E; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
||||||
|
// Store the selected map 0 = default, 1 = wheels, 2 = face, 3 = sides, 4 = space invaders
|
||||||
|
private int game_selected = 0;
|
||||||
|
Boolean game_over;
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
// region Setup
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This runs when the program is started. It should initialize the GUI and start the game.
|
||||||
|
*
|
||||||
|
* @param stage the primary stage for this application, onto which
|
||||||
|
* the application scene can be set.
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void start(Stage stage) throws Exception {
|
public void start(Stage stage) throws Exception {
|
||||||
|
// Set some variables and create the scene
|
||||||
|
AI = false;
|
||||||
|
selectedTile = new Coord(-1,-1);
|
||||||
|
message = "";
|
||||||
|
messageError = false;
|
||||||
Scene scene = new Scene(this.root, WINDOW_WIDTH, WINDOW_HEIGHT);
|
Scene scene = new Scene(this.root, WINDOW_WIDTH, WINDOW_HEIGHT);
|
||||||
|
|
||||||
|
// Create the control section
|
||||||
|
root.getChildren().add(controls);
|
||||||
|
makeControls();
|
||||||
|
|
||||||
|
// Set some app properties
|
||||||
stage.setScene(scene);
|
stage.setScene(scene);
|
||||||
stage.setTitle("Blue Lagoon");
|
stage.setTitle("Blue Lagoon");
|
||||||
stage.getIcons().add(new javafx.scene.image.Image(Game.class.getResourceAsStream("favicon.png")));
|
stage.getIcons().add(new javafx.scene.image.Image(Game.class.getResourceAsStream("favicon.png")));
|
||||||
stage.setResizable(false);
|
stage.setResizable(false);
|
||||||
stage.show();
|
stage.show();
|
||||||
|
// Create a new game
|
||||||
|
newGame(2);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Start a new game with the given number of players
|
||||||
|
* @param numPlayers the number of players
|
||||||
|
*/
|
||||||
|
private void newGame(int numPlayers) {
|
||||||
|
game_over = false;
|
||||||
|
|
||||||
|
// Get selected map
|
||||||
|
switch (game_selected){
|
||||||
|
case 1:
|
||||||
|
currentGame = new State(WHEELS_GAME);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
currentGame = new State(FACE_GAME);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
currentGame = new State(SIDES_GAME);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
currentGame = new State(SPACE_INVADERS_GAME);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
currentGame = new State(DEFAULT_GAME);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add additional players as needed
|
||||||
|
switch (numPlayers){
|
||||||
|
case 3:
|
||||||
|
currentGame.addPlayer();
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
currentGame.addPlayer();
|
||||||
|
currentGame.addPlayer();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Distribute resources
|
||||||
|
currentGame.distributeResources();
|
||||||
|
|
||||||
|
// Send intro message
|
||||||
|
message = "Welcome to Blue Lagoon\nYou have started a new game for " + numPlayers + " players.";
|
||||||
|
if (AI) message += "\nAI is playing";
|
||||||
|
sendMessage(message);
|
||||||
|
|
||||||
|
// Refresh the GUI (render the game)
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
// endregion
|
||||||
|
// region Game Play
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do a move of the given type. Using the selected tile as the location
|
||||||
|
* @param type the type of move 0 = place settler, 1 = place village
|
||||||
|
*/
|
||||||
|
void doMove(int type){
|
||||||
|
// Make sure the game is not over and a tile is selected
|
||||||
|
if (game_over) return;
|
||||||
|
if (selectedTile.equals(new Coord(-1,-1))){
|
||||||
|
sendMessage("No tile selected");
|
||||||
|
refresh();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the phase is not over, do the move
|
||||||
|
if (!currentGame.isPhaseOver()){
|
||||||
|
// Get the type of move
|
||||||
|
char typeC = 'S';
|
||||||
|
if (type == 1){
|
||||||
|
typeC = 'T';
|
||||||
|
if (currentGame.getCurrentPlayer().getVillages().length >= 5){
|
||||||
|
sendMessage("You have placed all your villages");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If the move is valid, do it
|
||||||
|
if (currentGame.isMoveValid(selectedTile,typeC)){
|
||||||
|
|
||||||
|
// Place the piece
|
||||||
|
currentGame.placePiece(selectedTile,typeC);
|
||||||
|
|
||||||
|
// If the move was a stone, send a message about it
|
||||||
|
Coord lastMove = selectedTile;
|
||||||
|
String message = "";
|
||||||
|
if (currentGame.isStone(lastMove)){
|
||||||
|
for (Resource resource : currentGame.getResources()) {
|
||||||
|
if (resource.getCoord().equals(lastMove) ) {
|
||||||
|
message = "Player " + currentGame.getCurrentPlayerID() +" picked up a " + resource.getTypeString().toLowerCase();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Go to the next player and if it is an AI, do a move for it
|
||||||
|
currentGame.nextPlayer();
|
||||||
|
selectedTile = new Coord(-1,-1);
|
||||||
|
if (AI && currentGame.getCurrentPlayerID() == 1) {
|
||||||
|
message += "\n"+ doAIMove();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Send the message to the user
|
||||||
|
sendMessage(message);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sendMessage("Invalid move",true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentGame.isPhaseOver()){
|
||||||
|
sendMessage("Starting next phase");
|
||||||
|
currentGame.scorePhase();
|
||||||
|
if (currentGame.getCurrentPhase() == 'E') {
|
||||||
|
currentGame.cleanBoard();
|
||||||
|
currentGame.distributeResources();
|
||||||
|
if (AI && currentGame.getCurrentPlayerID() == 1){
|
||||||
|
String AI = doAIMove();
|
||||||
|
sendMessage("Next phase!\n" + AI);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sendMessage("Game over!",true);
|
||||||
|
game_over = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do an AI move for the current player
|
||||||
|
* @return the message to be displayed
|
||||||
|
*/
|
||||||
|
String doAIMove(){
|
||||||
|
if (game_over) return "GAME OVER";
|
||||||
|
String message = "";
|
||||||
|
if (!currentGame.isPhaseOver()){
|
||||||
|
Player player = currentGame.getCurrentPlayer();
|
||||||
|
player.doAIMove(currentGame);
|
||||||
|
|
||||||
|
if (currentGame.isPhaseOver()){
|
||||||
|
message = "Starting next phase";
|
||||||
|
}
|
||||||
|
if (!player.getLastMove().equals(new Coord(-1,-1))){
|
||||||
|
Coord lastMove = player.getLastMove();
|
||||||
|
if (currentGame.isStone(lastMove)){
|
||||||
|
for (Resource resource : currentGame.getResources()) {
|
||||||
|
if (resource.getCoord().equals(lastMove) ) {
|
||||||
|
message = "AI picked up a " + resource.getTypeString().toLowerCase();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
message = "AI placed at " + lastMove.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (currentGame.isPhaseOver()){
|
||||||
|
currentGame.scorePhase();
|
||||||
|
if (currentGame.getCurrentPhase() == 'E') {
|
||||||
|
currentGame.cleanBoard();
|
||||||
|
currentGame.distributeResources();
|
||||||
|
currentGame.nextPhase();
|
||||||
|
if (AI && currentGame.getCurrentPlayerID() == 1){
|
||||||
|
String AI = doAIMove();
|
||||||
|
sendMessage("Next phase!\n" + AI);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
message = "Game over!";
|
||||||
|
game_over = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
refresh();
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do a full AI game. This is good to visualize the AI
|
||||||
|
*/
|
||||||
|
void AIGame(){
|
||||||
|
while (!currentGame.isPhaseOver()){
|
||||||
|
currentGame.getCurrentPlayer().doAIMove(currentGame);
|
||||||
|
}
|
||||||
|
currentGame.scorePhase();
|
||||||
|
currentGame.cleanBoard();
|
||||||
|
currentGame.distributeResources();
|
||||||
|
currentGame.nextPhase();
|
||||||
|
while (!currentGame.isPhaseOver()){
|
||||||
|
currentGame.getCurrentPlayer().doAIMove(currentGame);
|
||||||
|
}
|
||||||
|
currentGame.scorePhase();
|
||||||
|
sendMessage("Game over!",true);
|
||||||
|
game_over = true;
|
||||||
|
refresh();
|
||||||
|
|
||||||
|
}
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
// region Display
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send a message to the user without error
|
||||||
|
* @param message the message to send
|
||||||
|
*/
|
||||||
|
private void sendMessage(String message){
|
||||||
|
sendMessage(message, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send a message to the user.
|
||||||
|
* If the message is an error it will display as red
|
||||||
|
* @param message the message to send
|
||||||
|
* @param error if the message is an error
|
||||||
|
*/
|
||||||
|
private void sendMessage(String message, boolean error){
|
||||||
|
this.message = message;
|
||||||
|
messageError = error;
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When a tile is clicked, it will be selected
|
||||||
|
* @param coordString the coordinate of the tile
|
||||||
|
*/
|
||||||
|
|
||||||
|
private void tileClick(String coordString){
|
||||||
|
|
||||||
|
int y = Integer.parseInt(coordString.split(",")[0]);
|
||||||
|
int x = Integer.parseInt(coordString.split(",")[1]);
|
||||||
|
|
||||||
|
selectedTile = new Coord(y,x);
|
||||||
|
sendMessage("Tile " + selectedTile.toString() + " selected");
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Refresh the display
|
||||||
|
* It will clear the whole thing and then render it again
|
||||||
|
*/
|
||||||
|
private void refresh() {
|
||||||
|
// When refreshing, it clears the whole thing and update it
|
||||||
|
root.getChildren().clear();
|
||||||
|
root.getChildren().add(controls);
|
||||||
|
|
||||||
|
// Add the message
|
||||||
|
Label messageLabel = new Label(message);
|
||||||
|
messageLabel.setLayoutX(0);
|
||||||
|
messageLabel.setLayoutY(250);
|
||||||
|
messageLabel.setFont(Font.font("Sans Serif",FontWeight.BOLD, 20));
|
||||||
|
if (messageError){
|
||||||
|
messageLabel.setTextFill(Color.RED);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
messageLabel.setTextFill(Color.BLACK);
|
||||||
|
}
|
||||||
|
|
||||||
|
root.getChildren().add(messageLabel);
|
||||||
|
|
||||||
|
// Initialization of the grid
|
||||||
|
GridPane viewerGrid = new GridPane();
|
||||||
|
int boardHeight = 0;
|
||||||
|
int boardHeightPx = 0;
|
||||||
|
int tileSize = 0;
|
||||||
|
|
||||||
|
// Set up the board height value and the tile size
|
||||||
|
boardHeight = currentGame.getBoardHeight();
|
||||||
|
boardHeightPx = 650;
|
||||||
|
tileSize = boardHeightPx / boardHeight;
|
||||||
|
viewerGrid.setPrefWidth(boardHeightPx);
|
||||||
|
viewerGrid.setPrefHeight(boardHeightPx);
|
||||||
|
|
||||||
|
// Generating the water tiles ( the background water map )
|
||||||
|
for(int i = 0; i < boardHeight; i++){
|
||||||
|
for(int j = 0; j < boardHeight - (-1 * i % 2 + 1); j++){
|
||||||
|
addBoardTile(viewerGrid, boardHeightPx/boardHeight,
|
||||||
|
String.format("%s,%s", i, j), Color.DARKBLUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get current stage
|
||||||
|
int playerId = currentGame.getCurrentPlayerID();
|
||||||
|
|
||||||
|
// Getting the two mode of current state either Exploration
|
||||||
|
// or settler
|
||||||
|
char currentPhaseChar = currentGame.getCurrentPhase();
|
||||||
|
String currentPhase = "";
|
||||||
|
switch (currentPhaseChar) {
|
||||||
|
case 'E':
|
||||||
|
currentPhase = "Exploration";
|
||||||
|
break;
|
||||||
|
case 'S':
|
||||||
|
currentPhase = "Settlement";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Making the Current State Statement text on the window
|
||||||
|
Text currentStateText = new Text();
|
||||||
|
currentStateText.setText("The current player to move is player " +
|
||||||
|
playerId + "\nCurrent Phase: " + currentPhase);
|
||||||
|
currentStateText.setFont(Font.font("Sans Serif", FontWeight.BOLD, 20));
|
||||||
|
currentStateText.setX(WINDOW_WIDTH / 2 + (WINDOW_WIDTH/5) - 175);
|
||||||
|
currentStateText.setY(25);
|
||||||
|
currentStateText.setTextAlignment(TextAlignment.CENTER);
|
||||||
|
root.getChildren().add(currentStateText);
|
||||||
|
currentStateText.setFill(Color.GREEN);
|
||||||
|
|
||||||
|
// For each island render the island
|
||||||
|
for (Island island: currentGame.getIslands()){
|
||||||
|
for (Coord c: island.getCoords()){
|
||||||
|
addBoardTile(viewerGrid, tileSize, c.toString(), Color.GREEN);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Render stone circles
|
||||||
|
for (Coord stoneCircle: currentGame.getStones()){
|
||||||
|
addStoneTileToBoard(viewerGrid, tileSize, stoneCircle.toString(), Color.GRAY);
|
||||||
|
}
|
||||||
|
|
||||||
|
String playerData = "Scores:";
|
||||||
|
// For each player add their settlements and roads
|
||||||
|
for (int i = 0; i < currentGame.getNumPlayers(); i++){
|
||||||
|
Player currentPlayer = currentGame.getPlayer(i);
|
||||||
|
// Add the player's score to the playerData string
|
||||||
|
if (AI && i == 1) playerData += "\nAI: " + currentPlayer.getScore();
|
||||||
|
else playerData += "\nPlayer " + i + ": " + currentPlayer.getScore();
|
||||||
|
|
||||||
|
// Settler tile generator
|
||||||
|
for (Coord c: currentPlayer.getSettlers()){
|
||||||
|
// Tile generator
|
||||||
|
addStoneTileToBoard(viewerGrid, tileSize, c.toString(), Color.PINK);
|
||||||
|
|
||||||
|
// Label generator
|
||||||
|
addLabelToTile(viewerGrid, tileSize, c.toString(), Color.BLACK, "P"+i);
|
||||||
|
}
|
||||||
|
// Village tile generator
|
||||||
|
for (Coord c: currentPlayer.getVillages()){
|
||||||
|
// Tile generator
|
||||||
|
addStoneTileToBoard(viewerGrid, tileSize, c.toString(), Color. LIGHTGOLDENRODYELLOW);
|
||||||
|
|
||||||
|
// Label generator
|
||||||
|
addLabelToTile(viewerGrid, tileSize, c.toString(), Color.BLACK, "P"+i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Adding the player Statement Text to the window
|
||||||
|
Text playerStateText = new Text();
|
||||||
|
playerStateText.setText(playerData);
|
||||||
|
playerStateText.setFont(Font.font("Sans Serif", FontWeight.BOLD, 25));
|
||||||
|
playerStateText.setX(0);
|
||||||
|
playerStateText.setY(100);
|
||||||
|
playerStateText.setFill(Color.BLACK);
|
||||||
|
root.getChildren().add(playerStateText);
|
||||||
|
|
||||||
|
// Add the grid to the root
|
||||||
|
viewerGrid.relocate((WINDOW_WIDTH/2-viewerGrid.getPrefWidth()/2) + (WINDOW_WIDTH/5),
|
||||||
|
((WINDOW_HEIGHT+100)/2-viewerGrid.getPrefHeight()/2));
|
||||||
|
root.getChildren().add(viewerGrid);
|
||||||
|
|
||||||
|
// Add selected tile
|
||||||
|
if (!selectedTile.equals(new Coord(-1,-1))){
|
||||||
|
addTileSelector(viewerGrid, tileSize, selectedTile.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Move buttons to front, so they are on top of the grid and can be clicked
|
||||||
|
controls.toFront();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a control panel to the window
|
||||||
|
* It will create the controls variable
|
||||||
|
*/
|
||||||
|
private void makeControls() {
|
||||||
|
Label newLabel = new Label("New Game:");
|
||||||
|
Button twoPlayer = new Button("2 Player");
|
||||||
|
Button threePlayer = new Button("3 Player");
|
||||||
|
Button fourPlayer = new Button("4 Player");
|
||||||
|
Label mapLabel = new Label("Select Map:");
|
||||||
|
Label playLabel = new Label("Place piece:");
|
||||||
|
Button placeVillage = new Button("Village");
|
||||||
|
Button placeSettler = new Button("Settler");
|
||||||
|
CheckBox isAI = new CheckBox("AI");
|
||||||
|
|
||||||
|
// Store the selected map 0 = default, 1 = wheels, 2 = face, 3 = sides, 4 = space invaders
|
||||||
|
ComboBox mapSelector = new ComboBox();
|
||||||
|
mapSelector.getItems().add("Default");
|
||||||
|
mapSelector.getItems().add("Wheels");
|
||||||
|
mapSelector.getItems().add("Face");
|
||||||
|
mapSelector.getItems().add("Sides");
|
||||||
|
mapSelector.getItems().add("Space Invaders");
|
||||||
|
mapSelector.setPromptText("Default");
|
||||||
|
|
||||||
|
// Set the map when the map is selected
|
||||||
|
mapSelector.setOnAction(new EventHandler<ActionEvent>() {
|
||||||
|
@Override
|
||||||
|
public void handle(ActionEvent event) {
|
||||||
|
switch (mapSelector.getValue().toString()){
|
||||||
|
case "Default":
|
||||||
|
game_selected = 0;
|
||||||
|
break;
|
||||||
|
case "Wheels":
|
||||||
|
game_selected = 1;
|
||||||
|
break;
|
||||||
|
case "Face":
|
||||||
|
game_selected = 2;
|
||||||
|
break;
|
||||||
|
case "Sides":
|
||||||
|
game_selected = 3;
|
||||||
|
break;
|
||||||
|
case "Space Invaders":
|
||||||
|
game_selected = 4;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
game_selected = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
twoPlayer.setOnAction(new EventHandler<ActionEvent>() {
|
||||||
|
@Override
|
||||||
|
public void handle(ActionEvent e) {
|
||||||
|
AI = isAI.isSelected();
|
||||||
|
newGame(2);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
threePlayer.setOnAction(new EventHandler<ActionEvent>() {
|
||||||
|
@Override
|
||||||
|
public void handle(ActionEvent e) {
|
||||||
|
AI = isAI.isSelected();
|
||||||
|
newGame(3);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
fourPlayer.setOnAction(new EventHandler<ActionEvent>() {
|
||||||
|
@Override
|
||||||
|
public void handle(ActionEvent e) {
|
||||||
|
AI = isAI.isSelected();
|
||||||
|
newGame(4);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
placeVillage.setOnAction(new EventHandler<ActionEvent>() {
|
||||||
|
@Override
|
||||||
|
public void handle(ActionEvent e) {
|
||||||
|
doMove(1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
placeSettler.setOnAction(new EventHandler<ActionEvent>() {
|
||||||
|
@Override
|
||||||
|
public void handle(ActionEvent e) {
|
||||||
|
doMove(0);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Run AI Game if keypress is a
|
||||||
|
isAI.setOnKeyPressed(event -> {
|
||||||
|
if (event.getCode().toString() == "A"){
|
||||||
|
newGame(currentGame.getNumPlayers());
|
||||||
|
AIGame();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
HBox hb = new HBox();
|
||||||
|
hb.getChildren().addAll(newLabel, twoPlayer,threePlayer,fourPlayer, isAI,mapLabel,mapSelector,playLabel,placeVillage,placeSettler);
|
||||||
|
hb.setSpacing(10);
|
||||||
|
hb.setLayoutX(50);
|
||||||
|
hb.setLayoutY(WINDOW_HEIGHT - 50);
|
||||||
|
controls.getChildren().add(hb);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a tile to the board
|
||||||
|
* @param board The board to add the tile to
|
||||||
|
* @param tileSize The size of the tile
|
||||||
|
* @param coordString The coordinates of the tile
|
||||||
|
* @param color The color of the tile
|
||||||
|
*/
|
||||||
|
private void addBoardTile(GridPane board, int tileSize, String coordString, Color color) {
|
||||||
|
// If the string empty, stop the function
|
||||||
|
if (coordString.equals("")) return;
|
||||||
|
|
||||||
|
String[] coords = coordString.split(",");
|
||||||
|
Hexagon hex = new Hexagon(tileSize, color);
|
||||||
|
|
||||||
|
// if the row is even, translate the tile to the right by tileSize/2
|
||||||
|
if (Integer.parseInt(coords[0]) % 2 == 0) hex.setTranslateX(tileSize/2);
|
||||||
|
|
||||||
|
// Translate the whole tile's Y axis downwards so they connect and there's no gap
|
||||||
|
hex.setTranslateY(Integer.parseInt(coords[0]) * -0.25 * tileSize);
|
||||||
|
board.add(hex, Integer.parseInt(coords[1]), Integer.parseInt(coords[0]));
|
||||||
|
|
||||||
|
// Add a mouse click event to the tile
|
||||||
|
hex.setOnMouseClicked(event -> {
|
||||||
|
tileClick(coordString);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a tile to the board
|
||||||
|
* @param board The board to add the tile to
|
||||||
|
* @param tileSize The size of the tile
|
||||||
|
* @param coordString The coordinates of the tile
|
||||||
|
* @param color The color of the tile
|
||||||
|
*/
|
||||||
|
private void addStoneTileToBoard(GridPane board, int tileSize, String coordString, Color color) {
|
||||||
|
int tileSize2 = tileSize;
|
||||||
|
tileSize2 -= 15;
|
||||||
|
|
||||||
|
// If the string empty, stop the function
|
||||||
|
if (coordString.equals("")) return;
|
||||||
|
String[] coords = coordString.split(",");
|
||||||
|
Hexagon hex = new Hexagon(tileSize2, color);
|
||||||
|
|
||||||
|
// if the row is even, translate the tile to the right by tileSize/2
|
||||||
|
if (Integer.parseInt(coords[0]) % 2 == 0) hex.setTranslateX(tileSize/2);
|
||||||
|
// Translate the whole tile's Y axis downwards so they connect and there's no gap
|
||||||
|
hex.setTranslateY(Integer.parseInt(coords[0]) * -0.25 * tileSize);
|
||||||
|
|
||||||
|
// Translate the tile so they look center
|
||||||
|
hex.setTranslateX(7 + hex.getTranslateX());
|
||||||
|
board.add(hex, Integer.parseInt(coords[1]), Integer.parseInt(coords[0]));
|
||||||
|
|
||||||
|
// Add a mouse click event to the tile
|
||||||
|
hex.setOnMouseClicked(event -> {
|
||||||
|
tileClick(coordString);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a label to the board
|
||||||
|
* @param board The board to add the label to
|
||||||
|
* @param tileSize The size of the tile
|
||||||
|
* @param coordString The coordinates of the tile to add the label to
|
||||||
|
* @param color The color of the tile
|
||||||
|
* @param labelName The name of the label
|
||||||
|
*/
|
||||||
|
private void addLabelToTile(GridPane board, int tileSize, String coordString, Color color, String labelName){
|
||||||
|
// If the string empty, stop the function
|
||||||
|
if (coordString.equals("")) return;
|
||||||
|
String[] coords = coordString.split(",");
|
||||||
|
Label newLabel = new Label(labelName);
|
||||||
|
newLabel.setTextFill(color);
|
||||||
|
newLabel.setFont(Font.font("Sans Serif", 12));
|
||||||
|
|
||||||
|
// Following the tile's pos format
|
||||||
|
if (Integer.parseInt(coords[0]) % 2 == 0) newLabel.setTranslateX(tileSize/2);
|
||||||
|
newLabel.setTranslateY(Integer.parseInt(coords[0]) * -0.25 * tileSize);
|
||||||
|
|
||||||
|
// Making the label center
|
||||||
|
newLabel.setTranslateX(19.5 + newLabel.getTranslateX());
|
||||||
|
board.add(newLabel, Integer.parseInt(coords[1]), Integer.parseInt(coords[0]));
|
||||||
|
|
||||||
|
// Add a mouse click event to the tile
|
||||||
|
newLabel.setOnMouseClicked(event -> {
|
||||||
|
tileClick(coordString);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a X to mark the tile as selected
|
||||||
|
* @param board The board to add the label to
|
||||||
|
* @param tileSize The size of the tile
|
||||||
|
* @param coordString The coordinates of the tile to add the label to
|
||||||
|
*/
|
||||||
|
private void addTileSelector(GridPane board, int tileSize, String coordString){
|
||||||
|
// If the string empty, stop the function
|
||||||
|
if (coordString.equals("")) return;
|
||||||
|
String[] coords = coordString.split(",");
|
||||||
|
Label newLabel = new Label("X");
|
||||||
|
int width = 0;
|
||||||
|
if (game_selected == 3){
|
||||||
|
// Increase the font
|
||||||
|
newLabel.setFont(Font.font("Sans Serif", 40));
|
||||||
|
width = 30;
|
||||||
|
} else if (game_selected == 4){
|
||||||
|
// Decrease the font
|
||||||
|
newLabel.setFont(Font.font("Sans Serif", 15));
|
||||||
|
width = 10;
|
||||||
|
} else {
|
||||||
|
newLabel.setFont(Font.font("Sans Serif", 25));
|
||||||
|
width = 15;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Adjust the label's position
|
||||||
|
if (Integer.parseInt(coords[0]) % 2 == 0){
|
||||||
|
newLabel.setTranslateX(tileSize/2 + width);
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
newLabel.setTranslateX(width);
|
||||||
|
}
|
||||||
|
newLabel.setTranslateY(Integer.parseInt(coords[0]) * -0.25 * tileSize);
|
||||||
|
// Set the color to red and add it to the board
|
||||||
|
newLabel.setTextFill(Color.RED);
|
||||||
|
board.add(newLabel, Integer.parseInt(coords[1]), Integer.parseInt(coords[0]));
|
||||||
|
// Add a mouse click event to the tile
|
||||||
|
newLabel.setOnMouseClicked(event -> {
|
||||||
|
tileClick(coordString);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A hexagon shape with a given side length and fill.
|
||||||
|
* Used to create the tiles on the board.
|
||||||
|
*/
|
||||||
|
class Hexagon extends Polygon {
|
||||||
|
/**
|
||||||
|
* Create a hexagon with a given side length and fill.
|
||||||
|
* @param side double The length of a side of the hexagon.
|
||||||
|
* @param fill Paint The fill of the hexagon.
|
||||||
|
*/
|
||||||
|
public Hexagon(double side, Paint fill) {
|
||||||
|
super(
|
||||||
|
0.0, side / 2.0,
|
||||||
|
side / 2.0, side / 4.0,
|
||||||
|
side / 2.0, -side / 4.0,
|
||||||
|
0.0, -side / 2.0,
|
||||||
|
-side / 2.0, -side / 4.0,
|
||||||
|
-side / 2.0, side / 4.0
|
||||||
|
);
|
||||||
|
this.setFill(fill);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// endregion
|
||||||
|
}
|
||||||
|
|||||||
11
src/comp1110/comp1110.iml
Normal file
11
src/comp1110/comp1110.iml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" packagePrefix="comp1110" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
@@ -63,5 +63,6 @@ public class CalculateTotalIslandsScoreTest implements TestMapNamePlayerCount {
|
|||||||
for(int game = 0; game < games.size(); game++){
|
for(int game = 0; game < games.size(); game++){
|
||||||
testGame(games.get(game), solutions.get(game));
|
testGame(games.get(game), solutions.get(game));
|
||||||
}
|
}
|
||||||
|
test(new int[]{20, 20}, "a 13 2; c 1 E; i 6 0,0 0,2 1,1 1,2; i 6 0,4 0,6 1,5 1,6; i 6 0,8 0,10 1,9 1,10; i 6 1,12 2,11 3,12 4,11; i 6 3,0 3,2 4,0 4,1; i 6 3,4 3,6 4,4 4,5; i 6 3,8 3,10 4,8 4,9; i 6 8,0 8,1 9,0 9,2; i 6 8,4 8,5 9,4 9,6; i 6 8,8 8,9 9,8 9,10; i 6 8,11 9,12 10,11 11,12; i 6 11,0 11,2 12,0 12,1; i 6 11,4 11,6 12,4 12,5; i 6 11,8 11,10 12,8 12,9; i 10 6,0 6,1 6,2; i 10 6,4 6,5 6,6; i 10 6,8 6,9 6,10 6,11; s 0,0 0,2 0,4 0,6 0,8 0,10 1,12 3,0 3,4 3,10 4,1 4,5 4,8 4,11 6,1 6,5 6,8 6,11 8,1 8,5 8,8 8,11 9,0 9,4 9,10 11,0 11,2 11,4 11,6 11,8 11,10 11,12; r C 9,4 B 0,0 1,12 11,4 W 8,8 P 3,0 9,10 11,12 S 0,4 9,0 11,6 11,8; p 0 0 2 2 4 2 1 S 0,2 0,3 0,5 0,6 0,7 0,8 0,9 0,10 2,7 2,9 4,1 4,8 4,10 5,1 5,5 5,9 5,10 7,4 7,6 7,12 8,1 8,2 8,11 9,3 10,0 10,9 11,0 11,9 11,10 12,8 T 1,10 3,10 6,0 6,4 9,2; p 1 0 3 1 1 1 3 S 1,7 3,2 3,4 3,5 4,2 4,3 4,5 4,11 5,2 5,4 5,6 5,11 6,1 6,2 6,5 6,8 6,10 6,11 7,0 7,1 7,5 7,10 8,4 8,5 8,6 8,9 10,1 10,6 10,8 11,2 T 6,6 6,9 8,0 12,1;");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
109
tests/comp1110/ass2/D2DTests.java
Normal file
109
tests/comp1110/ass2/D2DTests.java
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
package comp1110.ass2;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Assertions;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.sql.SQLOutput;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is used to test BlueLagoon methods/functions.
|
||||||
|
* This was completed for Task D2D.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class D2DTests {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is to show how to write a test.
|
||||||
|
* It is not a real test as it does not test anything.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void exampleTest() {
|
||||||
|
// Here are variables used in this example test.
|
||||||
|
// Change them to see how the test behaves.
|
||||||
|
boolean alwaysTrue = true;
|
||||||
|
boolean alwaysFalse = false;
|
||||||
|
int alwaysOne = 1;
|
||||||
|
int alwaysTwo = 2;
|
||||||
|
String alwaysHello = "Hello";
|
||||||
|
String alwaysWorld = "World";
|
||||||
|
int[] alwaysOneTwoThree = {1,2,3};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// To run a test to see if two values are equal, use the following:
|
||||||
|
|
||||||
|
Assertions.assertTrue(alwaysTrue,"The test failed because alwaysTrue was not true");
|
||||||
|
Assertions.assertFalse(alwaysFalse,"The test failed because alwaysFalse was not false");
|
||||||
|
Assertions.assertEquals(alwaysOne*2, alwaysTwo, "The test failed because alwaysOne*2 was not equal to alwaysTwo");
|
||||||
|
Assertions.assertEquals(alwaysHello + " " + alwaysWorld, "Hello World", "The test failed because alwaysHello + \" \" + alwaysWorld was not equal to \"Hello World\"");
|
||||||
|
Assertions.assertArrayEquals(new int[]{1,2,3}, alwaysOneTwoThree, "The test failed because new int[]{1,2,3} was not equal to alwaysOneTwoThree");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is to test the isStateStringWellFormed method.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testIsStateStringWellFormed() {
|
||||||
|
|
||||||
|
String DEFAULT_GAME = "a 13 2; c 0 E; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
||||||
|
Assertions.assertTrue(BlueLagoon.isStateStringWellFormed(DEFAULT_GAME), "The test failed because DEFAULT_GAME was marked as an invalid state string");
|
||||||
|
System.out.println("Test 1 passed");
|
||||||
|
// Test adding multiple player with the same id (Caused Error 1)
|
||||||
|
String DEFAULT_WITH_ADDED = DEFAULT_GAME + " p 1 0 0 0 0 0 0 S T;";
|
||||||
|
Assertions.assertFalse(BlueLagoon.isStateStringWellFormed(DEFAULT_WITH_ADDED), "The test failed because DEFAULT with double Player 1 was marked as a valid state string");
|
||||||
|
System.out.println("Test 2 passed");
|
||||||
|
DEFAULT_WITH_ADDED = DEFAULT_GAME + " p 0 0 0 0 0 0 0 S T;";
|
||||||
|
Assertions.assertFalse(BlueLagoon.isStateStringWellFormed(DEFAULT_WITH_ADDED), "The test failed because DEFAULT with double Player 0 was marked as a valid state string");
|
||||||
|
System.out.println("Test 3 passed");
|
||||||
|
|
||||||
|
// Test adding `a 13 2; `
|
||||||
|
DEFAULT_WITH_ADDED = "a 13 2; "+ DEFAULT_GAME;
|
||||||
|
Assertions.assertFalse(BlueLagoon.isStateStringWellFormed(DEFAULT_WITH_ADDED), "The test failed because DEFAULT with double init was marked as a valid state string");
|
||||||
|
System.out.println("Test 4 passed");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* This test found Errors as below
|
||||||
|
Errors found by this test are:
|
||||||
|
1. The method did not check if the player was included twice.
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIsMoveStringWellFormed(){
|
||||||
|
String moveString = "S 10,11";
|
||||||
|
Assertions.assertTrue(BlueLagoon.isMoveStringWellFormed(moveString), "The test failed because \"S 10,11\" is DEEMED an invalid move String even though it should be valid");
|
||||||
|
System.out.println("Test moveString is valid");
|
||||||
|
|
||||||
|
// updating the move string to a new one
|
||||||
|
moveString = "T 4,5";
|
||||||
|
Assertions.assertTrue(BlueLagoon.isMoveStringWellFormed(moveString), "The test failed because \"T 4,5\" is DEEMED an invalid move String even though it should be valid");
|
||||||
|
System.out.println("Test 2 passed");
|
||||||
|
|
||||||
|
moveString = "A 1,2";
|
||||||
|
Assertions.assertFalse(BlueLagoon.isMoveStringWellFormed(moveString), "The test failed \"A 1,2\" is DEEMED a valid move string even though it should be invalid because the first element is supposed to be only either `S` or `T`");
|
||||||
|
System.out.println("Test 3 passed");
|
||||||
|
|
||||||
|
moveString = "S 12";
|
||||||
|
Assertions.assertFalse(BlueLagoon.isMoveStringWellFormed(moveString), "The test failed because \"S 12\" is DEEMED a valid move string even though it should be invalid because there should be a `,` between the numbers `1` and `2` to differentiate between rows and cols");
|
||||||
|
System.out.println("Test 4 passed");
|
||||||
|
|
||||||
|
moveString = "S 1, 2";
|
||||||
|
Assertions.assertFalse(BlueLagoon.isMoveStringWellFormed(moveString), "The test failed because \"S 1, 2\" is DEEMED a valid move string even though it should be invalid because there should not be any whitespace after `,`");
|
||||||
|
System.out.println("Test 5 passed");
|
||||||
|
|
||||||
|
moveString = "T 1,2";
|
||||||
|
Assertions.assertFalse(BlueLagoon.isMoveStringWellFormed(moveString), "The test failed because \"T 1,2\" is DEEMED a valid move string even though it should be invalid because there should not be 2 whitespaces after the first element (i.e. after `T`)");
|
||||||
|
System.out.println("Test 6 passed");
|
||||||
|
|
||||||
|
moveString = "S 3 ,4";
|
||||||
|
Assertions.assertFalse(BlueLagoon.isMoveStringWellFormed(moveString), "The test failed because \"S 3,4\" is DEEMED a valid move string even though it should be invalid because there should not be a whitespace after the first number");
|
||||||
|
System.out.println("Test 7 passed");
|
||||||
|
System.out.println("All Tests passed");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
128
tests/comp1110/ass2/StateTest.java
Normal file
128
tests/comp1110/ass2/StateTest.java
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
package comp1110.ass2;
|
||||||
|
|
||||||
|
import comp1110.ass2.testdata.GameDataLoader;
|
||||||
|
import org.junit.jupiter.api.Assertions;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is used to test the state Class.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class StateTest {
|
||||||
|
@Test
|
||||||
|
public void testStateDEFAULTGAME() {
|
||||||
|
State state = new State(GameDataLoader.DEFAULT_GAME);
|
||||||
|
Assertions.assertEquals(13, state.getBoardHeight(), "The test failed because the board length is not 13");
|
||||||
|
Assertions.assertEquals(2, state.getNumPlayers(), "The test failed because the number of players is not 2");
|
||||||
|
Assertions.assertEquals(0, state.getCurrentPlayerID(), "The test failed because the current player is not 0");
|
||||||
|
Assertions.assertEquals('E', state.getCurrentPhase(), "The test failed because the current phase is not E");
|
||||||
|
|
||||||
|
Assertions.assertEquals(GameDataLoader.DEFAULT_GAME, state.toString(), "The test failed because the state created from the string is not the same as the state created from the string");
|
||||||
|
|
||||||
|
// Creating test island for the string
|
||||||
|
// i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1;
|
||||||
|
Island island = new Island(6);
|
||||||
|
island.addCoord(new Coord(0, 0));
|
||||||
|
island.addCoord(new Coord(0, 1));
|
||||||
|
island.addCoord(new Coord(0, 2));
|
||||||
|
island.addCoord(new Coord(0, 3));
|
||||||
|
island.addCoord(new Coord(1, 0));
|
||||||
|
island.addCoord(new Coord(1, 1));
|
||||||
|
island.addCoord(new Coord(1, 2));
|
||||||
|
island.addCoord(new Coord(1, 3));
|
||||||
|
island.addCoord(new Coord(1, 4));
|
||||||
|
island.addCoord(new Coord(2, 0));
|
||||||
|
island.addCoord(new Coord(2, 1));
|
||||||
|
Assertions.assertTrue(island.equals(state.getIsland(0)), "The test failed because the island at index 0 is not the same as the island created above");
|
||||||
|
island.addCoord(new Coord(2, 2));
|
||||||
|
Assertions.assertFalse(island.equals(state.getIsland(0)), "The test failed because the island at index 0 is the same as the island created above even though it should not be because the island created above has 11 coords while the island at index 0 has 12 coords");
|
||||||
|
Assertions.assertTrue(state.isStone(new Coord(0, 0)), "The test failed because the stone at (0,0) is not a stone");
|
||||||
|
Assertions.assertFalse(state.isStone(new Coord(0, 1)), "The test failed because the stone at (0,5) is a stone even though it should not be because there is no stone at that location");
|
||||||
|
|
||||||
|
// Creating a test player for the string
|
||||||
|
// p 0 0 0 0 0 0 0 S T;
|
||||||
|
Player player = new Player(0);
|
||||||
|
Assertions.assertTrue(player.equals(state.getPlayer(0)), "The test failed because the player at index 0 is not the same as the player created above");
|
||||||
|
player.addScore(1);
|
||||||
|
Assertions.assertFalse(player.equals(state.getPlayer(0)), "The test failed because the player at index 0 is the same as the player created above even though it should not be because the player created above has a score of 1 while the player at index 0 has a score of 0");
|
||||||
|
player = new Player(0);
|
||||||
|
player.addVillage(new Coord(0, 0));
|
||||||
|
Assertions.assertFalse(player.equals(state.getPlayer(0)), "The test failed because the player at index 0 is the same as the player created above even though it should not be because the player created above has a village at (0,0) while the player at index 0 has no villages");
|
||||||
|
player = new Player(0);
|
||||||
|
player.addResource(1, 'C');
|
||||||
|
Assertions.assertFalse(player.equals(state.getPlayer(0)), "The test failed because the player at index 0 is the same as the player created above even though it should not be because the player created above has a resource of 1 for C while the player at index 0 has a resource of 0 for C");
|
||||||
|
|
||||||
|
// Distribute resources
|
||||||
|
state.distributeResources();
|
||||||
|
Resource toClaim = state.getUnclaimedResource(new Coord(0, 0));
|
||||||
|
|
||||||
|
// Place a settler at (0,0)
|
||||||
|
state.placePiece(new Coord(0, 0), 'S');
|
||||||
|
// Get the island score
|
||||||
|
Assertions.assertEquals(6, state.scoreMajorities(0), "The test failed because the score of the islands for player 0 is not 34");
|
||||||
|
Assertions.assertEquals(0, state.scoreMajorities(1), "The test failed because the score of the islands for player 1 is not 28");
|
||||||
|
Assertions.assertEquals(0, state.scoreTotalIslands(0), "The test failed because the score of the islands for player 0 is not 0");
|
||||||
|
Assertions.assertEquals(1, state.getPlayer(0).getNumResource(toClaim.getType()), "The test failed because the number of resources for player 0 is not 1");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run Sim on AI vs Random
|
||||||
|
*
|
||||||
|
* @return true if AI wins, false if Random wins
|
||||||
|
*/
|
||||||
|
public boolean simulateGame(State state) {
|
||||||
|
while (!state.isPhaseOver()) {
|
||||||
|
if (!state.getCurrentPlayer().canPlay(state)) {
|
||||||
|
System.out.println("Player " + state.getCurrentPlayerID() + " can't play");
|
||||||
|
state.nextPlayer();
|
||||||
|
}
|
||||||
|
if (state.getCurrentPlayerID() == 0) {
|
||||||
|
state.getCurrentPlayer().doAIMove(state);
|
||||||
|
} else {
|
||||||
|
state.getCurrentPlayer().doRandomMove(state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
state.scorePhase();
|
||||||
|
int P0 = state.getPlayer(0).getScore();
|
||||||
|
int P1 = state.getPlayer(1).getScore();
|
||||||
|
if (P0 > P1) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAIDominance() {
|
||||||
|
|
||||||
|
|
||||||
|
State Startstate;
|
||||||
|
|
||||||
|
for (String map : GameDataLoader.MAP_NAMES) {
|
||||||
|
Startstate = new State(GameDataLoader.readMap(map));
|
||||||
|
Startstate.distributeResources();
|
||||||
|
|
||||||
|
int numGames = 5;
|
||||||
|
int numWins = 0;
|
||||||
|
for (int i = 0; i < numGames; i++) {
|
||||||
|
State state = new State(Startstate.toString());
|
||||||
|
if (simulateGame(state)) {
|
||||||
|
numWins++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("AI won " + numWins + " out of " + numGames + " games on the " + map + " map");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testMorePlayers() {
|
||||||
|
State state = new State(GameDataLoader.DEFAULT_GAME);
|
||||||
|
state.addPlayer();
|
||||||
|
|
||||||
|
Assertions.assertEquals("a 13 3; c 0 E; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T; p 2 0 0 0 0 0 0 S T;", state.toString(), "The test failed because the state is not the same as the state created above");
|
||||||
|
|
||||||
|
state.addPlayer();
|
||||||
|
Assertions.assertEquals("a 13 4; c 0 E; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T; p 2 0 0 0 0 0 0 S T; p 3 0 0 0 0 0 0 S T;", state.toString(), "The test failed because the state is not the same as the state created above");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -133,14 +133,14 @@ public class StringComparator {
|
|||||||
|
|
||||||
private void checkGeneralString(List<String> statementsA, List<String> statementsB, List<String> errors) {
|
private void checkGeneralString(List<String> statementsA, List<String> statementsB, List<String> errors) {
|
||||||
// Check for the number of statements
|
// Check for the number of statements
|
||||||
if (checks.get(ResultType.General).contains("num_statements") &&
|
if (checks.get(ResultType.General).contains("numStatements") &&
|
||||||
statementsA.size() != statementsB.size())
|
statementsA.size() != statementsB.size())
|
||||||
{
|
{
|
||||||
errors.add("Strings contain different numbers of statements");
|
errors.add("Strings contain different numbers of statements");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if there are any unrecognised statement IDs
|
// Check if there are any unrecognised statement IDs
|
||||||
if (checks.get(ResultType.General).contains("unrecognised_statements"))
|
if (checks.get(ResultType.General).contains("unrecognisedStatements"))
|
||||||
{
|
{
|
||||||
List<String> unrecognised = statementsB
|
List<String> unrecognised = statementsB
|
||||||
.stream()
|
.stream()
|
||||||
|
|||||||
15
tests/comp1110/ass2/testdata/GameDataLoader.java
vendored
15
tests/comp1110/ass2/testdata/GameDataLoader.java
vendored
@@ -7,6 +7,21 @@ public class GameDataLoader extends DataLoader<String>{
|
|||||||
public static final String SIDES_GAME = "a 7 2; c 0 E; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
public static final String SIDES_GAME = "a 7 2; c 0 E; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
||||||
public static final String SPACE_INVADERS_GAME = "a 23 2; c 0 E; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
public static final String SPACE_INVADERS_GAME = "a 23 2; c 0 E; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C B W P S; p 0 0 0 0 0 0 0 S T; p 1 0 0 0 0 0 0 S T;";
|
||||||
|
|
||||||
|
public static String readMap(String mapName){
|
||||||
|
switch (mapName){
|
||||||
|
case "WHEELS_GAME":
|
||||||
|
return WHEELS_GAME;
|
||||||
|
case "FACE_GAME":
|
||||||
|
return FACE_GAME;
|
||||||
|
case "SIDES_GAME":
|
||||||
|
return SIDES_GAME;
|
||||||
|
case "SPACE_INVADERS_GAME":
|
||||||
|
return SPACE_INVADERS_GAME;
|
||||||
|
default:
|
||||||
|
return DEFAULT_GAME;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
public GameDataLoader(){
|
public GameDataLoader(){
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 2; c 0 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 0,0 3,10 10,6 10,10 11,0 12,2 B 2,1 3,5 7,12 8,5 9,0 12,8 W 1,4 1,8 1,12 5,9 6,6 10,3 P 3,7 3,12 4,0 4,2 5,11 6,3 S 0,5 0,9 7,0 7,8 8,2 9,9 11,5 12,11; p 0 100 0 0 0 0 0 S T 7,6 8,4 9,2 10,4 12,5; p 1 133 0 0 0 0 0 S T 11,1 11,2 12,0 12,1;
|
a 13 2; c 0 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 2,1 3,10 5,9 7,8 10,3 10,10 B 1,4 5,11 7,12 8,5 12,2 12,11 W 0,9 3,7 4,2 6,6 9,0 11,5 P 1,8 1,12 3,5 4,0 8,2 9,9 S 0,0 0,5 3,12 6,3 7,0 10,6 11,0 12,8; p 0 100 0 0 0 0 0 S T 7,6 8,4 9,2 10,4 12,5; p 1 133 0 0 0 0 0 S T 11,1 11,2 12,0 12,1;
|
||||||
a 13 2; c 0 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 12,8 B 1,8 5,9 W 0,0 0,5 3,12 P 2,1 5,11 6,3 12,11 S 0,9 1,12 3,10 4,0 4,2 7,12; p 0 259 4 4 3 1 2 S 1,4 2,4 3,5 3,6 3,7 4,4 4,6 5,7 6,5 6,6 7,0 7,7 7,8 7,9 8,0 8,2 8,5 8,9 9,0 9,1 9,3 9,5 9,9 9,10 10,3 10,5 10,6 10,10 11,3 11,5 T 7,6 8,4 9,2 10,4 12,5; p 1 146 1 0 0 1 0 S 10,0 10,1 10,2 11,0 11,4 12,2 12,3 12,4 T 11,1 11,2 12,0 12,1;
|
a 13 2; c 0 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 12,8 B 1,8 5,9 W 0,0 0,5 3,12 P 2,1 5,11 6,3 12,11 S 0,9 1,12 3,10 4,0 4,2 7,12; p 0 259 4 4 3 1 2 S 1,4 2,4 3,5 3,6 3,7 4,4 4,6 5,7 6,5 6,6 7,0 7,7 7,8 7,9 8,0 8,2 8,5 8,9 9,0 9,1 9,3 9,5 9,9 9,10 10,3 10,5 10,6 10,10 11,3 11,5 T 7,6 8,4 9,2 10,4 12,5; p 1 146 1 0 0 1 0 S 10,0 10,1 10,2 11,0 11,4 12,2 12,3 12,4 T 11,1 11,2 12,0 12,1;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 2; c 0 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 1,4 3,5 3,10 7,12 10,6 12,2 B 0,9 1,8 3,7 4,0 9,9 10,3 W 0,5 6,6 7,0 8,5 11,5 12,11 P 1,12 2,1 6,3 7,8 10,10 11,0 S 0,0 3,12 4,2 5,9 5,11 8,2 9,0 12,8; p 0 119 0 0 0 0 0 S T 5,3 8,8; p 1 86 0 0 0 0 0 S T 11,4;
|
a 13 2; c 0 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 0,0 0,9 1,12 3,5 3,10 3,12 B 0,5 1,8 7,12 8,5 10,10 12,2 W 4,0 7,8 8,2 9,0 10,6 12,11 P 4,2 6,6 7,0 10,3 11,0 12,8 S 1,4 2,1 3,7 5,9 5,11 6,3 9,9 11,5; p 0 119 0 0 0 0 0 S T 5,3 8,8; p 1 86 0 0 0 0 0 S T 11,4;
|
||||||
a 13 2; c 0 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 3,5 3,10 5,11 7,12 B 0,0 1,4 1,12 8,5 W 0,9 P 0,5 3,12 5,9 11,0 S 1,8 3,7; p 0 212 2 2 1 1 3 S 2,1 3,1 4,0 4,2 5,0 5,1 5,2 5,4 5,5 5,6 6,0 6,1 6,2 6,3 6,6 6,8 7,0 7,1 7,7 7,8 7,9 8,7 9,9 9,11 9,12 10,7 10,8 10,9 10,10 11,10 T 5,3 8,8; p 1 155 0 0 4 1 3 S 7,2 8,0 8,1 8,2 8,3 8,4 9,0 9,1 9,2 9,7 9,8 10,2 10,3 10,4 10,5 10,6 11,3 11,5 11,7 11,8 11,11 12,1 12,2 12,4 12,5 12,7 12,8 12,9 12,10 12,11 T 11,4;
|
a 13 2; c 0 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 3,5 3,10 5,11 7,12 B 0,0 1,4 1,12 8,5 W 0,9 P 0,5 3,12 5,9 11,0 S 1,8 3,7; p 0 212 2 2 1 1 3 S 2,1 3,1 4,0 4,2 5,0 5,1 5,2 5,4 5,5 5,6 6,0 6,1 6,2 6,3 6,6 6,8 7,0 7,1 7,7 7,8 7,9 8,7 9,9 9,11 9,12 10,7 10,8 10,9 10,10 11,10 T 5,3 8,8; p 1 155 0 0 4 1 3 S 7,2 8,0 8,1 8,2 8,3 8,4 9,0 9,1 9,2 9,7 9,8 10,2 10,3 10,4 10,5 10,6 11,3 11,5 11,7 11,8 11,11 12,1 12,2 12,4 12,5 12,7 12,8 12,9 12,10 12,11 T 11,4;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 2; c 0 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 2,9 4,6 6,9 8,6 10,6 12,7 B 0,8 2,2 4,2 4,9 6,5 8,0 W 1,12 6,2 6,6 8,5 10,3 11,0 P 0,3 2,7 4,5 10,5 10,8 12,4 S 1,0 2,4 5,0 5,12 8,11 9,2 9,10 11,12; p 0 120 0 0 0 0 0 S T 3,9 4,7 7,10; p 1 117 0 0 0 0 0 S T;
|
a 13 2; c 0 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 0,3 4,5 5,0 10,6 11,0 11,12 B 0,8 1,0 4,6 6,2 6,6 9,10 W 1,12 2,2 8,5 10,5 10,8 12,7 P 2,7 5,12 6,5 8,6 9,2 10,3 S 2,4 2,9 4,2 4,9 6,9 8,0 8,11 12,4; p 0 120 0 0 0 0 0 S T 3,9 4,7 7,10; p 1 117 0 0 0 0 0 S T;
|
||||||
a 13 2; c 0 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 0,8 10,5 11,12 B 8,0 9,2 W 0,3 1,12 12,4 P 1,0 2,2 10,6 12,7 S 5,0 10,3 11,0; p 0 306 3 4 3 2 5 S 2,4 2,7 2,9 3,5 3,7 4,2 4,5 4,6 4,8 4,9 5,3 5,4 5,5 5,7 5,9 5,12 6,2 6,5 6,6 6,9 6,11 7,6 7,11 8,5 8,6 8,9 8,11 9,9 9,10 10,8 T 3,9 4,7 7,10; p 1 117 0 0 0 0 0 S T;
|
a 13 2; c 0 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 0,8 10,5 11,12 B 8,0 9,2 W 0,3 1,12 12,4 P 1,0 2,2 10,6 12,7 S 5,0 10,3 11,0; p 0 306 3 4 3 2 5 S 2,4 2,7 2,9 3,5 3,7 4,2 4,5 4,6 4,8 4,9 5,3 5,4 5,5 5,7 5,9 5,12 6,2 6,5 6,6 6,9 6,11 7,6 7,11 8,5 8,6 8,9 8,11 9,9 9,10 10,8 T 3,9 4,7 7,10; p 1 117 0 0 0 0 0 S T;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 0,8 2,4 4,9 6,2 8,11 10,8 B 0,3 2,7 5,0 6,9 10,6 12,7 W 1,12 2,2 5,12 6,6 9,2 11,0 P 1,0 4,5 8,0 8,5 8,6 12,4 S 2,9 4,2 4,6 6,5 9,10 10,3 10,5 11,12; p 0 108 0 0 0 0 0 S T 5,9 6,0 7,7; p 1 143 0 0 0 0 0 S T 3,2 3,10 7,5 10,2 10,9;
|
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 6,2 6,5 10,3 11,0 12,4 12,7 B 1,12 2,2 2,9 4,6 4,9 6,9 W 0,3 2,4 8,5 8,11 9,2 11,12 P 0,8 1,0 5,0 8,0 8,6 10,5 S 2,7 4,2 4,5 5,12 6,6 9,10 10,6 10,8; p 0 108 0 0 0 0 0 S T 5,9 6,0 7,7; p 1 143 0 0 0 0 0 S T 3,2 3,10 7,5 10,2 10,9;
|
||||||
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C B W P 0,8 1,0 2,4 5,12 11,0 S; p 0 229 1 4 3 0 5 S 2,0 2,7 3,0 3,7 4,0 4,5 4,6 4,9 5,0 5,7 5,8 5,10 6,6 6,9 7,1 7,2 7,9 8,0 8,6 9,0 9,6 10,5 10,6 11,5 11,7 12,3 12,4 12,7 12,8 12,9 T 5,9 6,0 7,7; p 1 249 5 2 3 1 3 S 0,1 0,2 0,3 0,4 1,3 1,12 2,2 2,9 2,10 2,11 3,9 3,12 4,2 5,2 6,2 6,5 7,10 7,12 8,5 8,9 8,11 9,2 9,10 9,11 10,3 10,8 10,11 11,12 12,10 12,11 T 3,2 3,10 7,5 10,2 10,9;
|
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C B W P 0,8 1,0 2,4 5,12 11,0 S; p 0 229 1 4 3 0 5 S 2,0 2,7 3,0 3,7 4,0 4,5 4,6 4,9 5,0 5,7 5,8 5,10 6,6 6,9 7,1 7,2 7,9 8,0 8,6 9,0 9,6 10,5 10,6 11,5 11,7 12,3 12,4 12,7 12,8 12,9 T 5,9 6,0 7,7; p 1 249 5 2 3 1 3 S 0,1 0,2 0,3 0,4 1,3 1,12 2,2 2,9 2,10 2,11 3,9 3,12 4,2 5,2 6,2 6,5 7,10 7,12 8,5 8,9 8,11 9,2 9,10 9,11 10,3 10,8 10,11 11,12 12,10 12,11 T 3,2 3,10 7,5 10,2 10,9;
|
||||||
@@ -1 +1 @@
|
|||||||
a 13 2; c 1 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 0,1 2,2 4,3 4,10 8,8 12,10 B 2,3 3,4 6,11 8,10 10,9 12,4 W 0,4 0,10 3,2 8,5 10,0 10,7 P 3,0 6,4 6,6 11,3 12,1 12,8 S 2,9 2,11 3,6 4,2 6,1 8,0 10,5 10,11; p 0 137 0 0 0 0 0 S T; p 1 81 0 0 0 0 0 S T;
|
a 13 2; c 1 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 2,11 3,0 3,6 4,3 6,4 10,0 B 3,2 3,4 6,11 8,5 10,5 12,10 W 0,4 2,2 2,3 4,2 8,0 10,7 P 0,1 2,9 6,1 8,8 8,10 12,4 S 0,10 4,10 6,6 10,9 10,11 11,3 12,1 12,8; p 0 137 0 0 0 0 0 S T; p 1 81 0 0 0 0 0 S T;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 2; c 0 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 0,4 6,1 6,6 10,5 10,7 10,11 B 2,2 2,3 3,0 4,10 6,4 11,3 W 2,9 2,11 3,6 8,8 10,9 12,1 P 3,2 3,4 6,11 8,0 8,5 8,10 S 0,1 0,10 4,2 4,3 10,0 12,4 12,8 12,10; p 0 108 0 0 0 0 0 S T 10,1 11,0 11,2 11,4 12,0; p 1 116 0 0 0 0 0 S T 8,1 8,2 8,4 8,9 11,6;
|
a 13 2; c 0 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 0,4 2,9 8,0 8,8 10,9 10,11 B 0,10 2,11 6,6 12,1 12,4 12,8 W 2,3 3,6 4,10 6,1 6,11 10,5 P 2,2 3,0 3,2 3,4 8,10 11,3 S 0,1 4,2 4,3 6,4 8,5 10,0 10,7 12,10; p 0 108 0 0 0 0 0 S T 10,1 11,0 11,2 11,4 12,0; p 1 116 0 0 0 0 0 S T 8,1 8,2 8,4 8,9 11,6;
|
||||||
a 13 2; c 1 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 2,11 B 4,10 12,10 W 2,9 6,11 P 0,10 3,6 6,1 10,11 S 0,4; p 0 134 1 2 0 1 1 S 8,5 9,0 9,1 9,2 9,3 9,4 9,5 9,6 10,0 10,2 10,3 10,4 10,6 11,1 11,3 11,5 12,1 12,2 12,3 12,4 12,5 12,6 T 10,1 11,0 11,2 11,4 12,0; p 1 264 4 2 4 1 6 S 0,1 1,2 2,2 2,3 3,0 3,1 3,2 3,4 4,2 4,3 5,4 6,4 6,6 7,5 7,6 8,0 8,3 8,6 8,8 8,10 9,7 9,8 9,9 10,5 10,7 10,9 10,10 11,7 12,7 12,8 T 8,1 8,2 8,4 8,9 11,6;
|
a 13 2; c 1 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 2,11 B 4,10 12,10 W 2,9 6,11 P 0,10 3,6 6,1 10,11 S 0,4; p 0 134 1 2 0 1 1 S 8,5 9,0 9,1 9,2 9,3 9,4 9,5 9,6 10,0 10,2 10,3 10,4 10,6 11,1 11,3 11,5 12,1 12,2 12,3 12,4 12,5 12,6 T 10,1 11,0 11,2 11,4 12,0; p 1 264 4 2 4 1 6 S 0,1 1,2 2,2 2,3 3,0 3,1 3,2 3,4 4,2 4,3 5,4 6,4 6,6 7,5 7,6 8,0 8,3 8,6 8,8 8,10 9,7 9,8 9,9 10,5 10,7 10,9 10,10 11,7 12,7 12,8 T 8,1 8,2 8,4 8,9 11,6;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 1,8 1,12 2,1 9,0 10,6 12,11 B 0,0 3,7 7,8 8,5 11,0 12,8 W 1,4 3,12 5,11 7,0 8,2 9,9 P 0,5 0,9 3,10 4,2 6,6 10,10 S 3,5 4,0 5,9 6,3 7,12 10,3 11,5 12,2; p 0 74 0 0 0 0 0 S T 0,6 0,7 1,6 4,5 8,1; p 1 66 0 0 0 0 0 S T 5,6 6,1 11,1 12,5;
|
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 0,9 1,12 3,5 6,6 8,2 8,5 B 3,7 4,2 7,0 9,0 10,10 12,11 W 0,5 1,4 2,1 5,9 6,3 11,5 P 1,8 3,12 4,0 5,11 7,12 12,8 S 0,0 3,10 7,8 9,9 10,3 10,6 11,0 12,2; p 0 74 0 0 0 0 0 S T 0,6 0,7 1,6 4,5 8,1; p 1 66 0 0 0 0 0 S T 5,6 6,1 11,1 12,5;
|
||||||
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 1,4 3,10 5,9 9,9 B 0,0 2,1 7,12 W 1,12 3,12 7,8 9,0 P 0,9 6,3 7,0 10,10 12,2 S 0,5 4,0 5,11 8,5 10,3; p 0 121 0 1 1 0 2 S 1,7 1,8 2,4 2,5 2,6 2,7 3,3 3,4 3,5 3,6 3,7 4,4 4,6 4,7 5,5 5,7 5,8 6,5 7,1 7,2 7,3 7,5 7,6 8,0 8,2 8,6 9,1 9,2 10,0 10,1 T 0,6 0,7 1,6 4,5 8,1; p 1 134 2 2 1 1 1 S 4,1 4,2 5,0 5,1 5,2 6,2 6,6 7,7 8,7 8,8 9,7 10,2 10,6 10,7 10,11 11,0 11,2 11,4 11,5 11,6 11,7 11,8 11,12 12,0 12,3 12,4 12,8 12,9 12,10 12,11 T 5,6 6,1 11,1 12,5;
|
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 1,4 3,10 5,9 9,9 B 0,0 2,1 7,12 W 1,12 3,12 7,8 9,0 P 0,9 6,3 7,0 10,10 12,2 S 0,5 4,0 5,11 8,5 10,3; p 0 121 0 1 1 0 2 S 1,7 1,8 2,4 2,5 2,6 2,7 3,3 3,4 3,5 3,6 3,7 4,4 4,6 4,7 5,5 5,7 5,8 6,5 7,1 7,2 7,3 7,5 7,6 8,0 8,2 8,6 9,1 9,2 10,0 10,1 T 0,6 0,7 1,6 4,5 8,1; p 1 134 2 2 1 1 1 S 4,1 4,2 5,0 5,1 5,2 6,2 6,6 7,7 8,7 8,8 9,7 10,2 10,6 10,7 10,11 11,0 11,2 11,4 11,5 11,6 11,7 11,8 11,12 12,0 12,3 12,4 12,8 12,9 12,10 12,11 T 5,6 6,1 11,1 12,5;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 1,4 4,2 10,6 10,10 11,0 11,5 B 3,5 3,10 7,12 8,5 9,9 10,3 W 1,8 5,9 7,8 9,0 12,2 12,8 P 0,0 0,5 1,12 3,12 5,11 12,11 S 0,9 2,1 3,7 4,0 6,3 6,6 7,0 8,2; p 0 105 0 0 0 0 0 S T 2,11 3,11; p 1 84 0 0 0 0 0 S T 2,7 7,2 11,7;
|
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 0,9 2,1 4,2 6,6 7,0 8,5 B 3,10 5,11 8,2 10,6 10,10 12,8 W 1,4 1,8 3,5 3,7 3,12 10,3 P 0,5 4,0 6,3 7,12 9,9 11,5 S 0,0 1,12 5,9 7,8 9,0 11,0 12,2 12,11; p 0 105 0 0 0 0 0 S T 2,11 3,11; p 1 84 0 0 0 0 0 S T 2,7 7,2 11,7;
|
||||||
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 0,0 10,3 12,2 B 4,0 W 2,1 9,0 11,0 P 4,2 12,11 S 7,0 8,5; p 0 162 1 2 1 1 2 S 0,10 1,10 1,11 1,12 2,8 2,9 2,10 3,10 3,12 4,8 4,10 4,11 5,8 5,9 5,10 5,11 5,12 6,9 6,10 6,11 7,9 7,10 7,11 7,12 8,8 8,10 8,11 9,11 9,12 10,10 T 2,11 3,11; p 1 218 2 3 2 3 4 S 0,5 0,6 0,8 0,9 1,4 1,5 1,7 1,8 2,4 2,6 3,5 3,6 3,7 4,4 6,3 6,6 7,3 7,7 7,8 8,2 8,7 9,8 9,9 10,6 10,7 10,8 11,5 11,6 12,7 12,8 T 2,7 7,2 11,7;
|
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 0,0 10,3 12,2 B 4,0 W 2,1 9,0 11,0 P 4,2 12,11 S 7,0 8,5; p 0 162 1 2 1 1 2 S 0,10 1,10 1,11 1,12 2,8 2,9 2,10 3,10 3,12 4,8 4,10 4,11 5,8 5,9 5,10 5,11 5,12 6,9 6,10 6,11 7,9 7,10 7,11 7,12 8,8 8,10 8,11 9,11 9,12 10,10 T 2,11 3,11; p 1 218 2 3 2 3 4 S 0,5 0,6 0,8 0,9 1,4 1,5 1,7 1,8 2,4 2,6 3,5 3,6 3,7 4,4 6,3 6,6 7,3 7,7 7,8 8,2 8,7 9,8 9,9 10,6 10,7 10,8 11,5 11,6 12,7 12,8 T 2,7 7,2 11,7;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 3; c 2 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 1,8 3,10 5,11 10,6 11,0 11,5 B 0,5 2,1 3,5 6,3 7,12 12,2 W 3,7 4,0 9,0 10,10 12,8 12,11 P 0,0 3,12 5,9 8,2 8,5 9,9 S 0,9 1,4 1,12 4,2 6,6 7,0 7,8 10,3; p 0 62 0 0 0 0 0 S T 7,1 7,2 9,1; p 1 30 0 0 0 0 0 S T 1,0 3,8 9,7; p 2 58 0 0 0 0 0 S T 4,5 7,6 10,4 11,4;
|
a 13 3; c 2 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 1,4 3,10 3,12 5,9 7,0 12,2 B 4,2 5,11 7,8 10,3 10,10 11,0 W 0,5 0,9 1,8 6,6 7,12 8,5 P 0,0 1,12 3,5 3,7 4,0 9,9 S 2,1 6,3 8,2 9,0 10,6 11,5 12,8 12,11; p 0 62 0 0 0 0 0 S T 7,1 7,2 9,1; p 1 30 0 0 0 0 0 S T 1,0 3,8 9,7; p 2 58 0 0 0 0 0 S T 4,5 7,6 10,4 11,4;
|
||||||
a 13 3; c 2 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 0,9 B 0,5 W 3,7 7,8 7,12 9,9 10,10 P 5,11 9,0 11,5 12,8 S 1,12 3,12 5,9 12,2 12,11; p 0 100 1 3 0 1 0 S 1,2 1,3 2,2 3,2 3,3 4,1 4,2 4,3 5,0 5,1 5,2 5,3 5,4 6,0 6,1 6,2 6,3 7,0 7,3 8,0 8,1 8,2 9,2 10,0 11,0 T 7,1 7,2 9,1; p 1 88 3 0 0 1 2 S 0,0 0,7 0,8 1,1 1,8 2,0 2,1 2,8 2,9 3,0 3,1 3,9 3,10 4,0 4,7 4,9 4,10 5,10 7,9 8,8 9,6 9,8 10,5 10,6 11,7 T 1,0 3,8 9,7; p 2 100 1 2 1 0 1 S 1,4 1,5 2,3 2,4 2,5 3,4 3,5 3,6 4,4 4,6 5,5 5,6 6,4 6,5 6,6 7,4 8,3 8,5 9,3 9,4 9,5 10,2 10,3 11,3 12,4 T 4,5 7,6 10,4 11,4;
|
a 13 3; c 2 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 0,9 B 0,5 W 3,7 7,8 7,12 9,9 10,10 P 5,11 9,0 11,5 12,8 S 1,12 3,12 5,9 12,2 12,11; p 0 100 1 3 0 1 0 S 1,2 1,3 2,2 3,2 3,3 4,1 4,2 4,3 5,0 5,1 5,2 5,3 5,4 6,0 6,1 6,2 6,3 7,0 7,3 8,0 8,1 8,2 9,2 10,0 11,0 T 7,1 7,2 9,1; p 1 88 3 0 0 1 2 S 0,0 0,7 0,8 1,1 1,8 2,0 2,1 2,8 2,9 3,0 3,1 3,9 3,10 4,0 4,7 4,9 4,10 5,10 7,9 8,8 9,6 9,8 10,5 10,6 11,7 T 1,0 3,8 9,7; p 2 100 1 2 1 0 1 S 1,4 1,5 2,3 2,4 2,5 3,4 3,5 3,6 4,4 4,6 5,5 5,6 6,4 6,5 6,6 7,4 8,3 8,5 9,3 9,4 9,5 10,2 10,3 11,3 12,4 T 4,5 7,6 10,4 11,4;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 3; c 2 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 0,0 2,1 3,7 4,0 10,6 12,2 B 3,12 4,2 5,9 7,0 9,9 11,0 W 3,5 5,11 7,8 7,12 10,3 12,8 P 0,9 1,8 1,12 3,10 6,3 10,10 S 0,5 1,4 6,6 8,2 8,5 9,0 11,5 12,11; p 0 80 0 0 0 0 0 S T 3,8 3,11 9,2; p 1 70 0 0 0 0 0 S T 2,10 5,3 11,7 12,5; p 2 72 0 0 0 0 0 S T 5,0 7,10 8,11;
|
a 13 3; c 2 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 3,5 3,10 6,6 8,5 9,0 12,2 B 0,0 4,2 7,0 7,8 7,12 10,6 W 0,9 1,8 2,1 4,0 12,8 12,11 P 1,12 3,7 3,12 8,2 10,10 11,5 S 0,5 1,4 5,9 5,11 6,3 9,9 10,3 11,0; p 0 80 0 0 0 0 0 S T 3,8 3,11 9,2; p 1 70 0 0 0 0 0 S T 2,10 5,3 11,7 12,5; p 2 72 0 0 0 0 0 S T 5,0 7,10 8,11;
|
||||||
a 13 3; c 2 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C B W 1,4 10,3 11,0 P 0,5 S 1,8 12,2 12,11; p 0 170 4 4 1 2 0 S 2,11 3,5 3,7 3,10 3,12 4,4 4,5 4,6 4,7 4,10 5,8 5,9 5,11 6,3 6,4 6,5 6,6 6,7 7,3 7,4 7,5 7,8 8,2 9,0 9,1 T 3,8 3,11 9,2; p 1 134 1 0 0 3 3 S 0,9 0,11 1,10 1,11 1,12 2,9 3,4 4,2 4,3 5,4 5,5 5,6 8,4 8,5 9,6 9,7 9,8 10,6 10,7 10,8 11,5 11,8 12,6 12,7 12,8 T 2,10 5,3 11,7 12,5; p 2 125 1 2 2 0 2 S 0,0 1,1 2,0 2,1 3,1 4,0 4,9 5,10 5,12 6,0 6,1 6,8 6,9 6,11 7,0 7,9 7,11 7,12 8,7 8,8 8,9 9,9 9,11 9,12 10,10 T 5,0 7,10 8,11;
|
a 13 3; c 2 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C B W 1,4 10,3 11,0 P 0,5 S 1,8 12,2 12,11; p 0 170 4 4 1 2 0 S 2,11 3,5 3,7 3,10 3,12 4,4 4,5 4,6 4,7 4,10 5,8 5,9 5,11 6,3 6,4 6,5 6,6 6,7 7,3 7,4 7,5 7,8 8,2 9,0 9,1 T 3,8 3,11 9,2; p 1 134 1 0 0 3 3 S 0,9 0,11 1,10 1,11 1,12 2,9 3,4 4,2 4,3 5,4 5,5 5,6 8,4 8,5 9,6 9,7 9,8 10,6 10,7 10,8 11,5 11,8 12,6 12,7 12,8 T 2,10 5,3 11,7 12,5; p 2 125 1 2 2 0 2 S 0,0 1,1 2,0 2,1 3,1 4,0 4,9 5,10 5,12 6,0 6,1 6,8 6,9 6,11 7,0 7,9 7,11 7,12 8,7 8,8 8,9 9,9 9,11 9,12 10,10 T 5,0 7,10 8,11;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 4; c 3 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 0,0 1,8 3,7 4,0 5,9 11,5 B 0,5 6,3 7,0 8,5 10,3 10,10 W 0,9 3,12 9,9 10,6 11,0 12,11 P 2,1 3,10 6,6 7,12 8,2 12,8 S 1,4 1,12 3,5 4,2 5,11 7,8 9,0 12,2; p 0 45 0 0 0 0 0 S T 6,8 7,10 8,11; p 1 31 0 0 0 0 0 S T 2,6 5,5 9,8 12,7; p 2 28 0 0 0 0 0 S T 0,7 8,4; p 3 38 0 0 0 0 0 S T 10,4 11,1 12,1;
|
a 13 4; c 3 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 1,4 3,12 5,9 8,2 8,5 11,0 B 0,5 3,5 3,7 7,8 7,12 11,5 W 4,0 4,2 6,6 9,9 10,6 10,10 P 1,12 2,1 3,10 6,3 10,3 12,2 S 0,0 0,9 1,8 5,11 7,0 9,0 12,8 12,11; p 0 45 0 0 0 0 0 S T 6,8 7,10 8,11; p 1 31 0 0 0 0 0 S T 2,6 5,5 9,8 12,7; p 2 28 0 0 0 0 0 S T 0,7 8,4; p 3 38 0 0 0 0 0 S T 10,4 11,1 12,1;
|
||||||
a 13 4; c 3 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 7,0 12,2 B 1,4 2,1 3,5 5,9 12,8 W 4,2 P 3,7 3,12 10,6 12,11 S 0,0 1,12 4,0 11,0; p 0 87 1 0 1 1 2 S 3,8 3,9 3,10 3,11 4,9 4,10 5,11 5,12 6,7 6,10 6,11 7,8 7,9 7,11 7,12 8,10 9,11 10,10 11,11 11,12 T 6,8 7,10 8,11; p 1 70 1 0 1 0 1 S 2,5 3,4 4,4 4,6 5,3 5,4 5,6 6,4 6,6 8,7 9,9 10,8 10,9 11,5 11,6 11,7 11,8 11,10 12,5 12,6 T 2,6 5,5 9,8 12,7; p 2 49 0 1 2 1 0 S 0,4 0,5 0,8 0,9 0,10 1,6 1,7 1,8 1,9 1,10 2,7 2,8 2,9 2,10 6,5 7,5 7,6 7,7 8,5 8,6 T 0,7 8,4; p 3 78 2 0 1 0 1 S 6,2 6,3 7,2 7,4 8,0 8,2 8,3 9,0 9,2 9,4 9,5 10,0 10,1 10,2 10,3 11,2 11,3 11,4 12,3 12,4 T 10,4 11,1 12,1;
|
a 13 4; c 3 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 7,0 12,2 B 1,4 2,1 3,5 5,9 12,8 W 4,2 P 3,7 3,12 10,6 12,11 S 0,0 1,12 4,0 11,0; p 0 87 1 0 1 1 2 S 3,8 3,9 3,10 3,11 4,9 4,10 5,11 5,12 6,7 6,10 6,11 7,8 7,9 7,11 7,12 8,10 9,11 10,10 11,11 11,12 T 6,8 7,10 8,11; p 1 70 1 0 1 0 1 S 2,5 3,4 4,4 4,6 5,3 5,4 5,6 6,4 6,6 8,7 9,9 10,8 10,9 11,5 11,6 11,7 11,8 11,10 12,5 12,6 T 2,6 5,5 9,8 12,7; p 2 49 0 1 2 1 0 S 0,4 0,5 0,8 0,9 0,10 1,6 1,7 1,8 1,9 1,10 2,7 2,8 2,9 2,10 6,5 7,5 7,6 7,7 8,5 8,6 T 0,7 8,4; p 3 78 2 0 1 0 1 S 6,2 6,3 7,2 7,4 8,0 8,2 8,3 9,0 9,2 9,4 9,5 10,0 10,1 10,2 10,3 11,2 11,3 11,4 12,3 12,4 T 10,4 11,1 12,1;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 4; c 3 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 0,0 0,5 3,12 4,0 6,3 8,5 B 0,9 1,12 2,1 3,10 7,0 9,0 W 3,5 5,9 7,8 10,6 11,5 12,11 P 3,7 4,2 7,12 9,9 10,3 11,0 S 1,4 1,8 5,11 6,6 8,2 10,10 12,2 12,8; p 0 63 0 0 0 0 0 S T 2,0 2,8 8,0 8,1; p 1 42 0 0 0 0 0 S T 3,8 5,8 9,2 11,3; p 2 67 0 0 0 0 0 S T 10,4 10,8 11,7 12,5; p 3 48 0 0 0 0 0 S T 1,7 1,10 3,4 4,3;
|
a 13 4; c 3 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 2,1 5,9 7,0 7,12 12,8 12,11 B 0,5 0,9 3,10 4,2 7,8 11,5 W 0,0 3,7 4,0 5,11 6,6 10,3 P 3,5 3,12 6,3 8,2 8,5 12,2 S 1,4 1,8 1,12 9,0 9,9 10,6 10,10 11,0; p 0 63 0 0 0 0 0 S T 2,0 2,8 8,0 8,1; p 1 42 0 0 0 0 0 S T 3,8 5,8 9,2 11,3; p 2 67 0 0 0 0 0 S T 10,4 10,8 11,7 12,5; p 3 48 0 0 0 0 0 S T 1,7 1,10 3,4 4,3;
|
||||||
a 13 4; c 3 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 2,1 7,12 12,11 B 11,0 11,5 W 3,12 P S; p 0 116 0 1 0 1 4 S 0,0 1,0 1,1 2,10 2,11 3,0 3,1 3,9 3,10 3,11 4,0 4,7 4,8 4,11 5,7 6,6 6,7 7,0 7,1 9,0 T 2,0 2,8 8,0 8,1; p 1 99 1 1 2 3 1 S 3,7 4,6 5,9 5,10 5,11 6,8 6,9 7,2 7,8 7,9 8,2 8,4 8,8 9,4 9,9 10,1 10,2 10,3 12,1 12,2 T 3,8 5,8 9,2 11,3; p 2 125 0 0 2 0 3 S 4,4 5,5 6,3 6,4 6,5 7,4 7,5 8,5 8,6 9,5 9,7 10,6 10,7 10,9 10,10 11,4 11,6 11,8 12,7 12,8 T 10,4 10,8 11,7 12,5; p 3 104 2 2 1 2 0 S 0,4 0,5 0,7 0,8 0,9 1,4 1,8 1,9 1,11 1,12 2,4 2,5 2,6 2,7 3,3 3,5 4,2 5,1 5,2 5,4 T 1,7 1,10 3,4 4,3;
|
a 13 4; c 3 S; i 6 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 1,4 2,0 2,1; i 6 0,5 0,6 0,7 1,6 1,7 1,8 2,6 2,7 2,8 3,7 3,8; i 6 7,12 8,11 9,11 9,12 10,10 10,11 11,10 11,11 11,12 12,10 12,11; i 8 0,9 0,10 0,11 1,10 1,11 1,12 2,10 2,11 3,10 3,11 3,12 4,10 4,11 5,11 5,12; i 8 4,0 5,0 5,1 6,0 6,1 7,0 7,1 7,2 8,0 8,1 8,2 9,0 9,1 9,2; i 8 10,3 10,4 11,0 11,1 11,2 11,3 11,4 11,5 12,0 12,1 12,2 12,3 12,4 12,5; i 10 3,3 3,4 3,5 4,2 4,3 4,4 4,5 5,3 5,4 5,5 5,6 6,3 6,4 6,5 6,6 7,4 7,5 7,6 8,4 8,5; i 10 5,8 5,9 6,8 6,9 7,8 7,9 7,10 8,7 8,8 8,9 9,7 9,8 9,9 10,6 10,7 10,8 11,7 11,8 12,7 12,8; s 0,0 0,5 0,9 1,4 1,8 1,12 2,1 3,5 3,7 3,10 3,12 4,0 4,2 5,9 5,11 6,3 6,6 7,0 7,8 7,12 8,2 8,5 9,0 9,9 10,3 10,6 10,10 11,0 11,5 12,2 12,8 12,11; r C 2,1 7,12 12,11 B 11,0 11,5 W 3,12 P S; p 0 116 0 1 0 1 4 S 0,0 1,0 1,1 2,10 2,11 3,0 3,1 3,9 3,10 3,11 4,0 4,7 4,8 4,11 5,7 6,6 6,7 7,0 7,1 9,0 T 2,0 2,8 8,0 8,1; p 1 99 1 1 2 3 1 S 3,7 4,6 5,9 5,10 5,11 6,8 6,9 7,2 7,8 7,9 8,2 8,4 8,8 9,4 9,9 10,1 10,2 10,3 12,1 12,2 T 3,8 5,8 9,2 11,3; p 2 125 0 0 2 0 3 S 4,4 5,5 6,3 6,4 6,5 7,4 7,5 8,5 8,6 9,5 9,7 10,6 10,7 10,9 10,10 11,4 11,6 11,8 12,7 12,8 T 10,4 10,8 11,7 12,5; p 3 104 2 2 1 2 0 S 0,4 0,5 0,7 0,8 0,9 1,4 1,8 1,9 1,11 1,12 2,4 2,5 2,6 2,7 3,3 3,5 4,2 5,1 5,2 5,4 T 1,7 1,10 3,4 4,3;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 0,3 2,2 5,0 6,6 8,5 10,6 B 1,0 2,9 4,5 5,12 8,11 11,12 W 0,8 1,12 6,2 6,9 8,6 10,8 P 2,4 2,7 8,0 9,10 10,3 12,4 S 4,2 4,6 4,9 6,5 9,2 10,5 11,0 12,7; p 0 64 0 0 0 0 0 S T 3,3 5,3; p 1 58 0 0 0 0 0 S T 0,2 2,0 6,11;
|
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 2,2 2,7 6,6 8,0 8,5 8,11 B 1,0 2,9 4,2 4,6 4,9 10,5 W 2,4 4,5 8,6 10,3 10,6 10,8 P 0,3 5,12 6,5 9,10 11,0 11,12 S 0,8 1,12 5,0 6,2 6,9 9,2 12,4 12,7; p 0 64 0 0 0 0 0 S T 3,3 5,3; p 1 58 0 0 0 0 0 S T 0,2 2,0 6,11;
|
||||||
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 4,9 6,5 8,0 B 4,6 10,6 11,12 12,4 W 0,8 4,5 9,2 P 1,12 2,7 5,12 8,6 10,8 S 2,9 6,6 10,3 11,0 12,7; p 0 144 0 2 2 0 1 S 0,4 0,5 0,6 1,3 1,5 2,3 2,4 3,2 3,4 3,5 4,1 4,2 4,3 4,4 5,4 6,2 6,3 7,3 7,4 7,5 8,3 8,4 8,5 9,4 9,5 10,5 11,5 11,6 11,7 12,6 T 3,3 5,3; p 1 121 3 0 1 1 2 S 0,0 0,1 0,3 1,0 1,1 1,2 1,4 2,1 2,2 3,0 3,1 4,0 5,0 5,1 5,8 5,9 5,10 6,9 6,10 7,9 7,10 7,11 7,12 8,8 8,11 9,10 9,11 10,9 10,10 11,9 T 0,2 2,0 6,11;
|
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 4,9 6,5 8,0 B 4,6 10,6 11,12 12,4 W 0,8 4,5 9,2 P 1,12 2,7 5,12 8,6 10,8 S 2,9 6,6 10,3 11,0 12,7; p 0 144 0 2 2 0 1 S 0,4 0,5 0,6 1,3 1,5 2,3 2,4 3,2 3,4 3,5 4,1 4,2 4,3 4,4 5,4 6,2 6,3 7,3 7,4 7,5 8,3 8,4 8,5 9,4 9,5 10,5 11,5 11,6 11,7 12,6 T 3,3 5,3; p 1 121 3 0 1 1 2 S 0,0 0,1 0,3 1,0 1,1 1,2 1,4 2,1 2,2 3,0 3,1 4,0 5,0 5,1 5,8 5,9 5,10 6,9 6,10 7,9 7,10 7,11 7,12 8,8 8,11 9,10 9,11 10,9 10,10 11,9 T 0,2 2,0 6,11;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 0,8 2,2 4,6 8,0 9,10 10,5 B 1,0 5,12 9,2 10,3 10,8 11,12 W 2,9 4,2 5,0 6,5 8,6 12,4 P 2,7 6,2 6,6 8,5 11,0 12,7 S 0,3 1,12 2,4 4,5 4,9 6,9 8,11 10,6; p 0 100 0 0 0 0 0 S T 4,7 5,2 7,7 12,8; p 1 120 0 0 0 0 0 S T 3,3 4,0 4,4 5,3;
|
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 0,3 2,7 6,6 8,5 8,6 10,5 B 4,6 6,2 6,9 8,11 12,4 12,7 W 2,9 4,9 9,10 10,6 10,8 11,0 P 0,8 1,12 2,2 4,2 5,0 5,12 S 1,0 2,4 4,5 6,5 8,0 9,2 10,3 11,12; p 0 100 0 0 0 0 0 S T 4,7 5,2 7,7 12,8; p 1 120 0 0 0 0 0 S T 3,3 4,0 4,4 5,3;
|
||||||
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 9,10 11,0 B W 1,12 5,12 P 4,9 8,11 10,3 S 0,8 2,9 11,12 12,4; p 0 242 1 3 3 2 3 S 2,5 2,6 2,7 3,2 3,7 4,1 4,6 5,6 5,7 5,8 6,2 6,5 6,6 6,8 6,9 7,2 7,3 7,5 7,9 8,5 8,6 8,7 9,7 10,5 10,6 10,7 10,8 11,8 11,9 12,7 T 4,7 5,2 7,7 12,8; p 1 189 3 3 1 1 1 S 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,2 2,3 2,4 3,0 3,1 3,4 3,5 3,6 4,2 4,5 5,0 5,1 5,4 5,5 6,0 6,3 6,4 7,0 7,4 8,0 8,1 8,4 9,2 T 3,3 4,0 4,4 5,3;
|
a 13 2; c 1 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 9,10 11,0 B W 1,12 5,12 P 4,9 8,11 10,3 S 0,8 2,9 11,12 12,4; p 0 242 1 3 3 2 3 S 2,5 2,6 2,7 3,2 3,7 4,1 4,6 5,6 5,7 5,8 6,2 6,5 6,6 6,8 6,9 7,2 7,3 7,5 7,9 8,5 8,6 8,7 9,7 10,5 10,6 10,7 10,8 11,8 11,9 12,7 T 4,7 5,2 7,7 12,8; p 1 189 3 3 1 1 1 S 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,2 2,3 2,4 3,0 3,1 3,4 3,5 3,6 4,2 4,5 5,0 5,1 5,4 5,5 6,0 6,3 6,4 7,0 7,4 8,0 8,1 8,4 9,2 T 3,3 4,0 4,4 5,3;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 3; c 2 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 1,0 2,2 4,6 10,5 12,4 12,7 B 0,3 4,5 6,5 6,9 9,2 10,6 W 4,2 5,0 8,0 8,5 8,11 10,3 P 1,12 2,7 4,9 6,2 6,6 11,0 S 0,8 2,4 2,9 5,12 8,6 9,10 10,8 11,12; p 0 47 0 0 0 0 0 S T 0,11 2,11 3,10 6,0; p 1 46 0 0 0 0 0 S T 2,6 4,4 5,3 10,7; p 2 35 0 0 0 0 0 S T 0,2 4,0 5,2 7,5 10,0;
|
a 13 3; c 2 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 0,8 5,0 8,5 9,2 9,10 10,5 B 5,12 6,5 6,9 8,6 10,3 10,8 W 2,2 2,4 2,9 4,2 10,6 11,0 P 1,12 4,9 8,11 11,12 12,4 12,7 S 0,3 1,0 2,7 4,5 4,6 6,2 6,6 8,0; p 0 47 0 0 0 0 0 S T 0,11 2,11 3,10 6,0; p 1 46 0 0 0 0 0 S T 2,6 4,4 5,3 10,7; p 2 35 0 0 0 0 0 S T 0,2 4,0 5,2 7,5 10,0;
|
||||||
a 13 3; c 2 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 2,2 8,11 9,2 10,8 B 2,9 6,6 10,3 10,6 12,7 W 0,8 P 10,5 12,4 S 1,0 4,5 11,12; p 0 107 0 0 3 2 1 S 0,10 1,8 1,10 1,11 1,12 2,7 2,8 3,7 3,8 3,11 3,12 4,8 4,9 5,1 5,9 5,10 5,12 6,9 6,10 6,11 7,10 7,12 8,9 9,10 10,10 T 0,11 2,11 3,10 6,0; p 1 115 1 0 2 0 1 S 0,5 1,6 1,7 2,4 3,5 3,6 4,6 4,7 5,4 5,6 5,7 6,3 6,4 6,5 7,4 7,8 7,9 8,6 8,8 9,7 9,8 9,9 11,7 11,8 12,8 T 2,6 4,4 5,3 10,7; p 2 81 1 1 0 2 3 S 0,3 1,2 1,3 1,4 2,1 3,2 3,3 3,4 4,1 4,2 5,0 6,1 6,2 7,0 7,1 7,2 7,3 8,0 8,1 8,2 8,5 9,0 9,1 9,3 11,0 T 0,2 4,0 5,2 7,5 10,0;
|
a 13 3; c 2 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 2,2 8,11 9,2 10,8 B 2,9 6,6 10,3 10,6 12,7 W 0,8 P 10,5 12,4 S 1,0 4,5 11,12; p 0 107 0 0 3 2 1 S 0,10 1,8 1,10 1,11 1,12 2,7 2,8 3,7 3,8 3,11 3,12 4,8 4,9 5,1 5,9 5,10 5,12 6,9 6,10 6,11 7,10 7,12 8,9 9,10 10,10 T 0,11 2,11 3,10 6,0; p 1 115 1 0 2 0 1 S 0,5 1,6 1,7 2,4 3,5 3,6 4,6 4,7 5,4 5,6 5,7 6,3 6,4 6,5 7,4 7,8 7,9 8,6 8,8 9,7 9,8 9,9 11,7 11,8 12,8 T 2,6 4,4 5,3 10,7; p 2 81 1 1 0 2 3 S 0,3 1,2 1,3 1,4 2,1 3,2 3,3 3,4 4,1 4,2 5,0 6,1 6,2 7,0 7,1 7,2 7,3 8,0 8,1 8,2 8,5 9,0 9,1 9,3 11,0 T 0,2 4,0 5,2 7,5 10,0;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 3; c 2 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 0,8 1,0 2,2 6,2 6,9 8,0 B 1,12 4,6 8,11 9,2 10,3 12,7 W 4,9 6,5 8,5 8,6 10,6 11,12 P 2,4 4,2 4,5 10,8 11,0 12,4 S 0,3 2,7 2,9 5,0 5,12 6,6 9,10 10,5; p 0 78 0 0 0 0 0 S T 0,6 2,5; p 1 74 0 0 0 0 0 S T 3,10 4,7 7,7; p 2 53 0 0 0 0 0 S T 4,11 7,5 10,4;
|
a 13 3; c 2 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 0,3 4,2 6,9 8,0 9,2 12,7 B 1,0 1,12 2,4 4,9 8,6 11,0 W 2,2 5,12 8,5 10,3 10,6 11,12 P 0,8 2,7 2,9 5,0 10,5 10,8 S 4,5 4,6 6,2 6,5 6,6 8,11 9,10 12,4; p 0 78 0 0 0 0 0 S T 0,6 2,5; p 1 74 0 0 0 0 0 S T 3,10 4,7 7,7; p 2 53 0 0 0 0 0 S T 4,11 7,5 10,4;
|
||||||
a 13 3; c 2 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C B 10,8 W 12,4 P 11,0 11,12 S 9,10 12,7; p 0 133 2 1 1 1 2 S 0,3 0,4 0,5 0,7 0,8 0,9 0,10 1,0 1,1 1,4 1,5 1,6 1,7 1,8 2,1 2,2 2,3 2,4 2,6 2,7 3,3 3,4 3,6 3,7 4,6 T 0,6 2,5; p 1 149 4 1 2 0 1 S 1,12 2,9 2,11 3,0 3,8 3,9 3,11 4,0 4,1 4,2 4,3 4,4 4,5 4,9 5,0 5,2 5,4 5,6 5,7 5,9 6,1 6,6 6,9 7,1 7,6 T 3,10 4,7 7,7; p 2 143 0 3 2 3 3 S 3,12 5,3 5,5 5,12 6,2 6,3 6,4 6,5 6,11 7,2 7,3 7,11 7,12 8,0 8,1 8,5 8,6 8,11 9,2 9,4 9,5 9,6 10,3 10,5 10,6 T 4,11 7,5 10,4;
|
a 13 3; c 2 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C B 10,8 W 12,4 P 11,0 11,12 S 9,10 12,7; p 0 133 2 1 1 1 2 S 0,3 0,4 0,5 0,7 0,8 0,9 0,10 1,0 1,1 1,4 1,5 1,6 1,7 1,8 2,1 2,2 2,3 2,4 2,6 2,7 3,3 3,4 3,6 3,7 4,6 T 0,6 2,5; p 1 149 4 1 2 0 1 S 1,12 2,9 2,11 3,0 3,8 3,9 3,11 4,0 4,1 4,2 4,3 4,4 4,5 4,9 5,0 5,2 5,4 5,6 5,7 5,9 6,1 6,6 6,9 7,1 7,6 T 3,10 4,7 7,7; p 2 143 0 3 2 3 3 S 3,12 5,3 5,5 5,12 6,2 6,3 6,4 6,5 6,11 7,2 7,3 7,11 7,12 8,0 8,1 8,5 8,6 8,11 9,2 9,4 9,5 9,6 10,3 10,5 10,6 T 4,11 7,5 10,4;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 4; c 3 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 1,0 1,12 6,5 9,2 9,10 10,3 B 2,4 5,12 6,2 6,9 11,12 12,4 W 0,8 2,2 4,2 6,6 8,0 12,7 P 0,3 2,9 4,5 8,11 10,5 10,6 S 2,7 4,6 4,9 5,0 8,5 8,6 10,8 11,0; p 0 26 0 0 0 0 0 S T 4,7 7,2 12,0; p 1 39 0 0 0 0 0 S T 2,5 4,4 10,7; p 2 28 0 0 0 0 0 S T 0,9 3,10 9,12 12,2; p 3 63 0 0 0 0 0 S T 3,3 3,9 12,5;
|
a 13 4; c 3 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 1,0 2,4 2,9 8,0 8,11 10,8 B 2,7 4,2 6,5 8,5 10,6 11,12 W 2,2 6,2 6,6 8,6 10,3 11,0 P 0,8 4,5 4,6 5,0 5,12 9,2 S 0,3 1,12 4,9 6,9 9,10 10,5 12,4 12,7; p 0 26 0 0 0 0 0 S T 4,7 7,2 12,0; p 1 39 0 0 0 0 0 S T 2,5 4,4 10,7; p 2 28 0 0 0 0 0 S T 0,9 3,10 9,12 12,2; p 3 63 0 0 0 0 0 S T 3,3 3,9 12,5;
|
||||||
a 13 4; c 3 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 9,2 10,5 11,12 12,4 12,7 B 8,0 W 10,8 P 0,3 1,0 2,7 5,0 11,0 S 1,12 5,12 8,5 9,10; p 0 54 0 1 2 0 1 S 4,6 4,8 5,7 5,9 6,1 6,2 6,5 6,8 6,9 7,3 7,4 7,5 8,1 8,2 9,1 10,0 10,1 11,1 11,2 12,1 T 4,7 7,2 12,0; p 1 103 0 2 2 0 1 S 2,4 3,6 3,7 4,5 5,4 5,5 5,6 6,3 6,4 6,6 7,6 7,7 8,6 8,7 8,8 9,6 10,6 11,6 11,8 12,8 T 2,5 4,4 10,7; p 2 50 1 1 0 0 0 S 0,5 0,6 0,7 0,8 1,5 1,9 1,10 1,11 2,10 3,11 4,10 5,10 5,11 6,11 7,10 7,11 7,12 8,9 8,10 8,11 T 0,9 3,10 9,12 12,2; p 3 105 0 1 1 1 2 S 0,1 1,2 1,3 1,8 2,0 2,1 2,2 2,8 2,9 3,1 3,2 4,2 4,3 4,9 5,3 10,3 10,4 11,4 11,5 12,3 T 3,3 3,9 12,5;
|
a 13 4; c 3 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 9,2 10,5 11,12 12,4 12,7 B 8,0 W 10,8 P 0,3 1,0 2,7 5,0 11,0 S 1,12 5,12 8,5 9,10; p 0 54 0 1 2 0 1 S 4,6 4,8 5,7 5,9 6,1 6,2 6,5 6,8 6,9 7,3 7,4 7,5 8,1 8,2 9,1 10,0 10,1 11,1 11,2 12,1 T 4,7 7,2 12,0; p 1 103 0 2 2 0 1 S 2,4 3,6 3,7 4,5 5,4 5,5 5,6 6,3 6,4 6,6 7,6 7,7 8,6 8,7 8,8 9,6 10,6 11,6 11,8 12,8 T 2,5 4,4 10,7; p 2 50 1 1 0 0 0 S 0,5 0,6 0,7 0,8 1,5 1,9 1,10 1,11 2,10 3,11 4,10 5,10 5,11 6,11 7,10 7,11 7,12 8,9 8,10 8,11 T 0,9 3,10 9,12 12,2; p 3 105 0 1 1 1 2 S 0,1 1,2 1,3 1,8 2,0 2,1 2,2 2,8 2,9 3,1 3,2 4,2 4,3 4,9 5,3 10,3 10,4 11,4 11,5 12,3 T 3,3 3,9 12,5;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 4; c 3 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 4,5 5,12 6,2 9,2 10,5 10,8 B 0,3 1,12 2,9 5,0 8,0 8,6 W 1,0 2,2 4,6 6,5 10,3 12,7 P 2,7 4,2 4,9 8,11 9,10 11,0 S 0,8 2,4 6,6 6,9 8,5 10,6 11,12 12,4; p 0 32 0 0 0 0 0 S T 5,2 7,0 7,2 9,0; p 1 27 0 0 0 0 0 S T 0,9 2,5 2,11; p 2 56 0 0 0 0 0 S T 3,3 7,5; p 3 94 0 0 0 0 0 S T 5,9 10,4;
|
a 13 4; c 3 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 0,8 1,0 4,5 8,11 10,5 11,12 B 2,4 6,2 8,0 8,6 10,8 11,0 W 1,12 4,2 4,6 6,5 8,5 9,2 P 0,3 2,2 4,9 6,6 9,10 10,3 S 2,7 2,9 5,0 5,12 6,9 10,6 12,4 12,7; p 0 32 0 0 0 0 0 S T 5,2 7,0 7,2 9,0; p 1 27 0 0 0 0 0 S T 0,9 2,5 2,11; p 2 56 0 0 0 0 0 S T 3,3 7,5; p 3 94 0 0 0 0 0 S T 5,9 10,4;
|
||||||
a 13 4; c 3 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 11,12 B W 0,3 P S 1,0 12,7; p 0 73 0 2 2 1 1 S 5,0 5,1 5,3 6,1 6,2 7,1 7,3 8,0 8,1 8,3 8,4 9,2 9,3 9,4 10,2 10,3 11,0 11,1 11,2 12,2 T 5,2 7,0 7,2 9,0; p 1 72 2 0 0 2 2 S 0,7 0,8 1,6 1,8 1,9 1,11 1,12 2,6 2,7 2,9 3,5 3,8 3,11 3,12 4,11 5,12 6,11 7,11 7,12 8,11 T 0,9 2,5 2,11; p 2 127 2 2 1 1 2 S 0,5 1,5 2,2 2,4 3,1 3,2 3,4 4,0 4,2 4,4 4,5 4,6 5,6 6,5 6,6 7,6 8,6 8,7 9,6 9,7 T 3,3 7,5; p 3 172 1 2 2 2 1 S 3,7 4,7 4,8 4,9 5,7 6,8 6,9 6,10 7,9 8,5 8,9 9,5 9,10 10,5 10,6 10,7 10,8 10,9 11,5 12,4 T 5,9 10,4;
|
a 13 4; c 3 S; i 6 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0,10 0,11 1,0 1,12 2,0 2,11 3,0 3,12 4,0 4,11 5,0 5,12 6,0 6,11 7,0 7,12 8,0 8,11 9,0 9,12 10,0 10,11 11,0 11,12 12,0 12,1 12,2 12,3 12,4 12,5 12,6 12,7 12,8 12,9 12,10 12,11; i 6 2,4 2,5 2,6 2,7; i 9 4,4 4,5 4,6 4,7; i 9 6,5 6,6 7,5 7,7 8,5 8,6; i 12 2,2 3,2 3,3 4,2 5,2 5,3 6,2 7,2 7,3; i 12 2,9 3,9 3,10 4,9 5,9 5,10 6,9 7,9 7,10; i 12 9,2 9,10 10,2 10,3 10,4 10,5 10,6 10,7 10,8 10,9; s 0,3 0,8 1,0 1,12 2,2 2,4 2,7 2,9 4,2 4,5 4,6 4,9 5,0 5,12 6,2 6,5 6,6 6,9 8,0 8,5 8,6 8,11 9,2 9,10 10,3 10,5 10,6 10,8 11,0 11,12 12,4 12,7; r C 11,12 B W 0,3 P S 1,0 12,7; p 0 73 0 2 2 1 1 S 5,0 5,1 5,3 6,1 6,2 7,1 7,3 8,0 8,1 8,3 8,4 9,2 9,3 9,4 10,2 10,3 11,0 11,1 11,2 12,2 T 5,2 7,0 7,2 9,0; p 1 72 2 0 0 2 2 S 0,7 0,8 1,6 1,8 1,9 1,11 1,12 2,6 2,7 2,9 3,5 3,8 3,11 3,12 4,11 5,12 6,11 7,11 7,12 8,11 T 0,9 2,5 2,11; p 2 127 2 2 1 1 2 S 0,5 1,5 2,2 2,4 3,1 3,2 3,4 4,0 4,2 4,4 4,5 4,6 5,6 6,5 6,6 7,6 8,6 8,7 9,6 9,7 T 3,3 7,5; p 3 172 1 2 2 2 1 S 3,7 4,7 4,8 4,9 5,7 6,8 6,9 6,10 7,9 8,5 8,9 9,5 9,10 10,5 10,6 10,7 10,8 10,9 11,5 12,4 T 5,9 10,4;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 7 2; c 0 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 0,2 2,0 2,2 4,2 5,6 6,3 B 0,3 3,0 3,3 4,1 5,1 6,1 W 0,1 1,2 2,3 4,0 5,2 6,0 P 1,5 1,6 2,1 3,1 3,5 5,5 S 0,0 1,1 1,3 3,2 3,6 4,3 5,3 6,2; p 0 91 0 0 0 0 0 S T; p 1 86 0 0 0 0 0 S T 0,5 4,5;
|
a 7 2; c 0 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 0,1 1,5 4,0 4,3 5,5 6,3 B 1,2 3,3 3,6 5,3 6,0 6,1 W 0,2 1,6 2,1 4,2 5,2 6,2 P 0,0 1,3 2,2 2,3 3,5 4,1 S 0,3 1,1 2,0 3,0 3,1 3,2 5,1 5,6; p 0 91 0 0 0 0 0 S T; p 1 86 0 0 0 0 0 S T 0,5 4,5;
|
||||||
a 7 2; c 1 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 4,0 5,2 B 3,2 5,3 6,1 W 0,0 2,2 5,1 P 4,3 S 1,1 6,0; p 0 91 0 0 0 0 0 S T; p 1 214 4 3 3 5 6 S 0,1 0,2 0,3 0,4 1,2 1,3 1,4 1,5 1,6 2,0 2,1 2,3 2,4 2,5 3,0 3,1 3,3 3,4 3,5 3,6 4,1 4,2 4,4 5,4 5,5 5,6 6,2 6,3 6,4 6,5 T 0,5 4,5;
|
a 7 2; c 1 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 4,0 5,2 B 3,2 5,3 6,1 W 0,0 2,2 5,1 P 4,3 S 1,1 6,0; p 0 91 0 0 0 0 0 S T; p 1 214 4 3 3 5 6 S 0,1 0,2 0,3 0,4 1,2 1,3 1,4 1,5 1,6 2,0 2,1 2,3 2,4 2,5 3,0 3,1 3,3 3,4 3,5 3,6 4,1 4,2 4,4 5,4 5,5 5,6 6,2 6,3 6,4 6,5 T 0,5 4,5;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 7 2; c 1 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 0,3 1,3 2,0 2,2 3,6 5,3 B 0,0 0,1 1,6 3,3 5,6 6,1 W 0,2 1,5 3,2 4,2 5,1 6,2 P 3,0 3,5 4,0 4,1 5,2 5,5 S 1,1 1,2 2,1 2,3 3,1 4,3 6,0 6,3; p 0 53 0 0 0 0 0 S T 0,5 4,5; p 1 128 0 0 0 0 0 S T 1,0;
|
a 7 2; c 1 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 1,5 1,6 3,0 4,1 4,3 5,6 B 1,1 1,3 3,3 3,6 5,3 6,1 W 0,1 0,2 1,2 3,1 3,2 5,1 P 0,0 0,3 2,0 2,2 5,2 6,3 S 2,1 2,3 3,5 4,0 4,2 5,5 6,0 6,2; p 0 53 0 0 0 0 0 S T 0,5 4,5; p 1 128 0 0 0 0 0 S T 1,0;
|
||||||
a 7 2; c 1 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 0,2 1,3 2,1 3,0 3,3 6,2 B 0,1 1,1 2,2 5,2 5,3 5,6 W 0,0 3,1 3,5 5,1 5,5 6,3 P 0,3 1,2 1,5 2,0 2,3 3,6 S 1,6 3,2 4,0 4,1 4,2 4,3 6,0 6,1; p 0 120 1 1 2 3 3 S 0,4 1,5 1,6 2,2 2,3 2,5 3,3 3,4 3,6 4,3 4,4 5,4 5,5 5,6 6,3 6,4 6,5 T 0,5 4,5; p 1 242 5 5 4 3 5 S 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,4 2,0 2,1 2,4 3,0 3,1 3,2 3,5 4,0 4,1 4,2 5,0 5,1 5,2 5,3 6,0 6,1 6,2 T 1,0;
|
a 7 2; c 1 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C B W P S; p 0 120 1 1 2 3 3 S 0,4 1,5 1,6 2,2 2,3 2,5 3,3 3,4 3,6 4,3 4,4 5,4 5,5 5,6 6,3 6,4 6,5 T 0,5 4,5; p 1 242 5 5 4 3 5 S 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,4 2,0 2,1 2,4 3,0 3,1 3,2 3,5 4,0 4,1 4,2 5,0 5,1 5,2 5,3 6,0 6,1 6,2 T 1,0;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 7 3; c 0 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 0,1 0,3 1,5 2,2 3,6 5,5 B 1,6 2,0 3,1 4,0 6,0 6,1 W 0,2 1,2 1,3 3,2 3,5 4,2 P 3,0 3,3 4,1 4,3 5,1 6,2 S 0,0 1,1 2,1 2,3 5,2 5,3 5,6 6,3; p 0 60 0 0 0 0 0 S T; p 1 37 0 0 0 0 0 S T 6,5; p 2 74 0 0 0 0 0 S T 0,5 4,5;
|
a 7 3; c 0 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 0,3 1,2 2,0 4,1 5,1 6,2 B 0,0 1,3 4,0 4,2 5,2 5,6 W 2,2 2,3 3,0 3,3 3,5 6,1 P 1,1 1,5 2,1 5,3 5,5 6,3 S 0,1 0,2 1,6 3,1 3,2 3,6 4,3 6,0; p 0 60 0 0 0 0 0 S T; p 1 37 0 0 0 0 0 S T 6,5; p 2 74 0 0 0 0 0 S T 0,5 4,5;
|
||||||
a 7 3; c 2 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 0,3 1,2 1,5 2,0 4,0 4,1 B 2,1 2,2 2,3 3,3 4,3 6,3 W 1,3 3,0 3,1 3,2 5,2 5,5 P 0,1 3,5 3,6 4,2 5,6 6,0 S 0,0 0,2 1,1 1,6 5,1 5,3 6,1 6,2; p 0 60 0 0 0 0 0 S T; p 1 136 4 2 3 4 5 S 0,0 0,1 0,2 1,0 1,1 1,3 2,0 3,0 3,1 4,0 4,1 5,0 5,1 5,2 5,3 5,6 6,0 6,1 6,2 6,3 6,4 T 6,5; p 2 166 2 4 3 2 3 S 0,3 0,4 1,2 1,4 1,5 1,6 2,1 2,2 2,3 2,4 2,5 3,2 3,3 3,4 3,5 3,6 4,2 4,3 4,4 5,4 5,5 T 0,5 4,5;
|
a 7 3; c 2 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C B W P S; p 0 60 0 0 0 0 0 S T; p 1 136 4 2 3 4 5 S 0,0 0,1 0,2 1,0 1,1 1,3 2,0 3,0 3,1 4,0 4,1 5,0 5,1 5,2 5,3 5,6 6,0 6,1 6,2 6,3 6,4 T 6,5; p 2 166 2 4 3 2 3 S 0,3 0,4 1,2 1,4 1,5 1,6 2,1 2,2 2,3 2,4 2,5 3,2 3,3 3,4 3,5 3,6 4,2 4,3 4,4 5,4 5,5 T 0,5 4,5;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 7 3; c 0 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 1,2 2,0 2,1 2,3 3,5 5,3 B 0,0 0,1 1,6 4,0 4,1 6,2 W 1,1 1,3 1,5 3,2 3,3 5,1 P 0,3 3,6 4,2 6,0 6,1 6,3 S 0,2 2,2 3,0 3,1 4,3 5,2 5,5 5,6; p 0 108 0 0 0 0 0 S T 0,5 5,0; p 1 39 0 0 0 0 0 S T 4,5; p 2 39 0 0 0 0 0 S T 6,5;
|
a 7 3; c 0 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 0,2 2,0 3,6 4,1 4,2 6,0 B 0,0 3,0 3,1 3,2 3,5 6,3 W 1,5 1,6 2,1 5,3 6,1 6,2 P 1,1 1,3 4,0 4,3 5,1 5,5 S 0,1 0,3 1,2 2,2 2,3 3,3 5,2 5,6; p 0 108 0 0 0 0 0 S T 0,5 5,0; p 1 39 0 0 0 0 0 S T 4,5; p 2 39 0 0 0 0 0 S T 6,5;
|
||||||
a 7 3; c 0 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 0,2 2,0 2,1 3,1 3,2 5,6 B 2,2 4,3 5,1 5,5 6,0 6,1 W 1,5 3,0 3,3 3,6 4,0 6,3 P 0,3 1,3 2,3 4,2 5,2 6,2 S 0,0 0,1 1,1 1,2 1,6 3,5 4,1 5,3; p 0 202 4 2 2 4 5 S 0,0 0,1 0,2 0,3 0,4 1,0 1,1 1,2 1,3 1,6 2,0 2,1 2,2 3,0 3,1 3,2 4,0 4,1 6,0 T 0,5 5,0; p 1 83 0 1 3 1 1 S 1,4 1,5 2,3 2,4 2,5 3,4 3,5 3,6 4,4 5,5 5,6 T 4,5; p 2 82 2 3 1 1 2 S 3,3 4,2 4,3 5,1 5,2 5,3 5,4 6,1 6,2 6,3 6,4 T 6,5;
|
a 7 3; c 0 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C B W P S; p 0 202 4 2 2 4 5 S 0,0 0,1 0,2 0,3 0,4 1,0 1,1 1,2 1,3 1,6 2,0 2,1 2,2 3,0 3,1 3,2 4,0 4,1 6,0 T 0,5 5,0; p 1 83 0 1 3 1 1 S 1,4 1,5 2,3 2,4 2,5 3,4 3,5 3,6 4,4 5,5 5,6 T 4,5; p 2 82 2 3 1 1 2 S 3,3 4,2 4,3 5,1 5,2 5,3 5,4 6,1 6,2 6,3 6,4 T 6,5;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 7 4; c 3 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 0,0 2,2 4,0 4,2 4,3 5,2 B 0,2 1,2 1,3 3,6 5,1 5,5 W 1,6 3,1 3,3 4,1 5,6 6,1 P 0,1 0,3 2,0 3,2 5,3 6,3 S 1,1 1,5 2,1 2,3 3,0 3,5 6,0 6,2; p 0 30 0 0 0 0 0 S T; p 1 42 0 0 0 0 0 S T 5,0; p 2 41 0 0 0 0 0 S T; p 3 40 0 0 0 0 0 S T 1,0;
|
a 7 4; c 3 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 1,2 1,3 5,1 5,6 6,0 6,1 B 0,1 1,6 2,3 3,6 4,2 4,3 W 1,5 2,2 4,0 5,2 5,5 6,2 P 0,2 0,3 3,1 3,5 4,1 6,3 S 0,0 1,1 2,0 2,1 3,0 3,2 3,3 5,3; p 0 30 0 0 0 0 0 S T; p 1 42 0 0 0 0 0 S T 5,0; p 2 41 0 0 0 0 0 S T; p 3 40 0 0 0 0 0 S T 1,0;
|
||||||
a 7 4; c 3 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 5,6 B W P S; p 0 30 0 0 0 0 0 S T; p 1 123 1 2 4 5 3 S 2,4 3,0 3,1 3,2 3,4 4,0 4,1 4,2 4,3 4,5 5,1 5,2 5,3 5,4 5,5 6,0 6,1 6,2 6,3 6,4 T 5,0; p 2 41 0 0 0 0 0 S T; p 3 145 4 4 2 1 5 S 0,0 0,1 0,2 0,3 0,4 0,5 1,1 1,2 1,3 1,4 1,5 1,6 2,0 2,1 2,2 2,3 2,5 3,3 3,5 3,6 T 1,0;
|
a 7 4; c 3 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 5,6 B W P S; p 0 30 0 0 0 0 0 S T; p 1 123 1 2 4 5 3 S 2,4 3,0 3,1 3,2 3,4 4,0 4,1 4,2 4,3 4,5 5,1 5,2 5,3 5,4 5,5 6,0 6,1 6,2 6,3 6,4 T 5,0; p 2 41 0 0 0 0 0 S T; p 3 145 4 4 2 1 5 S 0,0 0,1 0,2 0,3 0,4 0,5 1,1 1,2 1,3 1,4 1,5 1,6 2,0 2,1 2,2 2,3 2,5 3,3 3,5 3,6 T 1,0;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 7 4; c 0 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 0,1 0,2 1,3 1,5 3,6 6,1 B 2,1 2,2 3,1 4,2 5,5 5,6 W 0,0 1,1 3,0 3,2 3,3 6,0 P 0,3 1,6 3,5 4,3 5,1 5,2 S 1,2 2,0 2,3 4,0 4,1 5,3 6,2 6,3; p 0 85 0 0 0 0 0 S T 0,5; p 1 29 0 0 0 0 0 S T 4,5; p 2 19 0 0 0 0 0 S T 6,5; p 3 43 0 0 0 0 0 S T 2,5;
|
a 7 4; c 0 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 0,2 1,2 2,3 3,6 4,2 5,2 B 3,1 3,2 3,3 5,1 6,2 6,3 W 0,0 0,3 1,3 2,1 3,5 4,0 P 0,1 2,0 3,0 4,1 6,0 6,1 S 1,1 1,5 1,6 2,2 4,3 5,3 5,5 5,6; p 0 85 0 0 0 0 0 S T 0,5; p 1 29 0 0 0 0 0 S T 4,5; p 2 19 0 0 0 0 0 S T 6,5; p 3 43 0 0 0 0 0 S T 2,5;
|
||||||
a 7 4; c 2 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C 0,1 1,2 2,2 3,6 4,3 5,6 B 1,5 3,1 3,2 5,5 6,0 6,1 W 1,1 2,0 2,1 3,0 3,3 4,1 P 0,2 0,3 1,3 4,0 5,1 5,3 S 0,0 1,6 2,3 3,5 4,2 5,2 6,2 6,3; p 0 112 1 0 1 2 3 S 0,0 0,1 0,2 0,3 0,4 1,0 1,1 1,2 1,3 T 0,5; p 1 59 1 1 2 0 0 S 3,4 3,5 3,6 4,4 5,5 5,6 T 4,5; p 2 104 3 4 2 3 4 S 2,0 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 5,4 6,0 6,1 6,2 6,3 6,4 T 6,5; p 3 67 1 1 1 1 1 S 1,4 1,5 1,6 2,1 2,2 2,3 2,4 T 2,5;
|
a 7 4; c 2 S; i 4 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 6,0 6,1 6,2 6,3; i 20 0,5 1,5 1,6 2,5 3,5 3,6 4,5 5,5 5,6 6,5; s 0,0 0,1 0,2 0,3 1,1 1,2 1,3 1,5 1,6 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 3,5 3,6 4,0 4,1 4,2 4,3 5,1 5,2 5,3 5,5 5,6 6,0 6,1 6,2 6,3; r C B W P S; p 0 112 1 0 1 2 3 S 0,0 0,1 0,2 0,3 0,4 1,0 1,1 1,2 1,3 T 0,5; p 1 59 1 1 2 0 0 S 3,4 3,5 3,6 4,4 5,5 5,6 T 4,5; p 2 104 3 4 2 3 4 S 2,0 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,3 5,4 6,0 6,1 6,2 6,3 6,4 T 6,5; p 3 67 1 1 1 1 1 S 1,4 1,5 1,6 2,1 2,2 2,3 2,4 T 2,5;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 23 2; c 1 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 6,9 11,13 15,2 15,8 15,14 18,8 B 0,2 0,14 0,19 12,21 21,6 21,12 W 3,5 3,17 6,12 12,1 15,20 20,16 P 6,0 6,21 7,4 7,18 18,9 21,9 S 0,7 7,6 7,16 11,9 12,19 13,10 17,9 20,0; p 0 30 0 0 0 0 0 S T 2,17 6,19 9,9; p 1 30 0 0 0 0 0 S T 4,9 5,19 6,2 14,5 19,16;
|
a 23 2; c 1 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 0,7 3,17 6,0 6,12 11,9 12,1 B 0,19 7,18 12,21 13,10 21,6 21,9 W 7,4 15,8 15,20 18,9 20,0 20,16 P 0,14 3,5 7,16 11,13 12,19 15,14 S 0,2 6,9 6,21 7,6 15,2 17,9 18,8 21,12; p 0 30 0 0 0 0 0 S T 2,17 6,19 9,9; p 1 30 0 0 0 0 0 S T 4,9 5,19 6,2 14,5 19,16;
|
||||||
a 23 2; c 1 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 0,2 0,14 6,0 6,9 18,8 18,9 B 7,16 11,13 12,19 15,14 21,6 W 3,5 6,12 7,4 13,10 15,8 15,20 P 0,7 0,19 12,1 12,21 20,0 21,9 S 7,18 11,9 15,2 17,9 21,12; p 0 78 0 0 0 0 3 S 0,16 0,17 1,16 1,17 1,18 2,16 3,17 3,18 3,19 4,17 5,16 5,17 5,20 5,21 5,22 6,18 6,20 6,21 7,6 7,19 7,20 8,6 8,7 8,19 9,6 9,7 9,8 9,20 10,20 10,21 T 2,17 6,19 9,9; p 1 72 0 1 0 0 0 S 2,10 3,11 3,12 4,0 4,1 4,4 4,6 4,7 4,8 4,10 4,11 4,18 5,1 5,2 5,4 5,5 5,7 5,8 5,11 6,3 7,2 8,0 8,1 14,7 15,6 15,7 16,7 19,17 20,15 20,16 T 4,9 5,19 6,2 14,5 19,16;
|
a 23 2; c 1 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 0,2 0,14 6,0 6,9 18,8 18,9 B 7,16 11,13 12,19 15,14 21,6 W 3,5 6,12 7,4 13,10 15,8 15,20 P 0,7 0,19 12,1 12,21 20,0 21,9 S 7,18 11,9 15,2 17,9 21,12; p 0 78 0 0 0 0 3 S 0,16 0,17 1,16 1,17 1,18 2,16 3,17 3,18 3,19 4,17 5,16 5,17 5,20 5,21 5,22 6,18 6,20 6,21 7,6 7,19 7,20 8,6 8,7 8,19 9,6 9,7 9,8 9,20 10,20 10,21 T 2,17 6,19 9,9; p 1 72 0 1 0 0 0 S 2,10 3,11 3,12 4,0 4,1 4,4 4,6 4,7 4,8 4,10 4,11 4,18 5,1 5,2 5,4 5,5 5,7 5,8 5,11 6,3 7,2 8,0 8,1 14,7 15,6 15,7 16,7 19,17 20,15 20,16 T 4,9 5,19 6,2 14,5 19,16;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 23 2; c 1 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 0,14 3,17 6,0 6,12 12,21 15,2 B 0,19 7,4 7,16 12,1 17,9 18,9 W 3,5 6,21 11,9 15,14 20,0 21,12 P 0,2 6,9 11,13 15,8 15,20 21,6 S 0,7 7,6 7,18 12,19 13,10 18,8 20,16 21,9; p 0 108 0 0 0 0 0 S T 12,18 15,1 16,7; p 1 84 0 0 0 0 0 S T 6,2 9,13 14,7 14,17 16,14;
|
a 23 2; c 1 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 3,17 11,9 15,8 17,9 18,8 18,9 B 6,21 7,18 15,14 15,20 20,0 20,16 W 3,5 6,0 11,13 12,19 12,21 21,9 P 0,2 6,9 7,6 7,16 13,10 15,2 S 0,7 0,14 0,19 6,12 7,4 12,1 21,6 21,12; p 0 108 0 0 0 0 0 S T 12,18 15,1 16,7; p 1 84 0 0 0 0 0 S T 6,2 9,13 14,7 14,17 16,14;
|
||||||
a 23 2; c 1 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 0,2 3,17 6,12 7,16 21,9 B 3,5 6,9 11,13 20,16 W 6,21 21,12 P 0,14 0,19 7,18 18,8 21,6 S 0,7 6,0 7,6 20,0; p 0 206 0 1 2 0 4 S 12,1 12,15 12,16 12,17 12,19 12,20 12,21 13,1 13,17 13,19 13,20 13,21 14,1 14,3 14,4 14,5 14,20 15,0 15,2 15,3 15,6 15,7 15,8 15,9 15,10 16,3 16,6 16,8 17,9 18,9 T 12,18 15,1 16,7; p 1 221 1 1 2 1 0 S 7,3 7,4 9,10 9,11 9,12 10,9 11,9 11,10 12,9 13,6 13,10 13,18 14,6 14,8 14,9 14,10 14,11 14,12 14,13 14,18 14,19 15,14 15,17 15,19 15,20 15,21 16,15 16,16 16,19 17,16 T 6,2 9,13 14,7 14,17 16,14;
|
a 23 2; c 1 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 0,2 3,17 6,12 7,16 21,9 B 3,5 6,9 11,13 20,16 W 6,21 21,12 P 0,14 0,19 7,18 18,8 21,6 S 0,7 6,0 7,6 20,0; p 0 206 0 1 2 0 4 S 12,1 12,15 12,16 12,17 12,19 12,20 12,21 13,1 13,17 13,19 13,20 13,21 14,1 14,3 14,4 14,5 14,20 15,0 15,2 15,3 15,6 15,7 15,8 15,9 15,10 16,3 16,6 16,8 17,9 18,9 T 12,18 15,1 16,7; p 1 221 1 1 2 1 0 S 7,3 7,4 9,10 9,11 9,12 10,9 11,9 11,10 12,9 13,6 13,10 13,18 14,6 14,8 14,9 14,10 14,11 14,12 14,13 14,18 14,19 15,14 15,17 15,19 15,20 15,21 16,15 16,16 16,19 17,16 T 6,2 9,13 14,7 14,17 16,14;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 23 3; c 2 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 0,14 0,19 15,14 17,9 21,6 21,9 B 0,7 3,5 6,21 7,4 7,6 18,9 W 0,2 12,1 12,19 15,2 15,8 18,8 P 6,0 6,12 7,18 12,21 15,20 20,0 S 3,17 6,9 7,16 11,9 11,13 13,10 20,16 21,12; p 0 25 0 0 0 0 0 S T 5,4 9,1 19,8 19,9; p 1 29 0 0 0 0 0 S T 5,12 13,14 19,16 20,7 21,8; p 2 15 0 0 0 0 0 S T 2,17 3,2 4,13 5,21;
|
a 23 3; c 2 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 0,7 6,0 6,21 7,16 20,16 21,12 B 0,2 6,12 7,6 12,19 15,2 21,6 W 0,14 3,17 7,4 7,18 12,21 20,0 P 11,9 11,13 13,10 15,20 17,9 18,9 S 0,19 3,5 6,9 12,1 15,8 15,14 18,8 21,9; p 0 25 0 0 0 0 0 S T 5,4 9,1 19,8 19,9; p 1 29 0 0 0 0 0 S T 5,12 13,14 19,16 20,7 21,8; p 2 15 0 0 0 0 0 S T 2,17 3,2 4,13 5,21;
|
||||||
a 23 3; c 2 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 6,21 11,13 21,6 B 0,7 7,6 12,21 13,10 20,0 21,12 W 0,14 6,12 7,18 12,1 15,8 15,20 P 0,19 6,0 6,9 7,4 15,2 S 0,2 7,16 11,9 12,19 15,14 17,9 18,8; p 0 61 1 0 0 0 0 S 3,6 4,3 4,4 4,5 4,6 5,5 5,6 7,0 8,0 9,0 15,10 16,10 16,11 17,10 18,9 18,10 19,7 19,11 20,8 20,11 20,12 20,13 20,14 21,11 21,13 T 5,4 9,1 19,8 19,9; p 1 56 1 0 0 0 1 S 3,11 3,13 4,11 4,12 5,11 12,14 14,13 17,16 18,15 18,16 19,13 19,14 19,15 20,6 20,9 20,15 20,16 21,7 21,9 21,10 21,15 21,16 22,6 22,7 22,14 T 5,12 13,14 19,16 20,7 21,8; p 2 32 1 0 0 1 0 S 0,5 1,5 1,6 1,19 2,2 2,4 2,5 2,6 2,15 2,16 2,18 3,3 3,4 3,5 3,14 3,17 3,18 3,22 4,2 4,21 5,3 5,13 5,14 5,15 6,15 T 2,17 3,2 4,13 5,21;
|
a 23 3; c 2 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 6,21 11,13 21,6 B 0,7 7,6 12,21 13,10 20,0 21,12 W 0,14 6,12 7,18 12,1 15,8 15,20 P 0,19 6,0 6,9 7,4 15,2 S 0,2 7,16 11,9 12,19 15,14 17,9 18,8; p 0 61 1 0 0 0 0 S 3,6 4,3 4,4 4,5 4,6 5,5 5,6 7,0 8,0 9,0 15,10 16,10 16,11 17,10 18,9 18,10 19,7 19,11 20,8 20,11 20,12 20,13 20,14 21,11 21,13 T 5,4 9,1 19,8 19,9; p 1 56 1 0 0 0 1 S 3,11 3,13 4,11 4,12 5,11 12,14 14,13 17,16 18,15 18,16 19,13 19,14 19,15 20,6 20,9 20,15 20,16 21,7 21,9 21,10 21,15 21,16 22,6 22,7 22,14 T 5,12 13,14 19,16 20,7 21,8; p 2 32 1 0 0 1 0 S 0,5 1,5 1,6 1,19 2,2 2,4 2,5 2,6 2,15 2,16 2,18 3,3 3,4 3,5 3,14 3,17 3,18 3,22 4,2 4,21 5,3 5,13 5,14 5,15 6,15 T 2,17 3,2 4,13 5,21;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 23 3; c 2 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 0,19 6,9 6,12 7,16 13,10 18,9 B 6,21 7,6 7,18 12,1 12,19 20,16 W 0,2 0,14 6,0 11,13 15,14 15,20 P 0,7 7,4 12,21 15,2 15,8 21,9 S 3,5 3,17 11,9 17,9 18,8 20,0 21,6 21,12; p 0 82 0 0 0 0 0 S T 10,1 10,21 11,1 19,0 19,16; p 1 75 0 0 0 0 0 S T 9,9 11,22 14,5 14,10 15,7; p 2 39 0 0 0 0 0 S T 4,8 5,13 6,7 13,14;
|
a 23 3; c 2 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 0,7 0,14 6,9 15,2 15,8 21,6 B 0,2 3,17 12,19 12,21 18,8 21,12 W 6,12 11,9 11,13 12,1 13,10 15,14 P 3,5 6,0 6,21 7,4 15,20 18,9 S 0,19 7,6 7,16 7,18 17,9 20,0 20,16 21,9; p 0 82 0 0 0 0 0 S T 10,1 10,21 11,1 19,0 19,16; p 1 75 0 0 0 0 0 S T 9,9 11,22 14,5 14,10 15,7; p 2 39 0 0 0 0 0 S T 4,8 5,13 6,7 13,14;
|
||||||
a 23 3; c 2 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 0,2 7,18 15,20 21,6 B 6,21 11,9 W 0,14 0,19 20,16 P 0,7 3,17 7,16 S 3,5 6,0 21,9; p 0 173 0 3 0 2 1 S 9,22 10,2 11,21 12,0 12,1 12,19 12,20 12,21 13,2 13,3 13,20 13,21 14,1 14,2 15,1 15,2 15,3 16,1 16,2 20,0 20,12 20,13 20,14 20,15 21,12 T 10,1 10,21 11,1 19,0 19,16; p 1 179 0 0 2 0 4 S 6,9 7,9 8,8 12,3 12,5 12,9 13,4 13,5 13,6 13,7 13,8 13,9 13,10 14,3 14,4 14,7 14,11 15,8 15,12 15,13 16,8 17,9 18,8 18,9 19,9 T 9,9 11,22 14,5 14,10 15,7; p 2 99 2 1 1 1 0 S 3,9 4,9 5,8 5,12 6,5 6,6 6,12 7,4 7,5 7,6 7,13 11,13 12,11 12,12 12,13 12,14 12,15 12,16 13,13 13,15 13,17 14,12 14,13 14,14 15,14 T 4,8 5,13 6,7 13,14;
|
a 23 3; c 2 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 0,2 7,18 15,20 21,6 B 6,21 11,9 W 0,14 0,19 20,16 P 0,7 3,17 7,16 S 3,5 6,0 21,9; p 0 173 0 3 0 2 1 S 9,22 10,2 11,21 12,0 12,1 12,19 12,20 12,21 13,2 13,3 13,20 13,21 14,1 14,2 15,1 15,2 15,3 16,1 16,2 20,0 20,12 20,13 20,14 20,15 21,12 T 10,1 10,21 11,1 19,0 19,16; p 1 179 0 0 2 0 4 S 6,9 7,9 8,8 12,3 12,5 12,9 13,4 13,5 13,6 13,7 13,8 13,9 13,10 14,3 14,4 14,7 14,11 15,8 15,12 15,13 16,8 17,9 18,8 18,9 19,9 T 9,9 11,22 14,5 14,10 15,7; p 2 99 2 1 1 1 0 S 3,9 4,9 5,8 5,12 6,5 6,6 6,12 7,4 7,5 7,6 7,13 11,13 12,11 12,12 12,13 12,14 12,15 12,16 13,13 13,15 13,17 14,12 14,13 14,14 15,14 T 4,8 5,13 6,7 13,14;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 23 4; c 3 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 3,5 6,9 6,21 7,18 15,8 15,20 B 0,2 6,12 7,4 11,9 11,13 17,9 W 0,19 7,16 12,1 12,19 12,21 21,9 P 0,7 13,10 15,2 20,0 21,6 21,12 S 0,14 3,17 6,0 7,6 15,14 18,8 18,9 20,16; p 0 23 0 0 0 0 0 S T 2,2 4,12 13,3 19,6; p 1 29 0 0 0 0 0 S T 4,19 5,19 6,19 15,13; p 2 35 0 0 0 0 0 S T 7,3 9,9 14,7 15,1 19,16; p 3 33 0 0 0 0 0 S T 4,4 4,5 15,3;
|
a 23 4; c 3 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 0,14 0,19 7,6 15,2 17,9 21,6 B 0,7 12,1 13,10 15,20 18,8 20,0 W 6,9 6,21 11,13 12,21 18,9 21,12 P 0,2 3,5 7,4 7,16 12,19 15,14 S 3,17 6,0 6,12 7,18 11,9 15,8 20,16 21,9; p 0 23 0 0 0 0 0 S T 2,2 4,12 13,3 19,6; p 1 29 0 0 0 0 0 S T 4,19 5,19 6,19 15,13; p 2 35 0 0 0 0 0 S T 7,3 9,9 14,7 15,1 19,16; p 3 33 0 0 0 0 0 S T 4,4 4,5 15,3;
|
||||||
a 23 4; c 3 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 0,14 6,0 11,9 12,21 15,14 18,8 B 3,17 12,1 13,10 15,2 15,8 18,9 W 0,7 6,12 6,21 15,20 20,0 P 0,19 7,16 11,13 S 0,2 6,9 7,6 12,19 17,9 21,6 21,9 21,12; p 0 34 0 0 0 0 0 S 3,1 3,2 3,3 3,13 3,15 4,1 4,13 4,14 5,13 5,14 11,3 11,4 12,3 13,4 17,5 18,4 18,5 18,6 19,7 20,5 T 2,2 4,12 13,3 19,6; p 1 48 0 0 1 0 0 S 2,18 2,21 3,19 3,20 3,21 4,18 4,20 7,18 7,19 14,12 14,13 15,11 15,12 16,10 16,11 16,13 17,11 17,14 18,13 18,14 T 4,19 5,19 6,19 15,13; p 2 91 0 0 0 1 0 S 8,3 8,4 8,10 9,10 13,0 13,8 14,0 14,4 14,5 14,6 14,8 15,0 15,5 16,0 16,1 17,0 18,15 18,16 19,15 20,16 T 7,3 9,9 14,7 15,1 19,16; p 3 49 0 0 0 2 0 S 1,6 2,4 2,5 3,5 3,6 3,7 4,2 4,3 4,7 5,1 5,2 5,4 6,3 7,4 14,3 15,4 16,2 16,4 17,2 17,3 T 4,4 4,5 15,3;
|
a 23 4; c 3 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 0,14 6,0 11,9 12,21 15,14 18,8 B 3,17 12,1 13,10 15,2 15,8 18,9 W 0,7 6,12 6,21 15,20 20,0 P 0,19 7,16 11,13 S 0,2 6,9 7,6 12,19 17,9 21,6 21,9 21,12; p 0 34 0 0 0 0 0 S 3,1 3,2 3,3 3,13 3,15 4,1 4,13 4,14 5,13 5,14 11,3 11,4 12,3 13,4 17,5 18,4 18,5 18,6 19,7 20,5 T 2,2 4,12 13,3 19,6; p 1 48 0 0 1 0 0 S 2,18 2,21 3,19 3,20 3,21 4,18 4,20 7,18 7,19 14,12 14,13 15,11 15,12 16,10 16,11 16,13 17,11 17,14 18,13 18,14 T 4,19 5,19 6,19 15,13; p 2 91 0 0 0 1 0 S 8,3 8,4 8,10 9,10 13,0 13,8 14,0 14,4 14,5 14,6 14,8 15,0 15,5 16,0 16,1 17,0 18,15 18,16 19,15 20,16 T 7,3 9,9 14,7 15,1 19,16; p 3 49 0 0 0 2 0 S 1,6 2,4 2,5 3,5 3,6 3,7 4,2 4,3 4,7 5,1 5,2 5,4 6,3 7,4 14,3 15,4 16,2 16,4 17,2 17,3 T 4,4 4,5 15,3;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 23 4; c 3 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 0,14 12,21 17,9 18,9 20,0 21,9 B 6,12 6,21 11,13 12,19 15,2 20,16 W 3,5 3,17 11,9 12,1 13,10 15,20 P 0,2 0,7 0,19 6,9 7,4 15,14 S 6,0 7,6 7,16 7,18 15,8 18,8 21,6 21,12; p 0 34 0 0 0 0 0 S T 1,3 10,9 10,12 15,7 18,16; p 1 64 0 0 0 0 0 S T 9,1 9,22 10,1 16,1 19,16; p 2 69 0 0 0 0 0 S T 5,19 11,22 13,20 15,3; p 3 49 0 0 0 0 0 S T 5,1 15,10 16,14 17,16 18,0;
|
a 23 4; c 3 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 3,5 7,4 7,6 12,19 15,20 21,9 B 6,0 11,9 12,21 13,10 15,14 18,8 W 0,2 3,17 6,21 7,16 20,0 21,6 P 0,14 6,12 7,18 12,1 15,2 21,12 S 0,7 0,19 6,9 11,13 15,8 17,9 18,9 20,16; p 0 34 0 0 0 0 0 S T 1,3 10,9 10,12 15,7 18,16; p 1 64 0 0 0 0 0 S T 9,1 9,22 10,1 16,1 19,16; p 2 69 0 0 0 0 0 S T 5,19 11,22 13,20 15,3; p 3 49 0 0 0 0 0 S T 5,1 15,10 16,14 17,16 18,0;
|
||||||
a 23 4; c 3 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 13,10 B 0,19 3,5 3,17 6,21 11,13 21,9 W 0,7 21,12 P 0,14 S 6,9 6,12 7,6 21,6; p 0 80 0 0 2 0 0 S 0,2 0,3 2,1 2,2 3,2 4,0 4,1 4,2 9,9 9,12 10,10 11,9 11,11 11,12 14,7 16,7 17,7 18,15 19,15 19,17 T 1,3 10,9 10,12 15,7 18,16; p 1 118 2 0 2 0 1 S 7,15 7,16 7,17 7,18 7,19 7,20 8,19 9,20 10,19 10,20 10,21 11,2 11,20 12,1 12,19 14,1 15,0 15,1 16,2 20,16 T 9,1 9,22 10,1 16,1 19,16; p 2 115 0 0 0 2 1 S 4,19 5,16 5,17 5,18 6,18 11,21 12,20 12,21 13,21 13,22 14,2 14,3 14,4 14,17 14,18 14,19 14,20 15,2 15,20 16,3 T 5,19 11,22 13,20 15,3; p 3 139 3 0 0 3 2 S 5,0 5,3 6,0 6,1 6,2 6,3 7,3 7,4 15,8 15,14 15,15 16,8 16,9 17,9 17,10 17,17 18,8 18,9 19,0 20,0 T 5,1 15,10 16,14 17,16 18,0;
|
a 23 4; c 3 S; i 6 0,2 0,7 1,3 1,7 2,2 2,3 2,4 2,5 2,6 2,7 3,2 3,4 3,5 3,6 3,8 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 5,0 5,1 5,3 5,4 5,5 5,6 5,7 5,9 5,10 6,0 6,2 6,7 6,9 7,3 7,4 7,6 7,7; i 6 0,14 0,19 1,15 1,19 2,14 2,15 2,16 2,17 2,18 2,19 3,14 3,16 3,17 3,18 3,20 4,12 4,13 4,14 4,15 4,16 4,17 4,18 4,19 4,20 4,21 5,12 5,13 5,15 5,16 5,17 5,18 5,19 5,21 5,22 6,12 6,14 6,19 6,21 7,15 7,16 7,18 7,19; i 6 17,9 18,8 18,9 19,6 19,7 19,8 19,9 19,10 19,11 19,12 20,5 20,6 20,7 20,8 20,9 20,10 20,11 20,12 21,5 21,6 21,7 21,8 21,9 21,10 21,11 21,12 21,13 22,5 22,6 22,7 22,8 22,9 22,10 22,11 22,12; i 8 12,3 12,5 13,3 13,4 13,5 13,6 14,1 14,2 14,3 14,4 14,5 15,1 15,2 15,3 16,1 16,2; i 8 12,17 12,18 12,19 13,17 13,18 13,19 13,20 14,17 14,18 14,19 14,20 15,19 15,20 15,21 16,19 16,20; i 8 13,14 14,13 14,14 15,13 15,14 15,15 16,13 16,14; i 8 14,7 15,7 15,8 16,7; i 10 8,9 9,9 10,9 11,9; i 10 8,12 9,13 10,12 11,13; i 10 9,1 10,1 11,1 12,1; i 10 9,22 10,21 11,22 12,21; i 10 13,10 14,10 15,10; i 10 17,0 18,0 19,0 20,0; i 10 17,16 18,16 19,16 20,16; s 0,2 0,7 0,14 0,19 3,5 3,17 6,0 6,9 6,12 6,21 7,4 7,6 7,16 7,18 11,9 11,13 12,1 12,19 12,21 13,10 15,2 15,8 15,14 15,20 17,9 18,8 18,9 20,0 20,16 21,6 21,9 21,12; r C 13,10 B 0,19 3,5 3,17 6,21 11,13 21,9 W 0,7 21,12 P 0,14 S 6,9 6,12 7,6 21,6; p 0 80 0 0 2 0 0 S 0,2 0,3 2,1 2,2 3,2 4,0 4,1 4,2 9,9 9,12 10,10 11,9 11,11 11,12 14,7 16,7 17,7 18,15 19,15 19,17 T 1,3 10,9 10,12 15,7 18,16; p 1 118 2 0 2 0 1 S 7,15 7,16 7,17 7,18 7,19 7,20 8,19 9,20 10,19 10,20 10,21 11,2 11,20 12,1 12,19 14,1 15,0 15,1 16,2 20,16 T 9,1 9,22 10,1 16,1 19,16; p 2 115 0 0 0 2 1 S 4,19 5,16 5,17 5,18 6,18 11,21 12,20 12,21 13,21 13,22 14,2 14,3 14,4 14,17 14,18 14,19 14,20 15,2 15,20 16,3 T 5,19 11,22 13,20 15,3; p 3 139 3 0 0 3 2 S 5,0 5,3 6,0 6,1 6,2 6,3 7,3 7,4 15,8 15,14 15,15 16,8 16,9 17,9 17,10 17,17 18,8 18,9 19,0 20,0 T 5,1 15,10 16,14 17,16 18,0;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 2; c 1 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 0,10 3,6 6,11 8,0 10,0 12,10 B 2,2 3,0 3,2 8,8 11,3 12,4 W 0,4 2,11 4,3 4,10 6,4 8,10 P 4,2 6,1 6,6 8,5 10,5 12,8 S 0,1 2,3 2,9 3,4 10,7 10,9 10,11 12,1; p 0 34 0 0 0 0 0 S T 2,5 4,5 7,6 9,8; p 1 42 0 0 0 0 0 S T 3,11 6,10;
|
a 13 2; c 1 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 3,6 6,1 6,11 8,10 10,5 12,8 B 0,4 2,9 4,2 8,0 8,5 8,8 W 3,0 4,3 6,6 10,7 10,9 12,10 P 2,2 2,3 4,10 6,4 10,0 12,4 S 0,1 0,10 2,11 3,2 3,4 10,11 11,3 12,1; p 0 34 0 0 0 0 0 S T 2,5 4,5 7,6 9,8; p 1 42 0 0 0 0 0 S T 3,11 6,10;
|
||||||
a 13 2; c 1 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 0,1 0,10 4,2 11,3 B 2,2 6,6 8,5 12,10 W 3,0 3,4 P 2,3 3,2 8,0 12,1 12,4 S 6,1 10,0 10,11 12,8; p 0 114 1 2 1 1 2 S 0,4 0,6 1,5 1,6 2,4 2,6 3,5 4,3 4,6 5,3 5,4 5,5 5,6 6,3 6,4 7,7 7,8 8,6 8,7 8,10 9,5 9,6 9,7 9,9 9,10 10,5 10,6 10,7 10,8 10,9 T 2,5 4,5 7,6 9,8; p 1 108 1 0 3 0 2 S 0,7 0,8 1,8 1,9 1,11 2,7 2,8 2,9 2,11 3,6 3,7 3,10 3,12 4,7 4,8 4,9 4,10 4,11 5,8 5,9 5,10 5,11 6,8 6,9 6,11 7,9 7,10 7,11 8,8 8,9 T 3,11 6,10;
|
a 13 2; c 1 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 0,1 0,10 4,2 11,3 B 2,2 6,6 8,5 12,10 W 3,0 3,4 P 2,3 3,2 8,0 12,1 12,4 S 6,1 10,0 10,11 12,8; p 0 114 1 2 1 1 2 S 0,4 0,6 1,5 1,6 2,4 2,6 3,5 4,3 4,6 5,3 5,4 5,5 5,6 6,3 6,4 7,7 7,8 8,6 8,7 8,10 9,5 9,6 9,7 9,9 9,10 10,5 10,6 10,7 10,8 10,9 T 2,5 4,5 7,6 9,8; p 1 108 1 0 3 0 2 S 0,7 0,8 1,8 1,9 1,11 2,7 2,8 2,9 2,11 3,6 3,7 3,10 3,12 4,7 4,8 4,9 4,10 4,11 5,8 5,9 5,10 5,11 6,8 6,9 6,11 7,9 7,10 7,11 8,8 8,9 T 3,11 6,10;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 2; c 1 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 3,4 3,6 4,2 6,4 10,7 10,11 B 2,2 2,3 2,9 3,2 10,0 11,3 W 0,1 4,3 4,10 6,1 6,6 8,0 P 0,4 0,10 8,8 8,10 10,5 12,1 S 2,11 3,0 6,11 8,5 10,9 12,4 12,8 12,10; p 0 90 0 0 0 0 0 S T 6,3; p 1 113 0 0 0 0 0 S T 9,8;
|
a 13 2; c 1 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 0,4 3,2 8,0 10,9 12,1 12,8 B 2,3 2,9 4,10 6,4 6,11 12,10 W 2,11 3,6 4,2 6,1 8,8 8,10 P 0,10 2,2 8,5 10,0 10,5 10,7 S 0,1 3,0 3,4 4,3 6,6 10,11 11,3 12,4; p 0 90 0 0 0 0 0 S T 6,3; p 1 113 0 0 0 0 0 S T 9,8;
|
||||||
a 13 2; c 1 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 4,10 B 0,10 10,11 W 10,0 P 2,11 S 0,1 0,4 2,9 3,0 8,10 11,3 12,1; p 0 195 4 2 2 4 1 S 2,2 2,3 3,1 3,2 3,3 3,4 3,6 4,2 4,3 4,4 4,5 4,6 5,2 5,4 6,1 6,2 6,4 6,5 6,6 7,5 8,0 8,1 8,2 8,3 8,5 9,4 9,5 10,4 10,5 11,4 T 6,3; p 1 191 1 2 3 1 0 S 4,8 5,9 6,7 6,8 6,9 6,10 6,11 7,6 7,7 8,6 8,8 9,6 9,7 9,9 10,6 10,7 10,8 10,9 10,10 11,6 11,7 11,8 11,10 12,4 12,5 12,6 12,7 12,8 12,9 12,10 T 9,8;
|
a 13 2; c 1 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 4,10 B 0,10 10,11 W 10,0 P 2,11 S 0,1 0,4 2,9 3,0 8,10 11,3 12,1; p 0 195 4 2 2 4 1 S 2,2 2,3 3,1 3,2 3,3 3,4 3,6 4,2 4,3 4,4 4,5 4,6 5,2 5,4 6,1 6,2 6,4 6,5 6,6 7,5 8,0 8,1 8,2 8,3 8,5 9,4 9,5 10,4 10,5 11,4 T 6,3; p 1 191 1 2 3 1 0 S 4,8 5,9 6,7 6,8 6,9 6,10 6,11 7,6 7,7 8,6 8,8 9,6 9,7 9,9 10,6 10,7 10,8 10,9 10,10 11,6 11,7 11,8 11,10 12,4 12,5 12,6 12,7 12,8 12,9 12,10 T 9,8;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 3; c 2 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 2,11 3,2 4,10 6,11 10,5 12,1 B 2,9 4,2 6,4 8,10 10,9 10,11 W 0,1 0,10 3,4 4,3 8,8 10,0 P 3,6 8,0 8,5 10,7 12,4 12,10 S 0,4 2,2 2,3 3,0 6,1 6,6 11,3 12,8; p 0 32 0 0 0 0 0 S T 6,3 9,11 11,8; p 1 36 0 0 0 0 0 S T 4,5 6,9 6,10 11,2; p 2 51 0 0 0 0 0 S T 6,2 10,1;
|
a 13 3; c 2 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 2,3 3,2 4,3 6,1 8,8 12,8 B 0,1 2,9 3,6 6,11 10,7 10,9 W 0,10 4,2 4,10 10,11 11,3 12,10 P 3,0 3,4 8,0 8,10 12,1 12,4 S 0,4 2,2 2,11 6,4 6,6 8,5 10,0 10,5; p 0 32 0 0 0 0 0 S T 6,3 9,11 11,8; p 1 36 0 0 0 0 0 S T 4,5 6,9 6,10 11,2; p 2 51 0 0 0 0 0 S T 6,2 10,1;
|
||||||
a 13 3; c 2 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 2,11 B 0,10 3,2 8,10 W 3,4 6,6 12,4 P 6,4 11,3 12,1 S 0,1 2,9 8,5 12,10; p 0 90 1 1 1 1 3 S 5,4 6,7 6,11 7,3 7,8 7,12 8,8 8,11 9,6 9,7 9,8 9,10 9,12 10,5 10,6 10,7 10,8 10,9 10,10 10,11 11,6 11,7 11,11 12,5 12,8 T 6,3 9,11 11,8; p 1 62 1 1 1 0 0 S 0,4 0,5 1,5 2,4 2,6 3,5 3,6 3,7 3,8 3,9 4,4 4,10 4,11 5,9 5,10 5,11 6,8 7,9 7,10 7,11 8,9 10,2 11,1 12,2 12,3 T 4,5 6,9 6,10 11,2; p 2 122 3 1 1 2 1 S 2,2 2,3 3,0 3,1 3,3 4,1 4,2 4,3 5,1 5,2 5,3 6,1 7,0 7,2 8,0 8,1 8,2 9,0 9,1 9,2 9,3 10,0 10,3 10,4 11,0 T 6,2 10,1;
|
a 13 3; c 2 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 2,11 B 0,10 3,2 8,10 W 3,4 6,6 12,4 P 6,4 11,3 12,1 S 0,1 2,9 8,5 12,10; p 0 90 1 1 1 1 3 S 5,4 6,7 6,11 7,3 7,8 7,12 8,8 8,11 9,6 9,7 9,8 9,10 9,12 10,5 10,6 10,7 10,8 10,9 10,10 10,11 11,6 11,7 11,11 12,5 12,8 T 6,3 9,11 11,8; p 1 62 1 1 1 0 0 S 0,4 0,5 1,5 2,4 2,6 3,5 3,6 3,7 3,8 3,9 4,4 4,10 4,11 5,9 5,10 5,11 6,8 7,9 7,10 7,11 8,9 10,2 11,1 12,2 12,3 T 4,5 6,9 6,10 11,2; p 2 122 3 1 1 2 1 S 2,2 2,3 3,0 3,1 3,3 4,1 4,2 4,3 5,1 5,2 5,3 6,1 7,0 7,2 8,0 8,1 8,2 9,0 9,1 9,2 9,3 10,0 10,3 10,4 11,0 T 6,2 10,1;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 3; c 2 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 0,10 4,2 6,4 10,5 11,3 12,8 B 0,1 2,11 3,0 3,6 10,9 12,4 W 0,4 6,6 8,8 8,10 10,0 12,10 P 2,2 3,4 6,1 8,5 10,7 12,1 S 2,3 2,9 3,2 4,3 4,10 6,11 8,0 10,11; p 0 78 0 0 0 0 0 S T 0,3 9,11; p 1 53 0 0 0 0 0 S T 4,0 6,2 7,6; p 2 71 0 0 0 0 0 S T 8,1 8,2 11,6;
|
a 13 3; c 2 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 0,1 2,9 4,3 10,0 10,5 12,4 B 3,0 4,2 8,5 8,10 10,7 12,10 W 2,2 2,3 2,11 6,1 8,8 12,1 P 3,2 3,4 3,6 4,10 6,11 12,8 S 0,4 0,10 6,4 6,6 8,0 10,9 10,11 11,3; p 0 78 0 0 0 0 0 S T 0,3 9,11; p 1 53 0 0 0 0 0 S T 4,0 6,2 7,6; p 2 71 0 0 0 0 0 S T 8,1 8,2 11,6;
|
||||||
a 13 3; c 2 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 3,6 6,11 B 0,10 W 2,11 6,4 P 2,9 4,10 S; p 0 158 2 1 2 1 5 S 0,1 0,2 0,4 1,2 1,3 1,4 2,1 2,2 2,3 3,2 3,3 3,4 4,2 4,4 6,10 7,11 8,10 9,10 9,12 10,8 10,9 10,11 11,9 12,9 12,10 T 0,3 9,11; p 1 110 0 2 0 1 2 S 2,0 3,0 4,1 4,8 5,0 5,7 5,8 6,3 6,5 6,6 6,7 7,2 7,4 7,5 7,7 8,4 8,5 8,7 8,8 9,5 9,6 10,4 10,5 10,6 11,4 T 4,0 6,2 7,6; p 2 137 2 2 2 2 1 S 4,3 5,2 5,3 6,1 7,0 7,1 8,0 8,3 9,0 9,2 9,8 10,0 10,2 10,7 11,3 11,5 11,7 11,8 12,1 12,2 12,3 12,4 12,6 12,7 12,8 T 8,1 8,2 11,6;
|
a 13 3; c 2 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 3,6 6,11 B 0,10 W 2,11 6,4 P 2,9 4,10 S; p 0 158 2 1 2 1 5 S 0,1 0,2 0,4 1,2 1,3 1,4 2,1 2,2 2,3 3,2 3,3 3,4 4,2 4,4 6,10 7,11 8,10 9,10 9,12 10,8 10,9 10,11 11,9 12,9 12,10 T 0,3 9,11; p 1 110 0 2 0 1 2 S 2,0 3,0 4,1 4,8 5,0 5,7 5,8 6,3 6,5 6,6 6,7 7,2 7,4 7,5 7,7 8,4 8,5 8,7 8,8 9,5 9,6 10,4 10,5 10,6 11,4 T 4,0 6,2 7,6; p 2 137 2 2 2 2 1 S 4,3 5,2 5,3 6,1 7,0 7,1 8,0 8,3 9,0 9,2 9,8 10,0 10,2 10,7 11,3 11,5 11,7 11,8 12,1 12,2 12,3 12,4 12,6 12,7 12,8 T 8,1 8,2 11,6;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 4; c 3 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 3,2 6,6 6,11 8,5 8,8 11,3 B 0,1 2,3 3,0 3,4 3,6 4,3 W 0,4 0,10 6,4 10,9 10,11 12,10 P 2,11 4,2 6,1 8,0 8,10 12,1 S 2,2 2,9 4,10 10,0 10,5 10,7 12,4 12,8; p 0 51 0 0 0 0 0 S T 1,1; p 1 34 0 0 0 0 0 S T 6,10 7,6 8,3 10,4; p 2 25 0 0 0 0 0 S T 0,2 6,3 8,1 11,11 12,5; p 3 9 0 0 0 0 0 S T 0,3 1,5 1,8 2,5;
|
a 13 4; c 3 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 0,1 4,3 6,11 8,10 10,9 12,4 B 2,3 3,0 4,2 6,4 10,0 10,7 W 2,2 2,11 3,4 3,6 10,5 10,11 P 2,9 6,1 6,6 8,0 8,5 11,3 S 0,4 0,10 3,2 4,10 8,8 12,1 12,8 12,10; p 0 51 0 0 0 0 0 S T 1,1; p 1 34 0 0 0 0 0 S T 6,10 7,6 8,3 10,4; p 2 25 0 0 0 0 0 S T 0,2 6,3 8,1 11,11 12,5; p 3 9 0 0 0 0 0 S T 0,3 1,5 1,8 2,5;
|
||||||
a 13 4; c 3 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 4,10 8,5 12,4 B 0,4 3,4 6,6 6,11 W 10,11 P 2,11 8,8 S 10,0 11,3 12,1; p 0 98 2 1 1 1 2 S 0,0 0,1 1,0 1,2 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,4 T 1,1; p 1 74 1 0 1 0 2 S 5,5 5,10 5,11 6,4 6,5 7,5 7,11 7,12 8,2 8,6 8,10 9,2 9,4 9,5 9,6 9,10 10,3 10,5 10,6 10,7 T 6,10 7,6 8,3 10,4; p 2 64 0 1 2 2 0 S 5,3 6,1 7,0 7,2 7,3 8,0 9,0 9,11 10,8 10,9 10,10 11,5 11,6 11,9 11,12 12,7 12,8 12,9 12,10 12,11 T 0,2 6,3 8,1 11,11 12,5; p 3 42 0 0 1 1 1 S 0,6 0,7 0,8 0,10 1,3 1,6 1,7 1,9 1,10 1,11 2,4 2,7 2,9 3,5 3,6 3,7 3,10 4,4 4,6 4,9 T 0,3 1,5 1,8 2,5;
|
a 13 4; c 3 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 4,10 8,5 12,4 B 0,4 3,4 6,6 6,11 W 10,11 P 2,11 8,8 S 10,0 11,3 12,1; p 0 98 2 1 1 1 2 S 0,0 0,1 1,0 1,2 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 4,0 4,1 4,2 4,3 5,0 5,1 5,2 5,4 T 1,1; p 1 74 1 0 1 0 2 S 5,5 5,10 5,11 6,4 6,5 7,5 7,11 7,12 8,2 8,6 8,10 9,2 9,4 9,5 9,6 9,10 10,3 10,5 10,6 10,7 T 6,10 7,6 8,3 10,4; p 2 64 0 1 2 2 0 S 5,3 6,1 7,0 7,2 7,3 8,0 9,0 9,11 10,8 10,9 10,10 11,5 11,6 11,9 11,12 12,7 12,8 12,9 12,10 12,11 T 0,2 6,3 8,1 11,11 12,5; p 3 42 0 0 1 1 1 S 0,6 0,7 0,8 0,10 1,3 1,6 1,7 1,9 1,10 1,11 2,4 2,7 2,9 3,5 3,6 3,7 3,10 4,4 4,6 4,9 T 0,3 1,5 1,8 2,5;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
a 13 4; c 3 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 0,1 3,2 4,3 6,1 8,0 12,4 B 0,10 3,4 10,0 10,7 12,8 12,10 W 2,3 3,0 6,11 10,5 10,9 12,1 P 2,9 4,2 4,10 6,4 8,10 11,3 S 0,4 2,2 2,11 3,6 6,6 8,5 8,8 10,11; p 0 63 0 0 0 0 0 S T 9,8 11,4 11,8; p 1 32 0 0 0 0 0 S T 0,9 1,5 5,1; p 2 57 0 0 0 0 0 S T 9,11; p 3 76 0 0 0 0 0 S T 0,8 2,7 5,5 7,6;
|
a 13 4; c 3 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C 2,3 6,4 8,0 8,10 10,5 12,1 B 0,4 0,10 2,11 3,2 10,11 11,3 W 3,4 3,6 4,3 6,6 10,0 12,4 P 4,2 4,10 8,5 10,7 12,8 12,10 S 0,1 2,2 2,9 3,0 6,1 6,11 8,8 10,9; p 0 63 0 0 0 0 0 S T 9,8 11,4 11,8; p 1 32 0 0 0 0 0 S T 0,9 1,5 5,1; p 2 57 0 0 0 0 0 S T 9,11; p 3 76 0 0 0 0 0 S T 0,8 2,7 5,5 7,6;
|
||||||
a 13 4; c 3 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C B W 0,1 P 4,10 10,0 S 2,11 8,0 12,1; p 0 116 2 3 0 1 1 S 9,4 9,6 9,7 10,2 10,4 10,5 10,6 10,7 10,8 10,9 11,3 11,6 11,9 11,10 12,3 12,4 12,7 12,8 12,9 12,10 T 9,8 11,4 11,8; p 1 106 2 1 3 3 1 S 0,4 0,10 0,11 1,8 1,9 1,10 2,2 2,3 2,4 2,5 2,9 3,0 3,2 3,4 3,5 4,0 4,1 4,2 5,0 6,1 T 0,9 1,5 5,1; p 2 79 2 0 1 0 1 S 5,12 6,7 6,8 6,9 6,10 6,11 7,8 7,9 7,12 8,8 8,9 8,10 8,11 9,9 9,10 9,12 10,11 11,11 11,12 12,11 T 9,11; p 3 120 0 2 1 0 2 S 2,8 3,6 3,7 3,8 4,3 4,4 4,5 4,7 5,6 6,4 6,5 6,6 7,4 7,7 8,2 8,3 8,4 8,5 8,6 9,5 T 0,8 2,7 5,5 7,6;
|
a 13 4; c 3 S; i 5 0,1 0,2 0,3 0,4 1,1 1,5 2,0 2,5 3,0 3,6 4,0 4,5 5,1 5,5 6,1 6,2 6,3 6,4; i 5 0,8 0,9 0,10 1,8 1,11 2,7 2,11 3,8 3,11 4,8 4,9 4,10; i 7 8,8 8,9 8,10 9,8 9,11 10,7 10,11 11,8 11,11 12,8 12,9 12,10; i 7 10,0 10,1 10,4 10,5 11,0 11,2 11,3 11,4 11,6 12,0 12,1 12,4 12,5; i 9 2,2 2,3 3,2 3,4 4,2 4,3; i 9 2,9; i 9 6,6 6,7 6,8 6,9 6,10 6,11 7,6 8,0 8,1 8,2 8,3 8,4 8,5; i 9 10,9; s 0,1 0,4 0,10 2,2 2,3 2,9 2,11 3,0 3,2 3,4 3,6 4,2 4,3 4,10 6,1 6,4 6,6 6,11 8,0 8,5 8,8 8,10 10,0 10,5 10,7 10,9 10,11 11,3 12,1 12,4 12,8 12,10; r C B W 0,1 P 4,10 10,0 S 2,11 8,0 12,1; p 0 116 2 3 0 1 1 S 9,4 9,6 9,7 10,2 10,4 10,5 10,6 10,7 10,8 10,9 11,3 11,6 11,9 11,10 12,3 12,4 12,7 12,8 12,9 12,10 T 9,8 11,4 11,8; p 1 106 2 1 3 3 1 S 0,4 0,10 0,11 1,8 1,9 1,10 2,2 2,3 2,4 2,5 2,9 3,0 3,2 3,4 3,5 4,0 4,1 4,2 5,0 6,1 T 0,9 1,5 5,1; p 2 79 2 0 1 0 1 S 5,12 6,7 6,8 6,9 6,10 6,11 7,8 7,9 7,12 8,8 8,9 8,10 8,11 9,9 9,10 9,12 10,11 11,11 11,12 12,11 T 9,11; p 3 120 0 2 1 0 2 S 2,8 3,6 3,7 3,8 4,3 4,4 4,5 4,7 5,6 6,4 6,5 6,6 7,4 7,7 8,2 8,3 8,4 8,5 8,6 9,5 T 0,8 2,7 5,5 7,6;
|
||||||
Reference in New Issue
Block a user