All pastes #402348 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-03-19 21:20 UTC
rendered paste body
import java.util.Scanner; // Needed for Scanner class
import java.io.*;         // Needed for file classes

public class KeyStream{
 private int[] keys;
 private int[] cards;

 public KeyStream(int lengthOfMessage) throws IOException
 {
   cards = new int[28];
   
   Scanner keyboard = new Scanner(System.in);      
   System.out.println("Enter file name of deck of cards:");
   String fileName = keyboard.nextLine();
   
   
   
    FileReader freader = new FileReader(fileName);
    BufferedReader inputFile = new BufferedReader(freader);
      //System.out.println(Integer.parseInt(inputFile.readLine()));
    cards[0] = Integer.parseInt(inputFile.readLine());
    cards[1] = Integer.parseInt(inputFile.readLine());
    cards[2] = Integer.parseInt(inputFile.readLine());
    cards[3] = Integer.parseInt(inputFile.readLine());
    cards[4] = Integer.parseInt(inputFile.readLine());
    cards[5] = Integer.parseInt(inputFile.readLine());
    cards[6] = Integer.parseInt(inputFile.readLine());
    cards[7] = Integer.parseInt(inputFile.readLine());
    cards[8] = Integer.parseInt(inputFile.readLine());
    cards[9] = Integer.parseInt(inputFile.readLine());
    cards[10] = Integer.parseInt(inputFile.readLine());
    cards[11] = Integer.parseInt(inputFile.readLine());
    cards[12] = Integer.parseInt(inputFile.readLine());
    cards[13] = Integer.parseInt(inputFile.readLine());
    cards[14] = Integer.parseInt(inputFile.readLine());
    cards[15] = Integer.parseInt(inputFile.readLine());
    cards[16] = Integer.parseInt(inputFile.readLine());
    cards[17] = Integer.parseInt(inputFile.readLine());
    cards[18] = Integer.parseInt(inputFile.readLine());
    cards[19] = Integer.parseInt(inputFile.readLine());
    cards[20] = Integer.parseInt(inputFile.readLine());
    cards[21] = Integer.parseInt(inputFile.readLine());
    cards[22] = Integer.parseInt(inputFile.readLine());
    cards[23] = Integer.parseInt(inputFile.readLine());
    cards[24] = Integer.parseInt(inputFile.readLine());
    cards[25] = Integer.parseInt(inputFile.readLine());
    cards[26] = Integer.parseInt(inputFile.readLine());
    cards[27] = Integer.parseInt(inputFile.readLine());
    
    inputFile.close();
    
    keys = new int[lengthOfMessage]; //allocate memory for the cards
         //prompt the user for the name of the file containing
         //the deck of cards (created by the Deck class).
         //read the cards from this file into the cards[] array.
         //allocate memory for the keys[] array (remember its size
         //is determined by the message’s length).
         //generate the keys.
   
       
  
     }

      public void swapJokerA()
      {
         //step 1 in manipulating cards[] array.
      int cardHolder = 0;
        if(cards[0] == 27)
        {
          cardHolder = cards[1];
          cards[1] = cards[0];
          cards[0] = cardHolder;
        }    
        else if(cards[1] == 27)
        {
          cardHolder = cards[2];
          cards[2] = cards[1];
          cards[1] = cardHolder;
        }
        else if(cards[2] == 27)
        {
          cardHolder = cards[3];
          cards[3] = cards[2];
          cards[2] = cardHolder;
        }
        else if(cards[3] == 27)
        {
          cardHolder = cards[4];
          cards[4] = cards[3];
          cards[3] = cardHolder;
        }
        else if(cards[4] == 27)
        {
          cardHolder = cards[5];
          cards[5] = cards[4];
          cards[4] = cardHolder;
        }
        else if(cards[5] == 27)
        {
          cardHolder = cards[6];
          cards[6] = cards[5];
          cards[5] = cardHolder;
        } 
        else if(cards[6] == 27)
        {
          cardHolder = cards[7];
          cards[7] = cards[6];
          cards[6] = cardHolder;
        }
        else if(cards[7] == 27)
        {
          cardHolder = cards[8];
          cards[8] = cards[7];
          cards[7] = cardHolder;
        }  
        else if(cards[8] == 27)
        {
          cardHolder = cards[9];
          cards[9] = cards[8];
          cards[8] = cardHolder;
        }
        else if(cards[9] == 27)
        {
          cardHolder = cards[10];
          cards[10] = cards[9];
          cards[9] = cardHolder;
        }      
        else if(cards[10] == 27)
        {
          cardHolder = cards[11];
          cards[11] = cards[10];
          cards[10] = cardHolder;
        }
        else if(cards[11] == 27)
        {
          cardHolder = cards[12];
          cards[12] = cards[11];
          cards[11] = cardHolder;
        }
        else if(cards[12] == 27)
        {
          cardHolder = cards[13];
          cards[13] = cards[12];
          cards[12] = cardHolder;
        }
        else if(cards[13] == 27)
        {
          cardHolder = cards[14];
          cards[14] = cards[13];
          cards[13] = cardHolder;
        }
        else if(cards[14] == 27)
        {
          cardHolder = cards[15];
          cards[15] = cards[14];
          cards[14] = cardHolder;
        }
        else if(cards[15] == 27)
        {
          cardHolder = cards[16];
          cards[16] = cards[15];
          cards[15] = cardHolder;
        }  
        else if(cards[16] == 27)
        {
          cardHolder = cards[17];
          cards[17] = cards[16];
          cards[16] = cardHolder;
        }
        else if(cards[17] == 27)
        {
          cardHolder = cards[18];
          cards[18] = cards[17];
          cards[17] = cardHolder;
        }
        else if(cards[18] == 27)
        {
          cardHolder = cards[19];
          cards[19] = cards[18];
          cards[18] = cardHolder;
        }
        else if(cards[19] == 27)
        {
          cardHolder = cards[20];
          cards[20] = cards[19];
          cards[19] = cardHolder;
        }
        else if(cards[20] == 27)
        {
          cardHolder = cards[21];
          cards[21] = cards[20];
          cards[20] = cardHolder;
        }
        else if(cards[21] == 27)
        {
          cardHolder = cards[22];
          cards[22] = cards[21];
          cards[21] = cardHolder;
        }
        else if(cards[22] == 27)
        {
          cardHolder = cards[23];
          cards[23] = cards[22];
          cards[22] = cardHolder;
        }
          else if(cards[23] == 27)
        {
          cardHolder = cards[24];
          cards[24] = cards[23];
          cards[23] = cardHolder;
        }
        else if(cards[24] == 27)
        {
          cardHolder = cards[25];
          cards[25] = cards[24];
          cards[24] = cardHolder;
        }
        else if(cards[25] == 27)
        {
          cardHolder = cards[26];
          cards[25] = cards[25];
          cards[25] = cardHolder;
        }
        else if(cards[26] == 27)
        {
          cardHolder = cards[27];
          cards[27] = cards[26];
          cards[26] = cardHolder;
        }
        else
        {
          cardHolder = cards[0];
          cards[0] = cards[27];
          cards[27] = cardHolder;
        }
      }

      public void moveJokerB(){
         //step 2 in manipulating cards[] array.
        int cardHolder1 = 0;
        int cardHolder2 = 0;
        if(cards[0] == 28)
        {
          cardHolder1 = cards[1];
          cardHolder2 = cards[2];
          cards[2] = cards[0];
          cards[1] = cardHolder2;
          cards[0] = cardHolder1;
        }         
        else if(cards[1] == 28)
        {
          cardHolder1 = cards[2];
          cardHolder2 = cards[3];
          cards[3] = cards[1];
          cards[2] = cardHolder2;
          cards[1] = cardHolder1;
        }
        else if(cards[2] == 28)
        {
          cardHolder1 = cards[3];
          cardHolder2 = cards[4];
          cards[4] = cards[2];
          cards[3] = cardHolder2;
          cards[2] = cardHolder1;
        }
        else if(cards[3] == 28)
        {
          cardHolder1 = cards[4];
          cardHolder2 = cards[5];
          cards[5] = cards[3];
          cards[4] = cardHolder2;
          cards[3] = cardHolder1;
        }
        else if(cards[4] == 28)
        {
          cardHolder1 = cards[5];
          cardHolder2 = cards[6];
          cards[6] = cards[4];
          cards[5] = cardHolder2;
          cards[4] = cardHolder1;
        }
        else if(cards[5] == 28)
        {
          cardHolder1 = cards[6];
          cardHolder2 = cards[7];
          cards[7] = cards[5];
          cards[6] = cardHolder2;
          cards[5] = cardHolder1;
        }
        else if(cards[6] == 28)
        {
          cardHolder1 = cards[7];
          cardHolder2 = cards[8];
          cards[8] = cards[6];
          cards[7] = cardHolder2;
          cards[6] = cardHolder1;
        }
        else if(cards[7] == 28)
        {
          cardHolder1 = cards[8];
          cardHolder2 = cards[9];
          cards[9] = cards[7];
          cards[8] = cardHolder2;
          cards[7] = cardHolder1;
        }
        else if(cards[8] == 28)
        {
          cardHolder1 = cards[9];
          cardHolder2 = cards[10];
          cards[10] = cards[8];
          cards[9] = cardHolder2;
          cards[8] = cardHolder1;
        }
        else if(cards[9] == 28)
        {
          cardHolder1 = cards[10];
          cardHolder2 = cards[11];
          cards[11] = cards[9];
          cards[10] = cardHolder2;
          cards[9] = cardHolder1;
        }
        else if(cards[10] == 28)
        {
          cardHolder1 = cards[11];
          cardHolder2 = cards[12];
          cards[12] = cards[10];
          cards[11] = cardHolder2;
          cards[10] = cardHolder1;
        }
        else if(cards[11] == 28)
        {
          cardHolder1 = cards[12];
          cardHolder2 = cards[13];
          cards[13] = cards[11];
          cards[12] = cardHolder2;
          cards[11] = cardHolder1;
        }
        else if(cards[12] == 28)
        {
          cardHolder1 = cards[13];
          cardHolder2 = cards[14];
          cards[14] = cards[12];
          cards[13] = cardHolder2;
          cards[12] = cardHolder1;
        }
        else if(cards[13] == 28)
        {
          cardHolder1 = cards[14];
          cardHolder2 = cards[15];
          cards[15] = cards[13];
          cards[14] = cardHolder2;
          cards[13] = cardHolder1;
        }
        else if(cards[14] == 28)
        {
          cardHolder1 = cards[15];
          cardHolder2 = cards[16];
          cards[16] = cards[14];
          cards[15] = cardHolder2;
          cards[14] = cardHolder1;
        }
        else if(cards[15] == 28)
        {
          cardHolder1 = cards[16];
          cardHolder2 = cards[17];
          cards[17] = cards[15];
          cards[16] = cardHolder2;
          cards[15] = cardHolder1;
        }
        else if(cards[16] == 28)
        {
          cardHolder1 = cards[17];
          cardHolder2 = cards[18];
          cards[18] = cards[16];
          cards[17] = cardHolder2;
          cards[16] = cardHolder1;
        }
        else if(cards[17] == 28)
        {
          cardHolder1 = cards[18];
          cardHolder2 = cards[19];
          cards[19] = cards[17];
          cards[18] = cardHolder2;
          cards[17] = cardHolder1;
        }
        else if(cards[18] == 28)
        {
          cardHolder1 = cards[19];
          cardHolder2 = cards[20];
          cards[20] = cards[18];
          cards[19] = cardHolder2;
          cards[18] = cardHolder1;
        }
        else if(cards[19] == 28)
        {
          cardHolder1 = cards[20];
          cardHolder2 = cards[21];
          cards[21] = cards[19];
          cards[20] = cardHolder2;
          cards[19] = cardHolder1;
        }
        else if(cards[20] == 28)
        {
          cardHolder1 = cards[21];
          cardHolder2 = cards[22];
          cards[22] = cards[20];
          cards[21] = cardHolder2;
          cards[20] = cardHolder1;
        }
        else if(cards[22] == 28)
        {
          cardHolder1 = cards[23];
          cardHolder2 = cards[24];
          cards[24] = cards[22];
          cards[23] = cardHolder2;
          cards[22] = cardHolder1;
        }
        else if(cards[23] == 28)
        {
          cardHolder1 = cards[24];
          cardHolder2 = cards[25];
          cards[25] = cards[23];
          cards[24] = cardHolder2;
          cards[23] = cardHolder1;
        }
        else if(cards[24] == 28)
        {
          cardHolder1 = cards[25];
          cardHolder2 = cards[26];
          cards[26] = cards[24];
          cards[25] = cardHolder2;
          cards[24] = cardHolder1;
        }
        else if(cards[25] == 28)
        {
          cardHolder1 = cards[26];
          cardHolder2 = cards[27];
          cards[27] = cards[25];
          cards[26] = cardHolder2;
          cards[25] = cardHolder1;
        }
        else if(cards[26] == 28)
        {
          cardHolder1 = cards[27];
          cardHolder2 = cards[0];
          cards[0] = cards[26];
          cards[27] = cardHolder2;
          cards[26] = cardHolder1;
        }
        else
        {
          cardHolder1 = cards[0];
          cardHolder2 = cards[1];
          cards[1] = cards[27];
          cards[0] = cardHolder2;
          cards[27] = cardHolder1;
        }
      
      }

      public void tripleCut(){
         //step 3 in manipulating cards[] array.
        
        int jokerA = find(27);
        int jokerB = find(28);
        int[] cardHolder1 = new int[28];
        int[] cardHolder2 = new int[28];
        int[] cardHolder3 = new int[28];
        
        int cardCount5 = 0;
        int cardCount6 = 0;
        
        int joker1 = 0;
        int joker2 = 0;
        
        if(jokerA < jokerB)
        {
          joker1 = jokerA;
          joker2 = jokerB;
        }
        
        else
        {
          joker1 = jokerB;
          joker2 = jokerA;
        }
        
        for(int cardCount1 = (joker1 + 1); cardCount1 < joker2; cardCount1++)
        {
          cardHolder1[cardCount1] = cards[cardCount1];
        }
        
        for(int cardCount2 = 0; cardCount2 < joker1; cardCount2++)
        {
          cardHolder2[cardCount2] = cards[cardCount2];
        }
        
        for(int cardCount3 = 27; cardCount3 > joker2; cardCount3--)
        {
          cardHolder3[cardCount3] = cards[cardCount3];
        }
        
        for(int cardCount4 = (joker2 + 1); cardCount4 <= 27; cardCount4++)
        {
          cards[cardCount5] = cardHolder3[cardCount4];
          cardCount5++;
        }
       
        if(joker1 == jokerA)
        {
          cards[cardCount5] = 27;
          cardCount5++;
        }
        else
        {
          cards[cardCount5] = 28;
          cardCount5++;
        }
        
        for(; cardCount5 < joker2; cardCount5++)
        {
          cards[cardCount5] = cardHolder1[(joker1 + 1 + cardCount5)];
        }
        
        if(joker2 == jokerA)
        {
          cardCount5++;
          cards[cardCount5] = 27;
          cardCount5++;
        }
        else
        {
          cardCount5++;
          cards[cardCount5] = 28;
          cardCount5++;
        }
        
        for(; cardCount5 <= 27; cardCount5++)
        {
          cards[cardCount5] = cardHolder2[cardCount6];
          cardCount6++;
        }
        
      }

      public void moveBeforeLast(){
         //step 4 manipulating cards[] array.
      }

      public int getNextKey(){   
          //this is step 5
         //return the key[first card]
      
        return 1;
      }

      public void generateKeys(){
         swapJokerA();
         moveJokerB();
         tripleCut();
         moveBeforeLast();
         getNextKey();//fill the keys[] array with as many keys as there are letters
         //in the message. Execute five steps per key.
      }

     /* public int[] getAllKeys(){
         //return a reference to the keys[] array
      
  
      }
*/
      private void printCards(){   //may be useful in debugging
         for(int k=0; k<Deck.DECKSIZE; k++){
  System.out.print(cards[k]+ " " );
    }
    System.out.println();
 }

      private int find(int n){  //may be useful in searching for a card
    int result = -1;
    for(int k=0; k<Deck.DECKSIZE; k++){
  if(cards[k]==n){
     result = k;
     break;
  }
    }
    return result;
 }

      public static void main(String[] args) throws IOException
      {
       KeyStream ks = new KeyStream(3);
     ks.generateKeys();

     // int[] copyOfKeys = ks.getAllKeys();

    //  for(int k=0; k<copyOfKeys.length; k++){
 //    System.out.println(copyOfKeys[k]);  //print each key
 // }
}

}