Príloha 4 – druhá fáza textového projektu
Prevziať
public class VlkKozaKapusta extends Vstup
{
private final String[] ľavýBreh = {"nič", "nič", "nič"};
private final String[] pravýBreh = {"vlk", "koza", "kapusta"};
private boolean prievozníkJeNaPravomBrehu = true;
private VlkKozaKapusta()
{
String príkaz;
vypíšStav();
príkaz = načítajReťazec("Čo má prievozník previezť?");
prevez(príkaz);
vypíšStav();
}
private void vypíšStav()
{
System.out.print("\nNa ľavom brehu je: ");
if (!prievozníkJeNaPravomBrehu)
{
System.out.print(" [prievozník]");
}
for (int i = 0; i < ľavýBreh.length; ++i)
{
if (!ľavýBreh[i].equals("nič"))
{
System.out.print(" " + ľavýBreh[i]);
}
}
System.out.print("\nNa pravom brehu je: ");
if (prievozníkJeNaPravomBrehu)
{
System.out.print(" [prievozník]");
}
for (int i = 0; i < pravýBreh.length; ++i)
{
if (!pravýBreh[i].equals("nič"))
{
System.out.print(" " + pravýBreh[i]);
}
}
System.out.println();
}
private int nájdiNaPravomBrehu(String čo)
{
for (int i = 0; i < pravýBreh.length; ++i)
{
if (čo.equalsIgnoreCase(pravýBreh[i])) return i;
}
return -1;
}
private int nájdiNaĽavomBrehu(String čo)
{
for (int i = 0; i < ľavýBreh.length; ++i)
{
if (čo.equalsIgnoreCase(ľavýBreh[i])) return i;
}
return -1;
}
private void prevez(String čo)
{
if (prievozníkJeNaPravomBrehu)
{
int i = nájdiNaPravomBrehu(čo);
int j = nájdiNaĽavomBrehu("nič");
if (i == -1)
{
System.out.println("Na ľavom brehu nie je " + čo + ".");
}
else if (j == -1)
{
System.out.println("Na pravom brehu nie je voľné miesto.");
}
else
{
ľavýBreh[j] = pravýBreh[i];
pravýBreh[i] = "nič";
prievozníkJeNaPravomBrehu = !prievozníkJeNaPravomBrehu;
}
}
else
{
int i = nájdiNaĽavomBrehu(čo);
int j = nájdiNaPravomBrehu("nič");
if (i == -1)
{
System.out.println("Na pravom brehu nie je " + čo + ".");
}
else if (j == -1)
{
System.out.println("Na ľavom brehu nie je voľné miesto.");
}
else
{
pravýBreh[j] = ľavýBreh[i];
ľavýBreh[i] = "nič";
prievozníkJeNaPravomBrehu = !prievozníkJeNaPravomBrehu;
}
}
}
public static void main(String[] args)
{
new VlkKozaKapusta();
}
}