groceries = ["eggs", "bread", "milk"] my_fave_things = []
stupid_list = ["Charlywawa", -23, [1, 2.6, 3], True]
print( groceries[1] )
groceries[2] = "fat-free milk"
groceries = groceries + ["bacon"]
print( len( my_fave_things ) )
my_fave_things.append( "Java" )
my_fave_things.insert( "Python", 0 )
groceries.remove("eggs")
stupid_list.pop(2)
times
int[] times;A common error is to think that this creates the array!
times = new int[4];
int[] times = new int[4];
times[0] = 154; times[1] = 176; times[2] = 154; times[3] = 135;
System.out.println(times);
times.length gives you the length, e.g.
System.out.println(times.length);Note this is a variable, not a method
System.out.println(times[1]);
int[] times = new int[4]; times[0] = 154; times[1] = 176; times[2] = 154; times[3] = 135;
int[] times = {154, 176, 154, 135};
ints, doubles, booleans
(primitive types)
Strings, Scanners, Randoms, Dogs (reference types)
Strings
String suits = {"Clubs", "Diamonds", "Hearts", "Spades"};
Dogs
Dog[] my_sled_team = new Dog[3];
my_sled_team[0] = new Dog("Charles", 2, "Charlywawa");
my_sled_team[1] = new Dog("Charlene", 7, "Charlywawa");
my_sled_team[2] = new Dog("Charmaine", 4, "Charlywawa");
Each of the next programs has errors.
class ExerciseA {
public static void main(String[] args) {
String[] module_codes = {"cs2513", "cs2514", "cs2515", "cs2516"};
for (int i = 0; i < module_codes.length(); i = i + 1) {
System.out.println(module_codes[i].toUpperCase());
}
}
}
class SolutionA {
public static void main(String[] args) {
String[] module_codes = {"cs2513", "cs2514", "cs2515", "cs2516"};
for (int i = 0; i < module_codes.length; i = i + 1) {
System.out.println(module_codes[i].toUpperCase());
}
}
}
class ExerciseB {
public static void main(String[] args) {
String[] module_codes = new int[4];
module_codes[1] = "cs2513";
module_codes[2] = "cs2514";
module_codes[3] = "cs2515";
module_codes[4] = "cs2516";
for (int i = 0; i < module_codes.length; i = i + 1) {
System.out.println(module_codes[i].toUpperCase());
}
}
}
class ExerciseB {
public static void main(String[] args) {
String[] module_codes = new String[4];
module_codes[0] = "cs2513";
module_codes[1] = "cs2514";
module_codes[2] = "cs2515";
module_codes[3] = "cs2516";
for (int i = 0; i < module_codes.length; i = i + 1) {
System.out.println(module_codes[i].toUpperCase());
}
}
}
class ExerciseC {
public static void main(String[] args) {
String[] module_codes = new String[4];
module_codes[0] = "cs2513";
module_codes[1] = "cs2514";
module_codes[2] = "cs2515";
module_codes[2] = "cs2516";
for (int i = 0; i < module_codes.length; i = i + 1) {
System.out.println(module_codes[i].toUpperCase());
}
}
}
class ExerciseC {
public static void main(String[] args) {
String[] module_codes = new String[4];
module_codes[0] = "cs2513";
module_codes[1] = "cs2514";
module_codes[2] = "cs2515";
module_codes[3] = "cs2516";
for (int i = 0; i < module_codes.length; i = i + 1) {
System.out.println(module_codes[i].toUpperCase());
}
}
}
The subsequent slide contans a main method that creates 52
playing cards, puts them in an array, and prints them out again
public Deck()
public void shuffle()
public Card deal()
deal method will remove and return the last card in the array. We will write/discuss
two ways to implement it:
Arrays.copyOf class method
Q: By the way, is shuffle a getter or a setter? What about deal?
Card.javaclass Card {
int rank;
String suit;
public Card(int r, String s) {
rank = r;
suit = s;
}
public boolean higher(Card c) {
return rank > c.rank;
}
public boolean lower(Card c) {
return rank < c.rank;
}
public String toString() {
return rank + " of " + suit;
}
}
CardTester.javaclass CardTester {
public static void main(String[] args) {
String[] suits = {"Clubs", "Diamonds", "Hearts", "Spades"};
Card[] cards = new Card[52];
int indexOfNextCard = 0;
for (int i = 0; i < suits.length; i = i + 1) {
for (int j = 1; j < 14; j = j + 1) {
cards[indexOfNextCard] = new Card(j, suits[i]);
indexOfNextCard = indexOfNextCard + 1;
// cards[i * 13 + j - 1] = new Card(j, suits[i]);
}
}
for (int k = 0; k < cards.length; k = k + 1) {
System.out.println(cards[k]);
}
}
}
Deck.java (Version A)import java.util.Random;
class Deck {
Card[] cards;
public Deck() {
String[] suits = {"Clubs", "Diamonds", "Hearts", "Spades"};
cards = new Card[52];
int indexOfNextCard = 0;
for (int i = 0; i < suits.length; i = i + 1) {
for (int j = 1; j < 14; j = j + 1) {
cards[indexOfNextCard] = new Card(j, suits[i]);
indexOfNextCard = indexOfNextCard + 1;
}
}
}
public void shuffle() {
Random randy = new Random();
for (int i = 0; i < cards.length; i = i + 1) {
int j = randy.nextInt(cards.length);
Card temp = cards[i];
cards[i] = cards[j];
cards[j] = temp;
}
}
public Card deal() {
Card c = cards[cards.length - 1];
Card[] all_but_last = new Card[cards.length - 1];
for (int i = 0; i < all_but_last.length; i= i + 1) {
all_but_last[i] = cards[i];
}
cards = all_but_last;
return c;
}
}
Deck.java (Version B)
You must import java.utils.Arrays
public Card deal() {
Card c = cards[cards.length - 1];
Card[] all_but_last = Arrays.copyOf(cards, cards.length - 1);
cards = all_but_last;
return c;
}
main method to play the game Play Your Cards Right!
public Game()public void play()main method simply creates and launches the game!This class activity shows you object-oriented thinking in action!
DeckTester.javaimport java.util.Scanner;
class DeckTester {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int score = 0;
Deck d = new Deck();
d.shuffle();
Card currentCard = d.deal();
for (int i = 0; i < 4; i = i + 1) {
System.out.print("Will the next card be higher (H) or lower (L) than a " + currentCard + "? ");
String guess = sc.nextLine();
Card nextCard = d.deal();
System.out.print("It's a " + nextCard + ". ");
if ((guess.equals("L") && nextCard.lower(currentCard)) || (guess.equals("H") && nextCard.higher(currentCard))) {
System.out.println("Yes!");
score = score + 1;
} else {
System.out.println("Bad luck!");
}
currentCard = nextCard;
}
System.out.println("You scored " + score + " out of 4.");
}
}
Game.javaimport java.util.Scanner;
class Game {
public void play() {
Scanner sc = new Scanner(System.in);
int score = 0;
Deck d = new Deck();
d.shuffle();
Card currentCard = d.deal();
for (int i = 0; i < 4; i = i + 1) {
System.out.print("Will the next card be higher (H) or lower (L) than a " + currentCard + "? ");
String guess = sc.nextLine();
Card nextCard = d.deal();
System.out.print("It's a " + nextCard + ". ");
if ((guess.equals("L") && nextCard.lower(currentCard)) || (guess.equals("H") && nextCard.higher(currentCard))) {
System.out.println("Yes!");
score = score + 1;
} else {
System.out.println("Bad luck!");
}
currentCard = nextCard;
}
System.out.println("You scored " + score + " out of 4.");
}
}
GameTesterclass GameTester {
public static void main(String[] args) {
Game g = new Game();
g.play();
}
}