Computer Science 210
Data Structures

Fall 2016, Siena College

Spells BlueJ Project

Click here to download a BlueJ project for Spells.


Spells Source Code

The Java source code for Spells is below. Click on a file name to download it.


Spells.java

/*   $Id: Spells.java 2377 2014-06-10 03:12:01Z terescoj $  */
/*
Spell lookup program to demonstrate the use of Associations
and ArrayLists.

Special thanks to J.K. Rowling.

@author Jim Teresco, terescoj@strose.edu
 */

import structure5.*;
import java.util.ArrayList;
import java.util.Scanner;

public class Spells {

    public static void main(String[] args) {

        // build the list of magic spells we know
        ArrayList<Association<String,String>> spells = new ArrayList<Association<String,String>>();
        spells.add(new Association<String,String>("Reparo","Fixes damaged object"));
        spells.add(new Association<String,String>("Evanesco","Makes something vanish"));
        spells.add(new Association<String,String>("Expelliarmus","Disarm opponent"));
        spells.add(new Association<String,String>("Accio","Summon object"));
        spells.add(new Association<String,String>("Alohomora","Open a locked door"));
        spells.add(new Association<String,String>("Lumos","Illuminate wand"));
        spells.add(new Association<String,String>("Crucio","Inflict great pain"));
        spells.add(new Association<String,String>("Engorgio","Cause target to swell"));
        spells.add(new Association<String,String>("Immobulus","Stop an object's motion"));
        spells.add(new Association<String,String>("Incendio","Start a fire"));

        // we play a little game matching spells to descriptions
        // until an invalid spell is specified
        Scanner keyboard = new Scanner(System.in);
        int spellnum = 0;
        while (spellnum >= 0) {
            System.out.print("Which spell will you use? ");
            String spellName = keyboard.next();
            spellnum = spells.indexOf(new Association<String,String>(spellName));
            if (spellnum >= 0) {
                Association<String,String> spell = spells.get(spellnum);
                System.out.println(spell.getValue());
            }
            else {
                System.out.println("Your wand doesn't know that one.  It explodes.  Bye!");
            }
        }
    }
}