It appears there is no easy way of doing this, but this is what i've done so far and if someone could correct it to make it work that would be great. At "newarray [e] = array [i].intValue ();" i get an error "No method named "intValue" was found in type "java.lang.Object"." Help!
/*
Description: A game that displays digits 0-9 and asks the user for a number N.
It then reverses the first N numbers of the sequence. It continues this until
all of the numbers are in order.
numbers
*/
import hsa.Console;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Arrays;
public class ReversalGame3test
{
static Console c;
public static void main (String[] args)
{
c = new Console ();
c.println ("3. REVERSAL GAME");
c.println ("");
c.println ("Displayed below are the digits 0-9 in random order. You must then enter a");
c.println ("number N after which the computer will reverse the first N numbers in the");
c.println ("sequence. The goal of this game is to sort all of the numbers in the fewest");
c.println ("number of reversals.");
c.println (""); //introduction
List numbers = new ArrayList ();
numbers.add ("0");
numbers.add ("1");
numbers.add ("2");
numbers.add ("3");
numbers.add ("4");
numbers.add ("5");
numbers.add ("6");
numbers.add ("7");
numbers.add ("8");
numbers.add ("9");
Collections.shuffle (numbers);
Object[] array = numbers.toArray (new String [10]); // declares + shuffles numbers and converts them to array
c.print ("Random Order: ");
for (int i = 0 ; i < 10 ; i++)
{
c.print ((array [i]) + " ");
}
c.println ("");
boolean check = false;
boolean check2 = false;
String NS;
int N = 0;
int count = 0;
int e = -1;
int[] newarray = new int [10];
//INPUT
do
{
c.print ("Enter a number: ");
NS = c.readString ();
count += 1;
check = isInteger (NS);
if (check == true)
{
N = Integer.parseInt (NS);
if (N < 1 || N > 10)
{
check = false;
c.println ("ERROR - INPUT NOT VALID");
c.println ("");
}
else
{
c.print ("Next Order: ");
for (int i = N - 1 ; i > -1 ; i--)
{
e += 1;
newarray [e] = array [i].intValue ();
c.print ((newarray [e]) + " ");
}
for (int i = N ; i < 10 ; i++)
{
e += 1;
newarray [e] = array [i].intValue ();
c.print ((newarray [e]) + " ");
}
check2 = sorted (newarray);
} // rearranges numbers if valid
} // checks if N is valid number
}
while (check == false);
} // main method
public static boolean isInteger (String input)
{
try
{
Integer.parseInt (input);
return true;
}
catch (NumberFormatException nfe)
{
return false;
}
} //isInteger method
public static boolean sorted (int array[])
{
boolean isSorted = false;
for (int i = 0 ; i < 10 ; i++)
{
if (array [i] < array [i + 1])
{
isSorted = true;
}
else if (array [i] > array [i + 1])
{
isSorted = true;
}
else
isSorted = false;
if (isSorted != true)
return isSorted;
}
return isSorted;
} // sorted method
}
Object
in the first place? – Diego Basch Jan 16 at 3:23Integer
. – Diego Basch Jan 16 at 23:23