Initital commit
This commit is contained in:
commit
439f8e6f1a
253 changed files with 14390 additions and 0 deletions
BIN
sem2/print_hex
Normal file
BIN
sem2/print_hex
Normal file
Binary file not shown.
26
sem2/print_hex.asm
Normal file
26
sem2/print_hex.asm
Normal file
|
@ -0,0 +1,26 @@
|
|||
section .data
|
||||
|
||||
codes: db '0123456789ABCDEF'
|
||||
|
||||
section .text
|
||||
|
||||
global print_hex
|
||||
print_hex:
|
||||
mov rdi, 1
|
||||
mov rdx, 1
|
||||
mov rcx, 64
|
||||
.loop:
|
||||
push rax
|
||||
sub rcx, 4
|
||||
sar rax, cl
|
||||
and rax, 0xf
|
||||
lea rsi, [codes + rax]
|
||||
mov rax, 1
|
||||
push rcx
|
||||
syscall
|
||||
pop rcx
|
||||
pop rax
|
||||
test rcx, rcx
|
||||
jnz .loop
|
||||
ret
|
||||
|
BIN
sem2/print_hex.o
Normal file
BIN
sem2/print_hex.o
Normal file
Binary file not shown.
BIN
sem3/task-custom-make/Lab2-1.0.jar
Normal file
BIN
sem3/task-custom-make/Lab2-1.0.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
0
sem3/task-custom-make/Lab2/.gradle/5.6.3/gc.properties
Normal file
0
sem3/task-custom-make/Lab2/.gradle/5.6.3/gc.properties
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,2 @@
|
|||
#Wed Sep 29 20:58:54 MSK 2021
|
||||
gradle.version=5.6.3
|
Binary file not shown.
BIN
sem3/task-custom-make/Lab2/.gradle/checksums/checksums.lock
Normal file
BIN
sem3/task-custom-make/Lab2/.gradle/checksums/checksums.lock
Normal file
Binary file not shown.
0
sem3/task-custom-make/Lab2/.gradle/vcs-1/gc.properties
Normal file
0
sem3/task-custom-make/Lab2/.gradle/vcs-1/gc.properties
Normal file
8
sem3/task-custom-make/Lab2/.idea/.gitignore
vendored
Normal file
8
sem3/task-custom-make/Lab2/.idea/.gitignore
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
6
sem3/task-custom-make/Lab2/.idea/compiler.xml
Normal file
6
sem3/task-custom-make/Lab2/.idea/compiler.xml
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<bytecodeTargetLevel target="1.8" />
|
||||
</component>
|
||||
</project>
|
7
sem3/task-custom-make/Lab2/.idea/discord.xml
Normal file
7
sem3/task-custom-make/Lab2/.idea/discord.xml
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DiscordProjectSettings">
|
||||
<option name="show" value="PROJECT_FILES" />
|
||||
<option name="description" value="" />
|
||||
</component>
|
||||
</project>
|
7
sem3/task-custom-make/Lab2/.idea/encodings.xml
Normal file
7
sem3/task-custom-make/Lab2/.idea/encodings.xml
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding">
|
||||
<file url="file://$PROJECT_DIR$/src/main/java/ru/erius/lab2/Lab2.java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/src/main/java/ru/erius/lab2/move/status/Leer.java" charset="UTF-8" />
|
||||
</component>
|
||||
</project>
|
17
sem3/task-custom-make/Lab2/.idea/gradle.xml
Normal file
17
sem3/task-custom-make/Lab2/.idea/gradle.xml
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
</set>
|
||||
</option>
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
20
sem3/task-custom-make/Lab2/.idea/jarRepositories.xml
Normal file
20
sem3/task-custom-make/Lab2/.idea/jarRepositories.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RemoteRepositoriesConfiguration">
|
||||
<remote-repository>
|
||||
<option name="id" value="central" />
|
||||
<option name="name" value="Maven Central repository" />
|
||||
<option name="url" value="https://repo1.maven.org/maven2" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="jboss.community" />
|
||||
<option name="name" value="JBoss Community repository" />
|
||||
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="MavenRepo" />
|
||||
<option name="name" value="MavenRepo" />
|
||||
<option name="url" value="https://repo.maven.apache.org/maven2/" />
|
||||
</remote-repository>
|
||||
</component>
|
||||
</project>
|
10
sem3/task-custom-make/Lab2/.idea/misc.xml
Normal file
10
sem3/task-custom-make/Lab2/.idea/misc.xml
Normal file
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="FrameworkDetectionExcludesConfiguration">
|
||||
<file type="web" url="file://$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
10
sem3/task-custom-make/Lab2/.idea/runConfigurations.xml
Normal file
10
sem3/task-custom-make/Lab2/.idea/runConfigurations.xml
Normal file
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RunConfigurationProducerService">
|
||||
<option name="ignoredProducers">
|
||||
<set>
|
||||
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
|
||||
</set>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
124
sem3/task-custom-make/Lab2/.idea/uiDesigner.xml
Normal file
124
sem3/task-custom-make/Lab2/.idea/uiDesigner.xml
Normal file
|
@ -0,0 +1,124 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Palette2">
|
||||
<group name="Swing">
|
||||
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
|
||||
</item>
|
||||
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
|
||||
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
|
||||
<initial-values>
|
||||
<property name="text" value="Button" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="RadioButton" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="CheckBox" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
|
||||
<initial-values>
|
||||
<property name="text" value="Label" />
|
||||
</initial-values>
|
||||
</item>
|
||||
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||
<preferred-size width="150" height="-1" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||
<preferred-size width="150" height="50" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||
<preferred-size width="200" height="200" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
|
||||
</item>
|
||||
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
|
||||
<preferred-size width="-1" height="20" />
|
||||
</default-constraints>
|
||||
</item>
|
||||
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
|
||||
</item>
|
||||
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
|
||||
</item>
|
||||
</group>
|
||||
</component>
|
||||
</project>
|
28
sem3/task-custom-make/Lab2/build.gradle
Normal file
28
sem3/task-custom-make/Lab2/build.gradle
Normal file
|
@ -0,0 +1,28 @@
|
|||
plugins {
|
||||
id 'java'
|
||||
}
|
||||
|
||||
group 'ru.erius'
|
||||
version '1.0'
|
||||
def pokemon = files('libs/Pokemon.jar')
|
||||
def main_class = group + '.lab2.Lab2'
|
||||
|
||||
dependencies {
|
||||
implementation pokemon
|
||||
}
|
||||
|
||||
jar {
|
||||
manifest {
|
||||
attributes 'Manifest-Version': '1.0', 'Main-Class': main_class
|
||||
}
|
||||
|
||||
from {
|
||||
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
|
||||
}
|
||||
}
|
||||
|
||||
compileJava.options.encoding = 'UTF-8'
|
||||
|
||||
tasks.withType(JavaCompile) {
|
||||
options.encoding = 'UTF-8'
|
||||
}
|
Binary file not shown.
185
sem3/task-custom-make/Lab2/gradlew
vendored
Normal file
185
sem3/task-custom-make/Lab2/gradlew
vendored
Normal file
|
@ -0,0 +1,185 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
#
|
||||
# Copyright 2015 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
## Gradle start up script for UN*X
|
||||
##
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
# Resolve links: $0 may be a link
|
||||
PRG="$0"
|
||||
# Need this for relative symlinks.
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG=`dirname "$PRG"`"/$link"
|
||||
fi
|
||||
done
|
||||
SAVED="`pwd`"
|
||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
||||
APP_HOME="`pwd -P`"
|
||||
cd "$SAVED" >/dev/null
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MSYS* | MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
NONSTOP* )
|
||||
nonstop=true
|
||||
;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD="java"
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
||||
MAX_FD_LIMIT=`ulimit -H -n`
|
||||
if [ $? -eq 0 ] ; then
|
||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||
MAX_FD="$MAX_FD_LIMIT"
|
||||
fi
|
||||
ulimit -n $MAX_FD
|
||||
if [ $? -ne 0 ] ; then
|
||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
||||
fi
|
||||
else
|
||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
||||
fi
|
||||
fi
|
||||
|
||||
# For Darwin, add options to specify how the application appears in the dock
|
||||
if $darwin; then
|
||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||
SEP=""
|
||||
for dir in $ROOTDIRSRAW ; do
|
||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
||||
SEP="|"
|
||||
done
|
||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
||||
# Add a user-defined pattern to the cygpath arguments
|
||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
||||
fi
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
i=0
|
||||
for arg in "$@" ; do
|
||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
||||
|
||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
||||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=`expr $i + 1`
|
||||
done
|
||||
case $i in
|
||||
0) set -- ;;
|
||||
1) set -- "$args0" ;;
|
||||
2) set -- "$args0" "$args1" ;;
|
||||
3) set -- "$args0" "$args1" "$args2" ;;
|
||||
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Escape application args
|
||||
save () {
|
||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||
echo " "
|
||||
}
|
||||
APP_ARGS=`save "$@"`
|
||||
|
||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
||||
|
||||
exec "$JAVACMD" "$@"
|
89
sem3/task-custom-make/Lab2/gradlew.bat
vendored
Normal file
89
sem3/task-custom-make/Lab2/gradlew.bat
vendored
Normal file
|
@ -0,0 +1,89 @@
|
|||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
2
sem3/task-custom-make/Lab2/settings.gradle
Normal file
2
sem3/task-custom-make/Lab2/settings.gradle
Normal file
|
@ -0,0 +1,2 @@
|
|||
rootProject.name = 'Lab2'
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
package ru.erius.lab2;
|
||||
|
||||
import ru.erius.lab2.pokemon.*;
|
||||
import ru.ifmo.se.pokemon.Battle;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class Lab2 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
List<Pokemon> allies = Arrays.asList(
|
||||
new Comfey("Лёха", 1),
|
||||
new Gligar("Олег", 1),
|
||||
new Gliscor("Акакий", 1)
|
||||
);
|
||||
List<Pokemon> foes = Arrays.asList(
|
||||
new Torchic("Гоша", 1),
|
||||
new Combusken("Николай", 1),
|
||||
new Blaziken("Владимир", 1)
|
||||
);
|
||||
Battle battle = new Battle();
|
||||
allies.forEach(battle::addAlly);
|
||||
foes.forEach(battle::addFoe);
|
||||
battle.go();
|
||||
}
|
||||
|
||||
private static int randLvl() {
|
||||
return (int) (Math.random() * 99.0D + 1.0D);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package ru.erius.lab2.move.physical;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class Bulldoze extends PhysicalMove {
|
||||
|
||||
private final static String NAME = "Bulldoze";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.GROUND;
|
||||
private final static double POWER = 60.0D, ACCURACY = 100.0D;
|
||||
|
||||
public Bulldoze() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyOppEffects(Pokemon pokemon) {
|
||||
pokemon.setMod(Stat.SPEED, -1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package ru.erius.lab2.move.physical;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class Facade extends PhysicalMove {
|
||||
|
||||
private final static String NAME = "Facade";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.NORMAL;
|
||||
private final static double POWER = 70.0D, ACCURACY = 100.0D;
|
||||
|
||||
public Facade() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calcBaseDamage(Pokemon pokemon, Pokemon pokemon1) {
|
||||
Status status = pokemon.getCondition();
|
||||
boolean hasRequiredStatus = status == Status.BURN || status == Status.POISON || status == Status.PARALYZE;
|
||||
int multiplier = hasRequiredStatus ? 2 : 1;
|
||||
return super.calcBaseDamage(pokemon, pokemon1) * multiplier;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package ru.erius.lab2.move.special;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class AirSlash extends SpecialMove {
|
||||
|
||||
private final static String NAME = "Air Slash";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.FLYING;
|
||||
private final static double POWER = 75.0D, ACCURACY = 95.0D;
|
||||
|
||||
public AirSlash() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyOppEffects(Pokemon pokemon) {
|
||||
if (Math.random() < 0.3D) Effect.flinch(pokemon);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package ru.erius.lab2.move.status;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class AquaRing extends StatusMove {
|
||||
|
||||
private final static String NAME = "Aqua Ring";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.WATER;
|
||||
private final static double POWER = 0.0D, ACCURACY = 100.0D;
|
||||
|
||||
public AquaRing() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applySelfEffects(Pokemon pokemon) {
|
||||
double maxHP = pokemon.getStat(Stat.HP);
|
||||
Effect waterVeil = new Effect().stat(Stat.HP, (int) -(maxHP/ 16)).turns(-1);
|
||||
pokemon.addEffect(waterVeil);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package ru.erius.lab2.move.status;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class Confide extends StatusMove {
|
||||
|
||||
private final static String NAME = "Confide";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.NORMAL;
|
||||
private final static double POWER = 0.0D, ACCURACY = 100.0D;
|
||||
|
||||
public Confide() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyOppEffects(Pokemon pokemon) {
|
||||
pokemon.setMod(Stat.SPECIAL_ATTACK, -1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package ru.erius.lab2.move.status;
|
||||
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.Stat;
|
||||
import ru.ifmo.se.pokemon.StatusMove;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
public class DoubleTeam extends StatusMove {
|
||||
|
||||
private final static String NAME = "Double Team";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.NORMAL;
|
||||
private final static double POWER = 0.0D, ACCURACY = 100.0D;
|
||||
|
||||
public DoubleTeam() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applySelfEffects(Pokemon pokemon) {
|
||||
pokemon.setMod(Stat.EVASION, 1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package ru.erius.lab2.move.status;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class Leer extends StatusMove {
|
||||
|
||||
private final static String NAME = "Leer";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.NORMAL;
|
||||
private final static double POWER = 0.0D, ACCURACY = 100.0D;
|
||||
|
||||
public Leer() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyOppEffects(Pokemon pokemon) {
|
||||
pokemon.setMod(Stat.DEFENSE, -1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package ru.erius.lab2.move.status;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class Rest extends StatusMove {
|
||||
|
||||
private final static String NAME = "Rest";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.PSYCHIC;
|
||||
private final static double POWER = 0.0D, ACCURACY = 100.0D;
|
||||
|
||||
private final static Effect SLEEP = new Effect().condition(Status.SLEEP).turns(2);
|
||||
|
||||
public Rest() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applySelfEffects(Pokemon pokemon) {
|
||||
double maxHP = pokemon.getStat(Stat.HP);
|
||||
double heal = maxHP - pokemon.getHP();
|
||||
pokemon.setMod(Stat.HP, (int) -heal);
|
||||
pokemon.addEffect(SLEEP);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package ru.erius.lab2.move.status;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class Supersonic extends StatusMove {
|
||||
|
||||
private final static String NAME = "Supersonic";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.NORMAL;
|
||||
private final static double POWER = 0.0D, ACCURACY = 55.0D;
|
||||
|
||||
public Supersonic() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyOppEffects(Pokemon pokemon) {
|
||||
Effect.confuse(pokemon);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package ru.erius.lab2.move.status;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class Swagger extends StatusMove {
|
||||
|
||||
private final static String NAME = "Swagger";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.NORMAL;
|
||||
private final static double POWER = 0.0D, ACCURACY = 85.0D;
|
||||
|
||||
public Swagger() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyOppEffects(Pokemon pokemon) {
|
||||
pokemon.setMod(Stat.ATTACK, 1);
|
||||
Effect.confuse(pokemon);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package ru.erius.lab2.pokemon;
|
||||
|
||||
import ru.erius.lab2.move.status.Swagger;
|
||||
import ru.ifmo.se.pokemon.Move;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class Blaziken extends Combusken {
|
||||
|
||||
protected final static String NAME = "Blaziken";
|
||||
protected final static List<Type> TYPES = Collections.emptyList();
|
||||
protected final static double
|
||||
HP = 60.0D, ATTACK = 85.0D, DEFENSE = 60.0D,
|
||||
SP_ATK = 85.0D, SP_DEF = 60.0D, SPEED = 55.0D;
|
||||
protected final static List<Move> MOVES = Collections.singletonList(new Swagger());
|
||||
|
||||
public Blaziken(String name, int lvl) {
|
||||
super(name, lvl);
|
||||
this.setStats(HP, ATTACK, DEFENSE, SP_ATK, SP_DEF, SPEED);
|
||||
TYPES.forEach(this::addType);
|
||||
MOVES.forEach(this::addMove);
|
||||
}
|
||||
|
||||
public Blaziken(int lvl) {
|
||||
super(lvl);
|
||||
}
|
||||
|
||||
public Blaziken() {
|
||||
super();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package ru.erius.lab2.pokemon;
|
||||
|
||||
import ru.erius.lab2.move.status.Supersonic;
|
||||
import ru.ifmo.se.pokemon.Move;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class Combusken extends Torchic {
|
||||
|
||||
protected final static String NAME = "Combusken";
|
||||
protected final static List<Type> TYPES = Collections.singletonList(Type.FIGHTING);
|
||||
protected final static double
|
||||
HP = 60.0D, ATTACK = 85.0D, DEFENSE = 60.0D,
|
||||
SP_ATK = 85.0D, SP_DEF = 60.0D, SPEED = 55.0D;
|
||||
protected final static List<Move> MOVES = Collections.singletonList(new Supersonic());
|
||||
|
||||
public Combusken(String name, int lvl) {
|
||||
super(name, lvl);
|
||||
this.setStats(HP, ATTACK, DEFENSE, SP_ATK, SP_DEF, SPEED);
|
||||
TYPES.forEach(this::addType);
|
||||
MOVES.forEach(this::addMove);
|
||||
}
|
||||
|
||||
public Combusken(int lvl) {
|
||||
super(lvl);
|
||||
}
|
||||
|
||||
public Combusken() {
|
||||
super();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
package ru.erius.lab2.pokemon;
|
||||
|
||||
import ru.erius.lab2.move.physical.Bulldoze;
|
||||
import ru.erius.lab2.move.special.AirSlash;
|
||||
import ru.erius.lab2.move.status.AquaRing;
|
||||
import ru.erius.lab2.move.status.Swagger;
|
||||
import ru.ifmo.se.pokemon.Move;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class Comfey extends Pokemon {
|
||||
|
||||
protected final static String NAME = "Comfey";
|
||||
protected final static List<Type> TYPES = Collections.singletonList(Type.FAIRY);
|
||||
protected final static double
|
||||
HP = 51.0D, ATTACK = 52.0D, DEFENSE = 90.0D,
|
||||
SP_ATK = 82.0D, SP_DEF = 110.0D, SPEED = 100.0D;
|
||||
protected final static List<Move> MOVES = Arrays.asList(new AirSlash(), new AquaRing(), new Swagger(), new Bulldoze());
|
||||
|
||||
public Comfey(String name, int lvl) {
|
||||
super(name, lvl);
|
||||
this.setStats(HP, ATTACK, DEFENSE, SP_ATK, SP_DEF, SPEED);
|
||||
TYPES.forEach(this::addType);
|
||||
MOVES.forEach(this::addMove);
|
||||
}
|
||||
|
||||
public Comfey(int lvl) {
|
||||
this(NAME, lvl);
|
||||
}
|
||||
|
||||
public Comfey() {
|
||||
this(NAME, 1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package ru.erius.lab2.pokemon;
|
||||
|
||||
import ru.erius.lab2.move.status.Confide;
|
||||
import ru.erius.lab2.move.physical.Facade;
|
||||
import ru.erius.lab2.move.status.Swagger;
|
||||
import ru.ifmo.se.pokemon.Move;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class Gligar extends Pokemon {
|
||||
|
||||
protected final static String NAME = "Gligar";
|
||||
protected final static List<Type> TYPES = Arrays.asList(Type.GROUND, Type.FLYING);
|
||||
protected final static double
|
||||
HP = 65.0D, ATTACK = 75.0D, DEFENSE = 105.0D,
|
||||
SP_ATK = 35.0D, SP_DEF = 65.0D, SPEED = 85.0D;
|
||||
protected final static List<Move> MOVES = Arrays.asList(new Swagger(), new Confide(), new Facade());
|
||||
|
||||
public Gligar(String name, int lvl) {
|
||||
super(name, lvl);
|
||||
this.setStats(HP, ATTACK, DEFENSE, SP_ATK, SP_DEF, SPEED);
|
||||
TYPES.forEach(this::addType);
|
||||
MOVES.forEach(this::addMove);
|
||||
}
|
||||
|
||||
public Gligar(int lvl) {
|
||||
this(NAME, lvl);
|
||||
}
|
||||
|
||||
public Gligar() {
|
||||
this(NAME, 1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package ru.erius.lab2.pokemon;
|
||||
|
||||
import ru.erius.lab2.move.status.Leer;
|
||||
import ru.ifmo.se.pokemon.Move;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class Gliscor extends Gligar {
|
||||
|
||||
protected final static String NAME = "Gliscor";
|
||||
protected final static List<Type> TYPES = Collections.emptyList();
|
||||
protected final static double
|
||||
HP = 75.0D, ATTACK = 95.0D, DEFENSE = 125.0D,
|
||||
SP_ATK = 45.0D, SP_DEF = 75.0D, SPEED = 95.0D;
|
||||
protected final static List<Move> MOVES = Collections.singletonList(new Leer());
|
||||
|
||||
public Gliscor(String name, int lvl) {
|
||||
super(name, lvl);
|
||||
this.setStats(HP, ATTACK, DEFENSE, SP_ATK, SP_DEF, SPEED);
|
||||
TYPES.forEach(this::addType);
|
||||
MOVES.forEach(this::addMove);
|
||||
}
|
||||
|
||||
public Gliscor(int lvl) {
|
||||
super(lvl);
|
||||
}
|
||||
|
||||
public Gliscor() {
|
||||
super();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package ru.erius.lab2.pokemon;
|
||||
|
||||
import ru.erius.lab2.move.status.DoubleTeam;
|
||||
import ru.erius.lab2.move.status.Rest;
|
||||
import ru.ifmo.se.pokemon.Move;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class Torchic extends Pokemon {
|
||||
|
||||
protected final static String NAME = "Torchic";
|
||||
protected final static List<Type> TYPES = Collections.singletonList(Type.FIRE);
|
||||
protected final static double
|
||||
HP = 45.0D, ATTACK = 60.0D, DEFENSE = 40.0D,
|
||||
SP_ATK = 70.0D, SP_DEF = 50.0D, SPEED = 45.0D;
|
||||
protected final static List<Move> MOVES = Arrays.asList(new DoubleTeam(), new Rest());
|
||||
|
||||
public Torchic(String name, int lvl) {
|
||||
super(name, lvl);
|
||||
this.setStats(HP, ATTACK, DEFENSE, SP_ATK, SP_DEF, SPEED);
|
||||
TYPES.forEach(this::addType);
|
||||
MOVES.forEach(this::addMove);
|
||||
}
|
||||
|
||||
public Torchic(int lvl) {
|
||||
this(NAME, lvl);
|
||||
}
|
||||
|
||||
public Torchic() {
|
||||
this(NAME, 1);
|
||||
}
|
||||
}
|
BIN
sem3/task-custom-make/lab2_prog.docx
Normal file
BIN
sem3/task-custom-make/lab2_prog.docx
Normal file
Binary file not shown.
0
sem3/task-custom-make/makefile
Normal file
0
sem3/task-custom-make/makefile
Normal file
BIN
sem3/task-custom-make/task/Pokemon.jar
Normal file
BIN
sem3/task-custom-make/task/Pokemon.jar
Normal file
Binary file not shown.
33
sem3/task-custom-make/task/code/ru/erius/lab2/Lab2.java
Normal file
33
sem3/task-custom-make/task/code/ru/erius/lab2/Lab2.java
Normal file
|
@ -0,0 +1,33 @@
|
|||
package ru.erius.lab2;
|
||||
|
||||
import ru.erius.lab2.pokemon.*;
|
||||
import ru.ifmo.se.pokemon.Battle;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class Lab2 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("test");
|
||||
List<Pokemon> allies = Arrays.asList(
|
||||
new Comfey("Лёха", 1),
|
||||
new Gligar("Олег", 1),
|
||||
new Gliscor("Акакий", 1)
|
||||
);
|
||||
List<Pokemon> foes = Arrays.asList(
|
||||
new Torchic("Гоша", 1),
|
||||
new Combusken("Николай", 1),
|
||||
new Blaziken("Владимир", 1)
|
||||
);
|
||||
Battle battle = new Battle();
|
||||
allies.forEach(battle::addAlly);
|
||||
foes.forEach(battle::addFoe);
|
||||
battle.go();
|
||||
}
|
||||
|
||||
private static int randLvl() {
|
||||
return (int) (Math.random() * 99.0D + 1.0D);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package ru.erius.lab2.move.physical;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class Bulldoze extends PhysicalMove {
|
||||
|
||||
private final static String NAME = "Bulldoze";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.GROUND;
|
||||
private final static double POWER = 60.0D, ACCURACY = 100.0D;
|
||||
|
||||
public Bulldoze() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyOppEffects(Pokemon pokemon) {
|
||||
pokemon.setMod(Stat.SPEED, -1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package ru.erius.lab2.move.physical;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class Facade extends PhysicalMove {
|
||||
|
||||
private final static String NAME = "Facade";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.NORMAL;
|
||||
private final static double POWER = 70.0D, ACCURACY = 100.0D;
|
||||
|
||||
public Facade() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calcBaseDamage(Pokemon pokemon, Pokemon pokemon1) {
|
||||
Status status = pokemon.getCondition();
|
||||
boolean hasRequiredStatus = status == Status.BURN || status == Status.POISON || status == Status.PARALYZE;
|
||||
int multiplier = hasRequiredStatus ? 2 : 1;
|
||||
return super.calcBaseDamage(pokemon, pokemon1) * multiplier;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package ru.erius.lab2.move.special;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class AirSlash extends SpecialMove {
|
||||
|
||||
private final static String NAME = "Air Slash";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.FLYING;
|
||||
private final static double POWER = 75.0D, ACCURACY = 95.0D;
|
||||
|
||||
public AirSlash() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyOppEffects(Pokemon pokemon) {
|
||||
if (Math.random() < 0.3D) Effect.flinch(pokemon);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package ru.erius.lab2.move.status;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class AquaRing extends StatusMove {
|
||||
|
||||
private final static String NAME = "Aqua Ring";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.WATER;
|
||||
private final static double POWER = 0.0D, ACCURACY = 100.0D;
|
||||
|
||||
public AquaRing() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applySelfEffects(Pokemon pokemon) {
|
||||
double maxHP = pokemon.getStat(Stat.HP);
|
||||
Effect waterVeil = new Effect().stat(Stat.HP, (int) -(maxHP/ 16)).turns(-1);
|
||||
pokemon.addEffect(waterVeil);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package ru.erius.lab2.move.status;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class Confide extends StatusMove {
|
||||
|
||||
private final static String NAME = "Confide";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.NORMAL;
|
||||
private final static double POWER = 0.0D, ACCURACY = 100.0D;
|
||||
|
||||
public Confide() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyOppEffects(Pokemon pokemon) {
|
||||
pokemon.setMod(Stat.SPECIAL_ATTACK, -1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package ru.erius.lab2.move.status;
|
||||
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.Stat;
|
||||
import ru.ifmo.se.pokemon.StatusMove;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
public class DoubleTeam extends StatusMove {
|
||||
|
||||
private final static String NAME = "Double Team";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.NORMAL;
|
||||
private final static double POWER = 0.0D, ACCURACY = 100.0D;
|
||||
|
||||
public DoubleTeam() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applySelfEffects(Pokemon pokemon) {
|
||||
pokemon.setMod(Stat.EVASION, 1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package ru.erius.lab2.move.status;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class Leer extends StatusMove {
|
||||
|
||||
private final static String NAME = "Leer";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.NORMAL;
|
||||
private final static double POWER = 0.0D, ACCURACY = 100.0D;
|
||||
|
||||
public Leer() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyOppEffects(Pokemon pokemon) {
|
||||
pokemon.setMod(Stat.DEFENSE, -1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package ru.erius.lab2.move.status;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class Rest extends StatusMove {
|
||||
|
||||
private final static String NAME = "Rest";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.PSYCHIC;
|
||||
private final static double POWER = 0.0D, ACCURACY = 100.0D;
|
||||
|
||||
private final static Effect SLEEP = new Effect().condition(Status.SLEEP).turns(2);
|
||||
|
||||
public Rest() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applySelfEffects(Pokemon pokemon) {
|
||||
double maxHP = pokemon.getStat(Stat.HP);
|
||||
double heal = maxHP - pokemon.getHP();
|
||||
pokemon.setMod(Stat.HP, (int) -heal);
|
||||
pokemon.addEffect(SLEEP);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package ru.erius.lab2.move.status;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class Supersonic extends StatusMove {
|
||||
|
||||
private final static String NAME = "Supersonic";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.NORMAL;
|
||||
private final static double POWER = 0.0D, ACCURACY = 55.0D;
|
||||
|
||||
public Supersonic() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyOppEffects(Pokemon pokemon) {
|
||||
Effect.confuse(pokemon);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package ru.erius.lab2.move.status;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class Swagger extends StatusMove {
|
||||
|
||||
private final static String NAME = "Swagger";
|
||||
private final static String MESSAGE = "использует " + NAME;
|
||||
private final static Type TYPE = Type.NORMAL;
|
||||
private final static double POWER = 0.0D, ACCURACY = 85.0D;
|
||||
|
||||
public Swagger() {
|
||||
super(TYPE, POWER, ACCURACY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String describe() {
|
||||
return MESSAGE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyOppEffects(Pokemon pokemon) {
|
||||
pokemon.setMod(Stat.ATTACK, 1);
|
||||
Effect.confuse(pokemon);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package ru.erius.lab2.pokemon;
|
||||
|
||||
import ru.erius.lab2.move.status.Swagger;
|
||||
import ru.ifmo.se.pokemon.Move;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class Blaziken extends Combusken {
|
||||
|
||||
protected final static String NAME = "Blaziken";
|
||||
protected final static List<Type> TYPES = Collections.emptyList();
|
||||
protected final static double
|
||||
HP = 60.0D, ATTACK = 85.0D, DEFENSE = 60.0D,
|
||||
SP_ATK = 85.0D, SP_DEF = 60.0D, SPEED = 55.0D;
|
||||
protected final static List<Move> MOVES = Collections.singletonList(new Swagger());
|
||||
|
||||
public Blaziken(String name, int lvl) {
|
||||
super(name, lvl);
|
||||
this.setStats(HP, ATTACK, DEFENSE, SP_ATK, SP_DEF, SPEED);
|
||||
TYPES.forEach(this::addType);
|
||||
MOVES.forEach(this::addMove);
|
||||
}
|
||||
|
||||
public Blaziken(int lvl) {
|
||||
super(lvl);
|
||||
}
|
||||
|
||||
public Blaziken() {
|
||||
super();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package ru.erius.lab2.pokemon;
|
||||
|
||||
import ru.erius.lab2.move.status.Supersonic;
|
||||
import ru.ifmo.se.pokemon.Move;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class Combusken extends Torchic {
|
||||
|
||||
protected final static String NAME = "Combusken";
|
||||
protected final static List<Type> TYPES = Collections.singletonList(Type.FIGHTING);
|
||||
protected final static double
|
||||
HP = 60.0D, ATTACK = 85.0D, DEFENSE = 60.0D,
|
||||
SP_ATK = 85.0D, SP_DEF = 60.0D, SPEED = 55.0D;
|
||||
protected final static List<Move> MOVES = Collections.singletonList(new Supersonic());
|
||||
|
||||
public Combusken(String name, int lvl) {
|
||||
super(name, lvl);
|
||||
this.setStats(HP, ATTACK, DEFENSE, SP_ATK, SP_DEF, SPEED);
|
||||
TYPES.forEach(this::addType);
|
||||
MOVES.forEach(this::addMove);
|
||||
}
|
||||
|
||||
public Combusken(int lvl) {
|
||||
super(lvl);
|
||||
}
|
||||
|
||||
public Combusken() {
|
||||
super();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
package ru.erius.lab2.pokemon;
|
||||
|
||||
import ru.erius.lab2.move.physical.Bulldoze;
|
||||
import ru.erius.lab2.move.special.AirSlash;
|
||||
import ru.erius.lab2.move.status.AquaRing;
|
||||
import ru.erius.lab2.move.status.Swagger;
|
||||
import ru.ifmo.se.pokemon.Move;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class Comfey extends Pokemon {
|
||||
|
||||
protected final static String NAME = "Comfey";
|
||||
protected final static List<Type> TYPES = Collections.singletonList(Type.FAIRY);
|
||||
protected final static double
|
||||
HP = 51.0D, ATTACK = 52.0D, DEFENSE = 90.0D,
|
||||
SP_ATK = 82.0D, SP_DEF = 110.0D, SPEED = 100.0D;
|
||||
protected final static List<Move> MOVES = Arrays.asList(new AirSlash(), new AquaRing(), new Swagger(), new Bulldoze());
|
||||
|
||||
public Comfey(String name, int lvl) {
|
||||
super(name, lvl);
|
||||
this.setStats(HP, ATTACK, DEFENSE, SP_ATK, SP_DEF, SPEED);
|
||||
TYPES.forEach(this::addType);
|
||||
MOVES.forEach(this::addMove);
|
||||
}
|
||||
|
||||
public Comfey(int lvl) {
|
||||
this(NAME, lvl);
|
||||
}
|
||||
|
||||
public Comfey() {
|
||||
this(NAME, 1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package ru.erius.lab2.pokemon;
|
||||
|
||||
import ru.erius.lab2.move.status.Confide;
|
||||
import ru.erius.lab2.move.physical.Facade;
|
||||
import ru.erius.lab2.move.status.Swagger;
|
||||
import ru.ifmo.se.pokemon.Move;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class Gligar extends Pokemon {
|
||||
|
||||
protected final static String NAME = "Gligar";
|
||||
protected final static List<Type> TYPES = Arrays.asList(Type.GROUND, Type.FLYING);
|
||||
protected final static double
|
||||
HP = 65.0D, ATTACK = 75.0D, DEFENSE = 105.0D,
|
||||
SP_ATK = 35.0D, SP_DEF = 65.0D, SPEED = 85.0D;
|
||||
protected final static List<Move> MOVES = Arrays.asList(new Swagger(), new Confide(), new Facade());
|
||||
|
||||
public Gligar(String name, int lvl) {
|
||||
super(name, lvl);
|
||||
this.setStats(HP, ATTACK, DEFENSE, SP_ATK, SP_DEF, SPEED);
|
||||
TYPES.forEach(this::addType);
|
||||
MOVES.forEach(this::addMove);
|
||||
}
|
||||
|
||||
public Gligar(int lvl) {
|
||||
this(NAME, lvl);
|
||||
}
|
||||
|
||||
public Gligar() {
|
||||
this(NAME, 1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package ru.erius.lab2.pokemon;
|
||||
|
||||
import ru.erius.lab2.move.status.Leer;
|
||||
import ru.ifmo.se.pokemon.Move;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class Gliscor extends Gligar {
|
||||
|
||||
protected final static String NAME = "Gliscor";
|
||||
protected final static List<Type> TYPES = Collections.emptyList();
|
||||
protected final static double
|
||||
HP = 75.0D, ATTACK = 95.0D, DEFENSE = 125.0D,
|
||||
SP_ATK = 45.0D, SP_DEF = 75.0D, SPEED = 95.0D;
|
||||
protected final static List<Move> MOVES = Collections.singletonList(new Leer());
|
||||
|
||||
public Gliscor(String name, int lvl) {
|
||||
super(name, lvl);
|
||||
this.setStats(HP, ATTACK, DEFENSE, SP_ATK, SP_DEF, SPEED);
|
||||
TYPES.forEach(this::addType);
|
||||
MOVES.forEach(this::addMove);
|
||||
}
|
||||
|
||||
public Gliscor(int lvl) {
|
||||
super(lvl);
|
||||
}
|
||||
|
||||
public Gliscor() {
|
||||
super();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package ru.erius.lab2.pokemon;
|
||||
|
||||
import ru.erius.lab2.move.status.DoubleTeam;
|
||||
import ru.erius.lab2.move.status.Rest;
|
||||
import ru.ifmo.se.pokemon.Move;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class Torchic extends Pokemon {
|
||||
|
||||
protected final static String NAME = "Torchic";
|
||||
protected final static List<Type> TYPES = Collections.singletonList(Type.FIRE);
|
||||
protected final static double
|
||||
HP = 45.0D, ATTACK = 60.0D, DEFENSE = 40.0D,
|
||||
SP_ATK = 70.0D, SP_DEF = 50.0D, SPEED = 45.0D;
|
||||
protected final static List<Move> MOVES = Arrays.asList(new DoubleTeam(), new Rest());
|
||||
|
||||
public Torchic(String name, int lvl) {
|
||||
super(name, lvl);
|
||||
this.setStats(HP, ATTACK, DEFENSE, SP_ATK, SP_DEF, SPEED);
|
||||
TYPES.forEach(this::addType);
|
||||
MOVES.forEach(this::addMove);
|
||||
}
|
||||
|
||||
public Torchic(int lvl) {
|
||||
this(NAME, lvl);
|
||||
}
|
||||
|
||||
public Torchic() {
|
||||
this(NAME, 1);
|
||||
}
|
||||
}
|
BIN
sem3/task-custom-make/task/compiled/ru/erius/lab2/Lab2.class
Normal file
BIN
sem3/task-custom-make/task/compiled/ru/erius/lab2/Lab2.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue