Saturday, November 28, 2009

PokerHand






To make a variety of Poker games, we need a way to evaluate and compare Poker hands. This video also shows how to implement an interface in an inner class, so that a user can press a button, and new poker hands are generated. Starter code can be found at the APCS Wiki.

Wednesday, November 25, 2009

Interfaces Part 3





Implementing java interfaces for any Object. For "starter" code see the APCS Wiki

Monday, November 23, 2009

Java Interfaces Parts 1 and 2





We introduce a way to use code to work with a variety of classes using interfaces. Source code can be found at the APCS Wiki

Monday, September 7, 2009

Making Classes with the Eclipse IDE




Make mew Projects and Classes in Eclipse.

Saturday, August 22, 2009

Dr Java interactions



Click on the title to see the video. Here I show how to try the code snippets that you will see while reading Chapter 2 of Horstmann, "Java Concepts"

Saturday, February 28, 2009

Cryptography


Starting Code:


import java.util.Scanner;
/**
* Simple Polyalphabetic Cryptography
*
* @Chris Thiel
* @28 Feb 2009
*/
public class VignereCipherStartingCode
{
private static final String alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private static int nextChar(String k, int i){
i=i%k.length();
String letter=k.substring(i,i+1);
return alphabet.indexOf(letter);
}
public static String encode (String m, String k){
String result="";
for (int i=0; i<m.length(); i++){
int offset=nextChar(k, i);
String letter = m.substring(i,i+1);
int newLetterIndex= alphabet.indexOf(letter)+offset;
newLetterIndex=newLetterIndex % 26;
result+=alphabet.substring( newLetterIndex, newLetterIndex+1);
}
return result;
}
public static String decode (String m, String k){
String result="";
return result;
}
public static void main(String[] args)
{
Scanner kb=new Scanner(System.in);
System.out.print("Type a key: ");
String key=kb.nextLine();
key=key.toUpperCase();
key=key.replace(" ","");//omit spaces
System.out.print("Type a message: ");
String message=kb.nextLine();
message=message.toUpperCase();
message=message.replace(" ","");
System.out.println("Using the key \""+key+"\" on \""+message+"\":");
String codedMessage=encode(message,key);
System.out.println("Coded="+codedMessage);
System.out.println("Decoded="+decode(codedMessage,key));
}
}







  • 8 points: Complete the decode method so it can decipher the Vignere Cipher
  • 9 points: Adapt this so it can do a Progressive Polyalphabetic Cipher rather than a key
  • 10 points: Adapt the CarTalk Employee Applet's graphic user interface so that you can type a message in one text area, press a button and it shows the encoded text (using the Progressive Cipher), press another button and it shows the decoded text.
  • 11 points: Add a "key field" to the Applet, and use the Vignere Cipher, working in a similiar fashion as the 10 point version

Monday, January 19, 2009

Cheater Catcher Project







Part 2: Organizing the report that shows possible plagiarism might require another data structure to sort. Download the files you need to get started at here. Click the title to see the video.