public class Attack
{
public int getDamage(){
return(0);
}
public String getMessage(){
return("Ataque");
}
}
public class BackBreaker extends Attack
{
int Quebradora;
BackBreaker(int b){
this.Quebradora=b;
}
public int getDamage(){
return(40);
}
public String getMessage(){
return("Back Breaker");
}
}
public abstract class Character
{
public void init (String name){//, Attack a, Special s, Heal h, Shield sh){
}
/*
public void attack(Character enemy){
}
public void special(Character enemy){
}
public void heal(){
}
public int shield(int hp){
}
public Character clone(){
}
*/
}
public class Especial
{
}
public class Fireball extends Attack
{
int Bola;
Fireball(int a){
this.Bola=a;
}
public int getDamage(){
return(25);
}
public String getMessage(){
return("Fireball");
}
}
public class FlyingKck extends Attack
{
int Voladora;
FlyingKck (int a){
this.Voladora=a;
}
public int getDamage(){
return(15);
}
public String getMessage(){
return("Flying Kick");
}
}
public class HammerSmash extends Attack
{
int Martillo;
HammerSmash(int a){
this.Martillo=a;
}
public int getDamage(){
return(35);
}
public String getMessage(){
return("Hammer Smash");
}
}
public class Kick extends Attack
{
int Patada;
Kick(int a){
this.Patada=a;
}
public int getDamage(){
return(10);
}
public String getMessage(){
return("Kick");
}
}
public class Lightning extends Attack
{
int Rayo;
Lightning(int a){
this.Rayo=a;
}
public int getDamage(){
return(30);
}
public String getMessage(){
return("Lightning");
}
}
public class Luchadores extends Character
{
String Nombre;
int Hp ;
Luchadores(){
this.Hp=100;
this.Nombre="";
}
}
public class Punch extends Attack
{
int Combo;
Punch(int a){
this.Combo=a;
}
public int getDamage(){
return(8);
}
public String getMessage(){
return("Punch");
}
}
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
class Smash {
static void prt(String s){
System.out.println(s);
}
//aki hay que hacerle k devuelva un character
public static void ExtraeDatos(String Datos, int nWarros){
StringTokenizer Tokens = new StringTokenizer(Datos," ");
int count=Tokens.countTokens();
int i=0;
String[] toks = new String[count];
while(Tokens.hasMoreTokens()){
toks[i]=Tokens.nextToken();
i=i+1;
}
String Nombre = toks[0];
Attack Ataque;
switch(Integer.parseInt(toks[1])){
case 0:
Ataque = new Punch(Integer.parseInt(toks[1]));
break;
case 1:
Ataque = new Kick(Integer.parseInt(toks[1]));
break;
case 2:
Ataque = new FlyingKck(Integer.parseInt(toks[1]));
break;
case 3:
Ataque = new Sword(Integer.parseInt(toks[1]));
break;
case 4:
Ataque = new Fireball(Integer.parseInt(toks[1]));
break;
case 5:
Ataque = new Lightning(Integer.parseInt(toks[1]));
break;
case 6:
Ataque = new HammerSmash(Integer.parseInt(toks[1]));
break;
case 7:
Ataque = new BackBreaker(Integer.parseInt(toks[1]));
break;
default:
Ataque = new Punch(Integer.parseInt(toks[1]));
}
Character Warrior = new Luchadores();
Warrior.init(Nombre);
prt(Nombre);
prt(Ataque.getMessage());
}
public static void CapturaPeleadores(int N_Peleadores){
int i=0;
try {
BufferedReader get = new BufferedReader(new InputStreamReader(System.in));
String DatosPeleador="";
for(i=0;i<N_Peleadores;i++){
DatosPeleador=get.readLine();
ExtraeDatos(DatosPeleador,N_Peleadores); // esto hay que lo meta en el arreglo de caracteres
}
}catch (IOException e){
e.printStackTrace();
}
}
public static void main( String args[] ){
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String Peleadores = "";
while (Peleadores != null) {
CapturaPeleadores(Integer.parseInt(in.readLine()));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/*tips
Poligono s = new Cuadrado donde los dos tienen los metodos con igual nombre...
3ro ver el numero de combates
4to ver kienes pelean en tal combate y hacerlos pelear
tirar el output de las peleas
*/
public class Sword extends Attack
{
int Espada;
Sword(int a){
this.Espada=a;
}
public int getDamage(){
return(20);
}
public String getMessage(){
return("Sword Attack");
}
}