import java.util.Scanner;
import java.util.Random;
public class TimedScanner implements Runnable
{
private Scanner scanner;
private StringBuilder buffer;
private boolean reading;
static Thread t;
public TimedScanner()
{
scanner = new Scanner(System.in);
buffer = new StringBuilder();
reading = false;
t = new Thread(this);
t.setDaemon(true);
t.start();
}
public String nextLine(long time)
{
reading = true;
String result = null;
long startTime = System.currentTimeMillis();
while (System.currentTimeMillis() - startTime < time && result == null)
{
try
{
Thread.sleep(30);
}
catch (InterruptedException e)
{
}
synchronized (buffer)
{
if (buffer.length() > 0)
{
Scanner temp = new Scanner(buffer.toString());
result = temp.nextLine();
}
}
}
t.interrupt();
reading = false;
return result;
}
@Override
public void run()
{
while (scanner.hasNextLine())
{
String line = scanner.nextLine();
synchronized (buffer)
{
if (reading)
{
buffer.append(line);
buffer.append("\n");
}
else
{
// flush the buffer
if (buffer.length() != 0)
{
buffer.delete(0, buffer.length());
}
}
}
}
}
}
public class Solitaire {
private static int etapeSaisieJeu;
private static int getRandomInt(int limite) {
return (new Random()).nextInt(limite) ;
}
private static int resultatSaisieUtilisateur()
{
int res = -2;
long tempsDebut = System.currentTimeMillis();
switch(etapeSaisieJeu)
{
case 1 : res = fiabilisationSaisie(1,2,3,-1,-1,-1,-1,-1,-1); break;
case 2 : res = fiabilisationSaisie(1,2,-1,-1,-1,-1,-1,-1,-1);break;
case 3 :if(typePlateau == 1)
{
res = fiabilisationSaisie(0,1,2,3,4,5,6,-1,-1);
}
else if(typePlateau == 2)
{
res = fiabilisationSaisie(0,1,2,3,4,5,6,7,-1);
}
else
{
res = fiabilisationSaisie(0,1,2,3,4,5,6,7,8);
}
break;
case 4 : res = fiabilisationSaisie(2,4,6,8,-1,-1,-1,-1,-1);break;
default : break;
}
long tempsFin = System.currentTimeMillis();
calculDifferenceDeTemps(tempsFin,tempsDebut,0);
return res;
}
private static int fiabilisationSaisie(int valeurAttendue1,int valeurAttendue2,int valeurAttendue3,int valeurAttendue4,int valeurAttendue5,int valeurAttendue6,int valeurAttendue7,int valeurAttendue8,int valeurAttendue9)
{
int res = -2;
try
{
//TimedScanner scanner = new TimedScanner();
//String lettre = scanner.nextLine(10000);
Scanner sc = new Scanner(System.in);
String lettre = sc.nextLine();
System.out.println("a"+lettre+"a");
if (lettre == null)
{
System.out.println("More faster, next time");
res = correctionSaisie(valeurAttendue1,valeurAttendue2,valeurAttendue3,valeurAttendue4,valeurAttendue5,valeurAttendue6,valeurAttendue7,valeurAttendue8,valeurAttendue9);
}
else
{
res = elementAUnePositiondonnee(lettre,0);
//TimedScanner.t.interrupt();
}
}
catch (java.lang.StringIndexOutOfBoundsException exception)
{
}
return res;
}
private static int correctionSaisie(int valeurAttendue1,int valeurAttendue2,int valeurAttendue3,int valeurAttendue4,int valeurAttendue5,int valeurAttendue6,int valeurAttendue7,int valeurAttendue8,int valeurAttendue9)
{
int res = -1;
int max = Math.max(valeurAttendue1, Math.max(valeurAttendue2, Math.max(valeurAttendue3,Math.max(valeurAttendue4,Math.max(valeurAttendue5, Math.max(valeurAttendue6,Math.max(valeurAttendue7,Math.max(valeurAttendue8,valeurAttendue9))))))));
if ((res != valeurAttendue1) || (res != valeurAttendue2) || (res != valeurAttendue3) || (res != valeurAttendue4) || (res != valeurAttendue5) || (res != valeurAttendue6) || (res != valeurAttendue7) || (res != valeurAttendue8) || (res != valeurAttendue9))
{
res = getRandomInt(max);
}
return res;
}
public static void main (String[] args)
{
int res = -2;
etapeSaisieJeu = 1
res= resultatSaisieUtilisateur();
System.out.println(res);
etapeSaisieJeu = 2
res= resultatSaisieUtilisateur();
System.out.println(res);
etapeSaisieJeu = 3
res= resultatSaisieUtilisateur();
System.out.println(res);
etapeSaisieJeu = 4
res= resultatSaisieUtilisateur();
System.out.println(res);
}
}