This document provides instructions for creating a basic space shooter game in Adobe Flash CS4 using ActionScript. It describes how to:
1) Create a movie clip for the player's ship and use keyboard controls to move it around the screen.
2) Make the ship shoot projectiles using the "attachMovie" method and limit its movement within the screen boundaries.
3) Develop enemy ships as additional movie clips that spawn and move across the screen.
The document outlines 11 steps to develop these core mechanics of a space shooter game.
This document discusses using an Event Consumer design pattern to provide a unified approach to callbacks in Android. It describes how the Event Consumer pattern can be used for callbacks from worker threads, between domain objects and interfaces using the Observer pattern, and between activities using intents. The key aspects are using an EventConsumer interface and event IDs to decouple classes, avoiding direct references between callback classes. This provides a cleaner approach than traditional callback interfaces or methods. The document provides examples to illustrate how the pattern can be applied in different callback situations in Android.
Vaadin 7 is an open source web application framework that allows developers to build rich client-side web applications using Java on the server-side and JavaScript on the client-side, with new features in Vaadin 7 including improved component architecture, support for SASS styling, and enhanced widget communication through state-based RPC.
This document discusses mobile app development using JavaScript and compares different approaches such as web apps, hybrid apps, interpreted apps, and cross-platform game engines. It provides examples of frameworks like PhoneGap, Titanium, and ImpactJS and compares them in terms of learning curve, tools, monetization options, supported platforms and scenarios.
Vaadin 7 is a Java framework for building rich web applications. It allows developers to write UI code in Java and have it rendered as responsive HTML, CSS, and JavaScript that runs in any browser. Key features include rich UI components, separation of server and client code, and support for any JVM language and cloud platform. The framework embraces modern web standards and allows developers to build consumer-grade UX with a business system budget.
PHP Benelux 2012: Magic behind the numbers. Software metrics in practice Sebastian Marek
Software metrics can provide useful insights into code quality and complexity. Code metrics like lines of code, cyclomatic complexity, and weighted method count measure characteristics like code size, logic complexity, and class complexity. Design metrics evaluate qualities like coupling and cohesion. Metrics are most effective when used to identify improvement opportunities rather than to judge the overall quality of code or designs. Calculating and tracking metrics over time can help optimize code and catch regressions during development.
Phactory is an alternative to database fixtures for defining test data in PHP unit tests. It allows developers to define database objects in code and dynamically create them, rather than loading static datasets. Phactory provides a lightweight ORM and works with MySQL, SQLite, and MongoDB. It supports defining object blueprints, creating objects with associations, retrieving objects, and integrating with PHPUnit for testing database code.
Design pattern part 2 - structural patternJieyi Wu
This is first part: https://www.slideshare.net/JieyiWu1/design-pattern-part-1-81195876
Structural Pattern is introducing 7 type patterns and also including the pros and cons to you.
Behavioral Pattern of the design pattern.
Introducing 6 type patterns and also including the pros and cons. It's easy to understand what's kind of scenario it should be used.
This document discusses using an Event Consumer design pattern to provide a unified approach to callbacks in Android. It describes how the Event Consumer pattern can be used for callbacks from worker threads, between domain objects and interfaces using the Observer pattern, and between activities using intents. The key aspects are using an EventConsumer interface and event IDs to decouple classes, avoiding direct references between callback classes. This provides a cleaner approach than traditional callback interfaces or methods. The document provides examples to illustrate how the pattern can be applied in different callback situations in Android.
Vaadin 7 is an open source web application framework that allows developers to build rich client-side web applications using Java on the server-side and JavaScript on the client-side, with new features in Vaadin 7 including improved component architecture, support for SASS styling, and enhanced widget communication through state-based RPC.
This document discusses mobile app development using JavaScript and compares different approaches such as web apps, hybrid apps, interpreted apps, and cross-platform game engines. It provides examples of frameworks like PhoneGap, Titanium, and ImpactJS and compares them in terms of learning curve, tools, monetization options, supported platforms and scenarios.
Vaadin 7 is a Java framework for building rich web applications. It allows developers to write UI code in Java and have it rendered as responsive HTML, CSS, and JavaScript that runs in any browser. Key features include rich UI components, separation of server and client code, and support for any JVM language and cloud platform. The framework embraces modern web standards and allows developers to build consumer-grade UX with a business system budget.
PHP Benelux 2012: Magic behind the numbers. Software metrics in practice Sebastian Marek
Software metrics can provide useful insights into code quality and complexity. Code metrics like lines of code, cyclomatic complexity, and weighted method count measure characteristics like code size, logic complexity, and class complexity. Design metrics evaluate qualities like coupling and cohesion. Metrics are most effective when used to identify improvement opportunities rather than to judge the overall quality of code or designs. Calculating and tracking metrics over time can help optimize code and catch regressions during development.
Phactory is an alternative to database fixtures for defining test data in PHP unit tests. It allows developers to define database objects in code and dynamically create them, rather than loading static datasets. Phactory provides a lightweight ORM and works with MySQL, SQLite, and MongoDB. It supports defining object blueprints, creating objects with associations, retrieving objects, and integrating with PHPUnit for testing database code.
Design pattern part 2 - structural patternJieyi Wu
This is first part: https://www.slideshare.net/JieyiWu1/design-pattern-part-1-81195876
Structural Pattern is introducing 7 type patterns and also including the pros and cons to you.
Behavioral Pattern of the design pattern.
Introducing 6 type patterns and also including the pros and cons. It's easy to understand what's kind of scenario it should be used.
Vaadin 7 is an introduction to the Vaadin framework. Key ideas of Vaadin 7 include rich components, a server+client architecture that runs entirely on the Java server, and embracing the Java programming language. New features in Vaadin 7 include a renewed JavaScript architecture, Sass support, redesigned forms, and built-in high level view management. The roadmap for Vaadin 7.1 includes server push using Atmosphere, a new calendar component, and limited IE 10 support.
Dart, le nouveau langage Web de Google présenté au public en octobre 2011 a pour objectif de proposer une alternative au JavaScript.
Bien que la version finale ne soit pas encore disponible (pour cela il faudra attendre cet été), Dart est utilisable dès aujourd'hui.
Au cours de cette présentation sont introduits les éléments suivants :
- comment Dart permet de développer des applications clientes aussi bien que serveurs,
- le langage,
- les outils permettant un développement industrialisé et une productivité accrue.
The document provides information about Ext JS, a JavaScript framework. It discusses several key aspects of Ext JS including:
1. The Loader which handles dynamic dependency loading in Ext JS 4+ through asynchronous and synchronous loading.
2. The Class System which defines classes, inheritance, mixins, configs and statics.
3. Design patterns used in Ext JS like Singleton, Observer, and Memento.
4. The MVC architecture including models, views, controllers and the folder structure.
5. Charts which are one of the innovations in Ext JS using axes, series and stores to display data visually.
This document provides an introduction to Vaadin, including:
1. Vaadin allows building rich web UIs using Java and HTML. It uses a client-server architecture with the UI running on the server and JavaScript/HTML on the client.
2. Key features include rich UI components, support for any JVM language, no browser plugins required, and embracing of Java standards.
3. The document recommends getting started with Vaadin by generating a Maven archetype project in Eclipse.
Creational Pattern of the design pattern.
Introducing 6 type patterns and also including the pros and cons. It's easy to understand what's kind of scenario it should be used.
The document discusses principles of elegant programming and good code design. It provides examples of refactoring code to make it more readable, maintainable, and reusable. Key points discussed include using immutable objects, predicates and functional programming, defensive coding practices, and leveraging Java libraries like Guava to write cleaner code through features like Multimaps and immutable collections.
Writing a Space Shooter with HTML5 CanvasSteve Purkis
This talk reviews a Space Shooter game that I wrote to learn about HTML5 canvas. It covers:
* Basics of canvas 2D
* Overview of how the game is put together
* Some performance tips
First presented @ Ottawa JavaScript in September 2012.
Ralph Schindler (of Zend Framework) and Jon Wage (of Doctrine) presented these slides for a webinar hosted by zend.com (webinar available online).
Links are contained within the slides to the demo application that was also used during the webinar.
This document discusses inheritance in C++, including:
1. The syntax for defining derived classes that inherit from base classes using public, private, or protected visibility.
2. Examples of single inheritance and accessing members of base classes from derived classes.
3. How protected members of a base class can be accessed in derived classes but not outside the class hierarchy.
4. The effect of public, private, and protected visibility modes on inherited members.
5. An example of multiple inheritance and resolving ambiguities using the scope resolution operator.
The document discusses modeling industry data using Eclipse modeling tools and frameworks. It describes how EMF, GMF, TMF, M2M, and M2T were used to design domain-specific languages for an application originally built with Oracle Forms and Database. Domain models were created from 1722 tables and 19572 columns in the database. Graphical modeling tools allowed generating Java code and GUI views from these models, simplifying development and reducing code.
UEI Headquarters provides company and product information. It is an open source software company founded in 2003 with headquarters in Tokyo, Japan and 130 employees. The company's legal capital is 35 million yen. UEI distributes its software under open source licenses and it is cross-platform. The software uses a class-based programming model and has many plugins. UEI believes open source is best for debugging, learning, and improving the library as HTML5 source code cannot be hidden. HTML5 also allows each browser to compete in improving performance.
This document discusses basic object-oriented programming concepts. It explains that an object contains both data and methods that manipulate that data. An object represents a real-world entity and has state represented by its data fields. Classes describe objects and act as templates for creating multiple similar objects. Objects inherit characteristics from their classes and can override methods. Constructors are used to create and initialize new objects. Access control determines which parts of a class are visible and accessible to other classes.
The document discusses constructors and destructors in inheritance. It provides examples of constructor and destructor calls when creating objects of base and derived classes in simple inheritance, as well as examples in multilevel inheritance. It also demonstrates passing parameters to base class constructors in single and multiple inheritance scenarios. The document further discusses resolving ambiguity issues that can arise in multiple inheritance by using scope resolution operators (::), and provides examples of using virtual base classes to avoid duplicate copies of inherited members.
This document provides an example of using Java 3D to create a 3D checkers board scene. It includes code to:
1) Create a windowed Java application with a Canvas3D panel to display the 3D scene
2) Build the 3D scene graph with objects like a checkered floor, floating sphere, lights and sky background
3) Add viewpoint controls to allow orbiting around the scene
An object contains both data and methods that manipulate that data. The data represents the state of the object. Classes describe objects by defining their fields and methods. Objects inherit fields and methods from their superclass. To create an object, the appropriate constructor must be called using the new keyword. Access control determines which fields and methods are accessible to other classes.
The document provides an overview of the gospel message. Some key points:
1) The gospel is the "good news" that Jesus came to save sinners and offer eternal life. He died on the cross for our sins and rose again.
2) All people are sinful and deserving of God's wrath, but through faith in Christ, God offers salvation, mercy, and a restored relationship with Him.
3) Believers are called to follow Christ, worship God, and share the gospel with others so that more may experience God's grace and salvation. The gospel transforms lives and gives hope of eternal life in heaven.
This document provides instructions for a project in Adobe Illustrator where students will create 3 characters and 3 objects solely from text/type. It consists of 8 steps: 1) open Illustrator and set the document size, 2) select the Type tool and start typing, 3) choose typefaces creatively for each character, 4) rotate, scale and position the type, 5) use Garamond type for the body of a car character, 6) experiment with compositions, 7) review the completed characters, and 8) the assignment requires labeling and submitting the characters and objects created from type on a single A4 page for grading.
This document discusses the use of prepositions of time - at, in, and on. It provides examples of when to use each preposition. At is used to indicate precise times, such as at 3 o'clock. In is used for months, years, seasons, and long periods of time, such as in May or in the 1990s. On is used for days and dates, like on Sunday or on March 6th. It also notes some common expressions that use these prepositions of time, such as in the morning, on Tuesday morning, and at night.
1. The document describes a job sheet for a Digital Media Design course covering the use of Sony Sound Forge for digital audio editing. It introduces students to the Sound Forge interface and tools.
2. Key areas of the Sound Forge workspace are defined, including the transport bar, tools panel, data windows, waveform displays and rulers. Basic functions of buttons like Play, Stop and Record are also outlined.
3. The job sheet provides step-by-step instructions for students to get familiar with opening Sound Forge, navigating the interface and using basic audio editing tools. The goal is for students to learn how to create, modify and save audio files.
Vaadin 7 is an introduction to the Vaadin framework. Key ideas of Vaadin 7 include rich components, a server+client architecture that runs entirely on the Java server, and embracing the Java programming language. New features in Vaadin 7 include a renewed JavaScript architecture, Sass support, redesigned forms, and built-in high level view management. The roadmap for Vaadin 7.1 includes server push using Atmosphere, a new calendar component, and limited IE 10 support.
Dart, le nouveau langage Web de Google présenté au public en octobre 2011 a pour objectif de proposer une alternative au JavaScript.
Bien que la version finale ne soit pas encore disponible (pour cela il faudra attendre cet été), Dart est utilisable dès aujourd'hui.
Au cours de cette présentation sont introduits les éléments suivants :
- comment Dart permet de développer des applications clientes aussi bien que serveurs,
- le langage,
- les outils permettant un développement industrialisé et une productivité accrue.
The document provides information about Ext JS, a JavaScript framework. It discusses several key aspects of Ext JS including:
1. The Loader which handles dynamic dependency loading in Ext JS 4+ through asynchronous and synchronous loading.
2. The Class System which defines classes, inheritance, mixins, configs and statics.
3. Design patterns used in Ext JS like Singleton, Observer, and Memento.
4. The MVC architecture including models, views, controllers and the folder structure.
5. Charts which are one of the innovations in Ext JS using axes, series and stores to display data visually.
This document provides an introduction to Vaadin, including:
1. Vaadin allows building rich web UIs using Java and HTML. It uses a client-server architecture with the UI running on the server and JavaScript/HTML on the client.
2. Key features include rich UI components, support for any JVM language, no browser plugins required, and embracing of Java standards.
3. The document recommends getting started with Vaadin by generating a Maven archetype project in Eclipse.
Creational Pattern of the design pattern.
Introducing 6 type patterns and also including the pros and cons. It's easy to understand what's kind of scenario it should be used.
The document discusses principles of elegant programming and good code design. It provides examples of refactoring code to make it more readable, maintainable, and reusable. Key points discussed include using immutable objects, predicates and functional programming, defensive coding practices, and leveraging Java libraries like Guava to write cleaner code through features like Multimaps and immutable collections.
Writing a Space Shooter with HTML5 CanvasSteve Purkis
This talk reviews a Space Shooter game that I wrote to learn about HTML5 canvas. It covers:
* Basics of canvas 2D
* Overview of how the game is put together
* Some performance tips
First presented @ Ottawa JavaScript in September 2012.
Ralph Schindler (of Zend Framework) and Jon Wage (of Doctrine) presented these slides for a webinar hosted by zend.com (webinar available online).
Links are contained within the slides to the demo application that was also used during the webinar.
This document discusses inheritance in C++, including:
1. The syntax for defining derived classes that inherit from base classes using public, private, or protected visibility.
2. Examples of single inheritance and accessing members of base classes from derived classes.
3. How protected members of a base class can be accessed in derived classes but not outside the class hierarchy.
4. The effect of public, private, and protected visibility modes on inherited members.
5. An example of multiple inheritance and resolving ambiguities using the scope resolution operator.
The document discusses modeling industry data using Eclipse modeling tools and frameworks. It describes how EMF, GMF, TMF, M2M, and M2T were used to design domain-specific languages for an application originally built with Oracle Forms and Database. Domain models were created from 1722 tables and 19572 columns in the database. Graphical modeling tools allowed generating Java code and GUI views from these models, simplifying development and reducing code.
UEI Headquarters provides company and product information. It is an open source software company founded in 2003 with headquarters in Tokyo, Japan and 130 employees. The company's legal capital is 35 million yen. UEI distributes its software under open source licenses and it is cross-platform. The software uses a class-based programming model and has many plugins. UEI believes open source is best for debugging, learning, and improving the library as HTML5 source code cannot be hidden. HTML5 also allows each browser to compete in improving performance.
This document discusses basic object-oriented programming concepts. It explains that an object contains both data and methods that manipulate that data. An object represents a real-world entity and has state represented by its data fields. Classes describe objects and act as templates for creating multiple similar objects. Objects inherit characteristics from their classes and can override methods. Constructors are used to create and initialize new objects. Access control determines which parts of a class are visible and accessible to other classes.
The document discusses constructors and destructors in inheritance. It provides examples of constructor and destructor calls when creating objects of base and derived classes in simple inheritance, as well as examples in multilevel inheritance. It also demonstrates passing parameters to base class constructors in single and multiple inheritance scenarios. The document further discusses resolving ambiguity issues that can arise in multiple inheritance by using scope resolution operators (::), and provides examples of using virtual base classes to avoid duplicate copies of inherited members.
This document provides an example of using Java 3D to create a 3D checkers board scene. It includes code to:
1) Create a windowed Java application with a Canvas3D panel to display the 3D scene
2) Build the 3D scene graph with objects like a checkered floor, floating sphere, lights and sky background
3) Add viewpoint controls to allow orbiting around the scene
An object contains both data and methods that manipulate that data. The data represents the state of the object. Classes describe objects by defining their fields and methods. Objects inherit fields and methods from their superclass. To create an object, the appropriate constructor must be called using the new keyword. Access control determines which fields and methods are accessible to other classes.
The document provides an overview of the gospel message. Some key points:
1) The gospel is the "good news" that Jesus came to save sinners and offer eternal life. He died on the cross for our sins and rose again.
2) All people are sinful and deserving of God's wrath, but through faith in Christ, God offers salvation, mercy, and a restored relationship with Him.
3) Believers are called to follow Christ, worship God, and share the gospel with others so that more may experience God's grace and salvation. The gospel transforms lives and gives hope of eternal life in heaven.
This document provides instructions for a project in Adobe Illustrator where students will create 3 characters and 3 objects solely from text/type. It consists of 8 steps: 1) open Illustrator and set the document size, 2) select the Type tool and start typing, 3) choose typefaces creatively for each character, 4) rotate, scale and position the type, 5) use Garamond type for the body of a car character, 6) experiment with compositions, 7) review the completed characters, and 8) the assignment requires labeling and submitting the characters and objects created from type on a single A4 page for grading.
This document discusses the use of prepositions of time - at, in, and on. It provides examples of when to use each preposition. At is used to indicate precise times, such as at 3 o'clock. In is used for months, years, seasons, and long periods of time, such as in May or in the 1990s. On is used for days and dates, like on Sunday or on March 6th. It also notes some common expressions that use these prepositions of time, such as in the morning, on Tuesday morning, and at night.
1. The document describes a job sheet for a Digital Media Design course covering the use of Sony Sound Forge for digital audio editing. It introduces students to the Sound Forge interface and tools.
2. Key areas of the Sound Forge workspace are defined, including the transport bar, tools panel, data windows, waveform displays and rulers. Basic functions of buttons like Play, Stop and Record are also outlined.
3. The job sheet provides step-by-step instructions for students to get familiar with opening Sound Forge, navigating the interface and using basic audio editing tools. The goal is for students to learn how to create, modify and save audio files.
This document provides an overview of action and adventure game design. It discusses key genres like shooters and non-shooters. It also examines important design elements for these types of games like rules, setting, victory conditions, interaction models, and perspective. Shooter games are divided into first-person shooters and 2D shooters. Examples are provided for different genres and how some games have been updated while maintaining core mechanics. Overall the document analyzes the characteristics of action and adventure games.
1. The document provides information on a course titled "Digital Video and Audio" being taught in July-December 2012. It outlines the topic of introduction to digital audio systems that will be covered in the first week.
2. The topic will include the history of digital audio, understanding the differences between analog and digital audio, file sizes in digital audio, and digital audio formats. By completing this topic, students will gain an understanding of these concepts.
3. The document then provides details on the history of audio recording technologies from mechanical to electrical to magnetic to digital formats. It also explains the processes of analog and digital audio as well as factors that influence digital audio file sizes and common digital audio formats.
This document provides an introduction to digital typography. It discusses key topics such as:
- The definition and functions of typography, including type arrangement, selection, and modification.
- The uses of type in areas like art, design, books, magazines, advertising, and more.
- The different types of typography like display, advertising, and text typography.
- An assignment for students to practice creating characters and objects using type in Adobe Illustrator.
The document discusses constructors and destructors in C++ classes. It provides examples of constructor definitions and errors. It explains the purpose and behavior of default, parameterized, and copy constructors. It also discusses the characteristics and purpose of constructors and destructors.
Is your web app drowning in a sea of JavaScript? Has your client-side codebase grown from "a snippet here and there" to "more JavaScript than HTML"? Do you find yourself writing one-off snippets instead of generalized components? You're not the only one. Learn about a handful of strategies you can use to keep your JavaScript codebase lean, modular, and flexible. We'll cover all the major pain points — MVC, templates, persisting state, namespacing, graceful error handling, client/server communication, and separation of concerns. And we'll cover how to do all this incrementally so that you don't have to redo everything from scratch.
1) The document discusses creating Java applets and using classes in an applet. It includes examples of creating classes to calculate compound interest, graph mathematical functions, and create a timer applet.
2) The examples create classes like Invest and Graph that perform calculations and drawing. They are used in applets that allow users to set inputs and see results updated.
3) The timer applet example uses the Timer class from Swing to repeatedly repaint random colored circles on a schedule.
I am Irene M. I am a C++ Homework Expert at cpphomeworkhelp.com. I hold a Masters in Programming from from California, USA. I have been helping students with their homework for the past 10 years. I solve homework related to C++.
Visit cpphomeworkhelp.com or email info@cpphomeworkhelp.com. You can also call on +1 678 648 4277 for any assistance with C++ Homework.
Flash over the years, has been used to prop up the regular browser like a sad old man drinking alone in a pub.
Today browsers come shipped with technology designed to rival flash and aim to shut it squarely out of the game.
Are browser ready to rock without Flash?
The document discusses building 2D and 3D games with Ruby using low-level APIs. It covers topics like building 2D games with Ruby SDL, building 3D games with Ruby OpenGL, and whether Ruby is a legitimate player in the gaming space. Examples provided include sample code for sprites, events, and extensions to interface with C libraries for graphics and game development.
The document discusses building 2D and 3D games with Ruby using low-level APIs. It covers topics like building 2D games with Ruby SDL, building 3D games with Ruby OpenGL, and whether Ruby is a legitimate player in the gaming space. Examples provided include sample code for sprites, events, and extensions to interface with C libraries for graphics and game development.
This document contains instructions and questions for a computer science exam. It covers topics like call by value vs call by reference in C++, header files, class definitions, functions, arrays, pointers, structures, inheritance, and file input/output. There are multiple choice, short answer, and code writing questions testing a variety of programming concepts.
The document discusses using openFrameworks (OF) to create iPhone/iPad applications with C++. It provides examples of how to load and display an image, change images on touch, and create animations using arrays of images. The key steps shown are initializing OF, loading images into OFImage variables or arrays, and drawing the images in the draw function while incrementing an index to loop through the array. Methods for touch input handling are also demonstrated.
The document provides an introduction to C++ programming. It outlines topics that will be covered such as basic syntax, compiling programs, argument passing, dynamic memory, and object-oriented programming. It recommends some useful books and websites for learning C++ and notes that the tutorial will demonstrate features of the language through examples while emphasizing learning through practice.
The document is about using ImageIcon, JPanel, and Timer classes in Java.
It contains 3 sections:
1) Using ImageIcon and JPanel composition to display different images by clicking buttons.
2) Using inheritance with JPanel and Timer to create an animation class that displays a sequence of images.
3) Using Timer and JPanel to create a clock class that displays the time and updates every second.
The document provides an introduction to C++ programming. It outlines topics that will be covered, including basic syntax, compiling programs, passing arguments, dynamic memory allocation, and object-oriented programming. It recommends several useful books and web resources for learning C++ and offers a live coding demonstration of a simple image class to illustrate C++ concepts. The overall tone is informative but acknowledges that C++ is complex and learning requires practice.
This document summarizes a machine learning lab course outline. The course objectives are to define machine learning, differentiate supervised, unsupervised and reinforcement learning methods, and apply decision trees, neural networks, clustering and other machine learning algorithms. The document lists programming assignments involving CSV files, synthetic dataset generation, algorithm implementations including ID3, KNN, K-means and neural networks. It also lists virtual lab assignments on perceptrons. The course outcomes are to identify machine learning problems and methods, apply appropriate strategies, design machine learning systems, and solve problems using various learning techniques.
Animations in Flutter from Poznań Flutter Developer Group (PFDG)
- types of animations
- tween animations
- Flare
https://www.meetup.com/poznan-flutter-developers/
https://www.facebook.com/poznanflutter
In JS: CLASS <=> Constructor FN
new FN() => FN() { this }
FN = CLASS (FN = FN, FN = DATA)
Objects
Prototype / __proto__
Inheritence
Rewriting / Augmenting
built in objects
I am sorry but my major does not cover programming in depth (ICT) an.pdfseamusschwaabl99557
I am sorry but my major does not cover programming in depth (ICT) and we are expected to
know advanced java programming. I am looking for help. I have purchased a book from Oracle
but I will not be up to speed this semester. Please Help me!!!
1. Write an app called viewer that will have a Label at the top saying \"My Viewer\" (or
something like that)
2. Will have JButtons at the bottom that will do Next, Previous, and Quit
3. Have the whole middle be a JLabel in which you will display Images stored in a directory.
4. The directory can be named Resource.
5. When you run the program (java viewer) it will read all the names in the Resource Directory.
Then, when you click Next or Previous it will display an Image.
6. Note: you will need to find a java method that exists for reading a whole directory of
filenames. You can store all those names in a String Array when run the program.
7. You will use a counter or index that is an int an when you click Next it will increment the
counter until it reach some maximum value and then you will set it to 0. Previous will decrement
the counter until it goes negative and then it will set the counter to the Maximum index ( which
is how many filenames you have in the Image names array)
8. Submit the program viewer.java I should be able to use it with my own Resource directory
Solution
Compilation process
javac Viewer.java
Run
java Viewer
Click on next or previous a file chooser will be opened and you can select your file
The Code is in four file.
// File Dg.java
import java.io.File;
public class Dg {
public File nextFile(File file) {
File f[] = new File[5000];
f = file.getParentFile().listFiles(new ImageFileFilter());
int max = f.length;
max = max - 1;
// System.out.println(file);
for (int i = 0; i < f.length; i++) {
if (f[i].equals(file)) {
if (i + 1 > max) {
return f[0];
} else {
return f[i + 1];
}
} else {
// System.out.println(0);
// return file;
}
}
return file;
}
public File priFile(File file) {
File f[] = new File[5000];
f = file.getParentFile().listFiles(new ImageFileFilter());
int min = 0;
// System.out.println(file);
for (int i = 0; i < f.length; i++) {
if (f[i].equals(file)) {
min = i - 1;
if (min < 0) {
return f[f.length-1];
} else {
return f[min];
}
} else {
// System.out.println(0);
// return file;
}
}
return file;
}
}
/// Image.java
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
import java.awt.Color;
import javax.swing.JLabel;
import java.awt.Font;
public class Image extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
public BufferedImage img = null;
/**
* Create the panel.
*/
@SuppressWarnings(\"static-access\")
public Image() {
setBackground(new Color(255, 255, 255));
setLayout(null);
try {
Viewer ocr = new Viewer();
img = ImageIO.read(ocr.file);
JLabel lblNewLabel = new JLabel(Viewer.f.
- The document describes creating a custom Hero class in JavaScript that extends the createjs.Bitmap class. The Hero class overrides the initialize method to set properties like velocity and adds a tick method to update the position based on velocity.
- Creating an instance of Hero and adding it to the stage results in a jumping animation as the tick method increases velocity and position each frame.
- The document provides instructions on loading the Hero class, instantiating a Hero, and displaying it jumping on the canvas.
Leonardo DiCaprio House: A Journey Through His Extravagant Real Estate Portfoliogreendigital
Introduction
Leonardo DiCaprio, A name synonymous with Hollywood excellence. is not only known for his stellar acting career but also for his impressive real estate investments. The "Leonardo DiCaprio house" is a topic that piques the interest of many. as the Oscar-winning actor has amassed a diverse portfolio of luxurious properties. DiCaprio's homes reflect his varied tastes and commitment to sustainability. from retreats to historic mansions. This article will delve into the fascinating world of Leonardo DiCaprio's real estate. Exploring the details of his most notable residences. and the unique aspects that make them stand out.
Follow us on: Pinterest
Leonardo DiCaprio House: Malibu Beachfront Retreat
A Prime Location
His Malibu beachfront house is one of the most famous properties in Leonardo DiCaprio's real estate portfolio. Situated in the exclusive Carbon Beach. also known as "Billionaire's Beach," this property boasts stunning ocean views and private beach access. The "Leonardo DiCaprio house" in Malibu is a testament to the actor's love for the sea and his penchant for luxurious living.
Architectural Highlights
The Malibu house features a modern design with clean lines, large windows. and open spaces blending indoor and outdoor living. The expansive deck and patio areas provide ample space for entertaining guests or enjoying a quiet sunset. The house has state-of-the-art amenities. including a gourmet kitchen, a home theatre, and many guest suites.
Sustainable Features
Leonardo DiCaprio is a well-known environmental activist. whose Malibu house reflects his commitment to sustainability. The property incorporates solar panels, energy-efficient appliances, and sustainable building materials. The landscaping around the house is also designed to be water-efficient. featuring drought-resistant plants and intelligent irrigation systems.
Leonardo DiCaprio House: Hollywood Hills Hideaway
Privacy and Seclusion
Another remarkable property in Leonardo DiCaprio's collection is his Hollywood Hills house. This secluded retreat offers privacy and tranquility. making it an ideal escape from the hustle and bustle of Los Angeles. The "Leonardo DiCaprio house" in Hollywood Hills nestled among lush greenery. and offers panoramic views of the city and surrounding landscapes.
Design and Amenities
The Hollywood Hills house is a mid-century modern gem characterized by its sleek design and floor-to-ceiling windows. The open-concept living space is perfect for entertaining. while the cozy bedrooms provide a comfortable retreat. The property also features a swimming pool, and outdoor dining area. and a spacious deck that overlooks the cityscape.
Environmental Initiatives
The Hollywood Hills house incorporates several green features that are in line with DiCaprio's environmental values. The home has solar panels, energy-efficient lighting, and a rainwater harvesting system. Additionally, the landscaping designed to support local wildlife and promote
Modern Radio Frequency Access Control Systems: The Key to Efficiency and SafetyAITIX LLC
Today's fast-paced environment worries companies of all sizes about efficiency and security. Businesses are constantly looking for new and better solutions to solve their problems, whether it's data security or facility access. RFID for access control technologies have revolutionized this.
From Teacher to OnlyFans: Brianna Coppage's Story at 28get joys
At 28, Brianna Coppage left her teaching career to become an OnlyFans content creator. This bold move into digital entrepreneurship allowed her to harness her creativity and build a new identity. Brianna's experience highlights the intersection of technology and personal branding in today's economy.
Top IPTV UK Providers of A Comprehensive Review.pdfXtreame HDTV
The television landscape in the UK has evolved significantly with the rise of Internet Protocol Television (IPTV). IPTV offers a modern alternative to traditional cable and satellite TV, allowing viewers to stream live TV, on-demand videos, and other multimedia content directly to their devices over the internet. This review provides an in-depth look at the top IPTV UK providers, their features, pricing, and what sets them apart.
The Unbelievable Tale of Dwayne Johnson Kidnapping: A Riveting Sagagreendigital
Introduction
The notion of Dwayne Johnson kidnapping seems straight out of a Hollywood thriller. Dwayne "The Rock" Johnson, known for his larger-than-life persona, immense popularity. and action-packed filmography, is the last person anyone would envision being a victim of kidnapping. Yet, the bizarre and riveting tale of such an incident, filled with twists and turns. has captured the imagination of many. In this article, we delve into the intricate details of this astonishing event. exploring every aspect, from the dramatic rescue operation to the aftermath and the lessons learned.
Follow us on: Pinterest
The Origins of the Dwayne Johnson Kidnapping Saga
Dwayne Johnson: A Brief Background
Before discussing the specifics of the kidnapping. it is crucial to understand who Dwayne Johnson is and why his kidnapping would be so significant. Born May 2, 1972, Dwayne Douglas Johnson is an American actor, producer, businessman. and former professional wrestler. Known by his ring name, "The Rock," he gained fame in the World Wrestling Federation (WWF, now WWE) before transitioning to a successful career in Hollywood.
Johnson's filmography includes blockbuster hits such as "The Fast and the Furious" series, "Jumanji," "Moana," and "San Andreas." His charismatic personality, impressive physique. and action-star status have made him a beloved figure worldwide. Thus, the news of his kidnapping would send shockwaves across the globe.
Setting the Scene: The Day of the Kidnapping
The incident of Dwayne Johnson's kidnapping began on an ordinary day. Johnson was filming his latest high-octane action film set to break box office records. The location was a remote yet scenic area. chosen for its rugged terrain and breathtaking vistas. perfect for the film's climactic scenes.
But, beneath the veneer of normalcy, a sinister plot was unfolding. Unbeknownst to Johnson and his team, a group of criminals had planned his abduction. hoping to leverage his celebrity status for a hefty ransom. The stage was set for an event that would soon dominate worldwide headlines and social media feeds.
The Abduction: Unfolding the Dwayne Johnson Kidnapping
The Moment of Capture
On the day of the kidnapping, everything seemed to be proceeding as usual on set. Johnson and his co-stars and crew were engrossed in shooting a particularly demanding scene. As the day wore on, the production team took a short break. providing the kidnappers with the perfect opportunity to strike.
The abduction was executed with military precision. A group of masked men, armed and organized, infiltrated the set. They created chaos, taking advantage of the confusion to isolate Johnson. Johnson was outnumbered and caught off guard despite his formidable strength and fighting skills. The kidnappers overpowered him, bundled him into a waiting vehicle. and sped away, leaving everyone on set in a state of shock and disbelief.
The Immediate Aftermath
The immediate aftermath of the Dwayne Johnson kidnappin
The Evolution of the Leonardo DiCaprio Haircut: A Journey Through Style and C...greendigital
Leonardo DiCaprio, a name synonymous with Hollywood stardom and acting excellence. has captivated audiences for decades with his talent and charisma. But, the Leonardo DiCaprio haircut is one aspect of his public persona that has garnered attention. From his early days as a teenage heartthrob to his current status as a seasoned actor and environmental activist. DiCaprio's hairstyles have evolved. reflecting both his personal growth and the changing trends in fashion. This article delves into the many phases of the Leonardo DiCaprio haircut. exploring its significance and impact on pop culture.
Everything You Need to Know About IPTV Ireland.pdfXtreame HDTV
The way we consume television has evolved dramatically over the past decade. Internet Protocol Television (IPTV) has emerged as a popular alternative to traditional cable and satellite TV, offering a wide range of channels and on-demand content via the internet. In Ireland, IPTV is rapidly gaining traction, with Xtreame HDTV being one of the prominent providers in the market. This comprehensive guide will delve into everything you need to know about IPTV Ireland, focusing on Xtreame HDTV, its features, benefits, and how it is revolutionizing TV viewing for Irish audiences.
Unveiling Paul Haggis Shaping Cinema Through Diversity. .pdfkenid14983
Paul Haggis is undoubtedly a visionary filmmaker whose work has not only shaped cinema but has also pushed boundaries when it comes to diversity and representation within the industry. From his thought-provoking scripts to his engaging directorial style, Haggis has become a prominent figure in the world of film.
Barbie Movie Review - The Astras.pdffffftheastras43
Barbie Movie Review has gotten brilliant surveys for its fun and creative story. Coordinated by Greta Gerwig, it stars Margot Robbie as Barbie and Ryan Gosling as Insight. Critics adore its perky humor, dynamic visuals, and intelligent take on the notorious doll's world. It's lauded for being engaging for both kids and grown-ups. The Astras profoundly prescribes observing the Barbie Review for a delightful and colorful cinematic involvement.https://theastras.com/hca-member-gradebooks/hca-gradebook-barbie/
Orpah Winfrey Dwayne Johnson: Titans of Influence and Inspirationgreendigital
Introduction
In the realm of entertainment, few names resonate as Orpah Winfrey Dwayne Johnson. Both figures have carved unique paths in the industry. achieving unparalleled success and becoming iconic symbols of perseverance, resilience, and inspiration. This article delves into the lives, careers. and enduring legacies of Orpah Winfrey Dwayne Johnson. exploring how their journeys intersect and what we can learn from their remarkable stories.
Follow us on: Pinterest
Early Life and Backgrounds
Orpah Winfrey: From Humble Beginnings to Media Mogul
Orpah Winfrey, often known as Oprah due to a misspelling on her birth certificate. was born on January 29, 1954, in Kosciusko, Mississippi. Raised in poverty by her grandmother, Winfrey's early life was marked by hardship and adversity. Despite these challenges. she demonstrated a keen intellect and an early talent for public speaking.
Winfrey's journey to success began with a scholarship to Tennessee State University. where she studied communication. Her first job in media was as a co-anchor for the local evening news in Nashville. This role paved the way for her eventual transition to talk show hosting. where she found her true calling.
Dwayne Johnson: From Wrestling Royalty to Hollywood Superstar
Dwayne Johnson, also known by his ring name "The Rock," was born on May 2, 1972, in Hayward, California. He comes from a family of professional wrestlers, with both his father, Rocky Johnson. and his grandfather, Peter Maivia, being notable figures in the wrestling world. Johnson's early life was spent moving between New Zealand and the United States. experiencing a variety of cultural influences.
Before entering the world of professional wrestling. Johnson had aspirations of becoming a professional football player. He played college football at the University of Miami. where he was part of a national championship team. But, injuries curtailed his football career, leading him to follow in his family's footsteps and enter the wrestling ring.
Career Milestones
Orpah Winfrey: The Queen of All Media
Winfrey's career breakthrough came in 1986 when she launched "The Oprah Winfrey Show." The show became a cultural phenomenon. drawing millions of viewers daily and earning many awards. Winfrey's empathetic and candid interviewing style resonated with audiences. helping her tackle diverse and often challenging topics.
Beyond her talk show, Winfrey expanded her empire to include the creation of Harpo Productions. a multimedia production company. She also launched "O, The Oprah Magazine" and OWN: Oprah Winfrey Network, further solidifying her status as a media mogul.
Dwayne Johnson: From The Ring to The Big Screen
Dwayne Johnson's wrestling career took off in the late 1990s. when he became one of the most charismatic and popular figures in WWE. His larger-than-life persona and catchphrases endeared him to fans. making him a household name. But, Johnson had ambitions beyond the wrestling ring.
In the early 20
Christian Louboutin: Innovating with Red Solesget joys
Christian Louboutin is celebrated for his innovative approach to footwear design, marked by his trademark red soles. This in-depth look at his life and career explores the origins of his creativity, the milestones in his journey, and the impact of his work on the fashion industry. Learn how Louboutin's bold vision and dedication to excellence have made his brand synonymous with luxury and style.
1. DPP B2 (c)
JOB SHEET
COURSE : DIPLOMA IN DIGITAL MEDIA DESIGN
SESSION : JAN - JUN 2012 SEMESTER : 4
CODE/SUBJECT : DDM 4323 - GAME DESIGN SHEET NO : JS-8
NO OF STUDENTS : 30 WEEK : 8
LECTURER : AZMI BIN MOHAMED
TOPIC : 8.0 SPACE SHOOTER
8.1 Research and create a basics of movie clips and character
movement for space shooter game
SUB-TOPIC :
8.2 Add an interactive elements; lives and score for game
8.3 Add sound effects using ActionScript.
After completing this topic, students should be able to:
LEARNING 1. Develop their own space shooter games with random enemies.
OUTCOME : 2. Create an interactive element; lives and score for their games.
3. Add a sound effects using ActionScript
TOOLS / 1. Computer
EQUIPMENTS / 2. Projector
MATERIALS : 3. Adobe Flash CS4
INSTRUCTION :
1. Research the ActionScript for creates a space shooter game, character movement and
shoot control using keyboard.
2. Follow step-by-step tutorial below to create a space shooter game.
Page | 1
2. DPP B2 (c)
PROCEDURE :
STEP KEY POINT
Movie Clip and Movement
1. Open Adobe Flash and create new
document (ActionScript 2.0)
Size: 800x600px
Frame Rate : 24fps
Background Color: Black
2. Create a Movie Clip by right clicking your
library tab and selecting "New
Symbol...", make sure "Movie Clip" is
selected and choose a name.
3. Flash will create and open the Movie
Clip for editing, so just paste an image or
draw a space ship with Flash's drawing
tools. After drawing your ship, get back
to the main timeline by click on "Scene
1":
At properties panel; put a variable name
as “ship”.
4. Right click the first frame in your timeline this.onEnterFrame = function()
and select "Actions". Type this: {
if (Key.isDown(Key.RIGHT))
{
Ship._x += 10;
} else if (Key.isDown(Key.LEFT))
{
Ship._x -= 10;
} else if (Key.isDown(Key.UP))
{
Ship._y -= 10;
} else if (Key.isDown(Key.DOWN))
{
Ship._y += 10;
}
}
Page | 2
3. DPP B2 (c)
Shooting
5. This is the second part of the tutorial
and we are going to enable the ship to
shoot. Previously we made our ship fly;
now we are going to make it shoot and
set limits to where it can go.
First we need to make our bullets, right
click the library tab, select "New
Symbol" and give it the name "Bullet".
Before clicking OK, click Advanced,
select "Export for Actionscript" and
make sure the identifier is "Bullet".
6. We do this because we need to export
the Bullet Movie Clip during running time
to create many bullets and we will use
the name determined in identifier to call
it later. Draw a small bullet, and position
it like this:
This is called registration point, in the
stage this is the position of the Bullet
Movie Clip.
7. Now open the actions window of the first this.onEnterFrame = function()
frame of the Movie Clip, insert this code: {
this._x += 12;
if (this._x > 800)
{
this.removeMovieClip();
}
}
8. Now go to the main timeline, select the var i = 0;
first frame and open the actions this.onEnterFrame = function()
{
windows. You will see the previous
.
codes that we have written. Add this .
code to the old one so we can fire our .
bullets: else if (Key.isDown(Key.DOWN))
{
Ship._y += 5;
}
if (Key.isDown(Key.SPACE))
Page | 3
4. DPP B2 (c)
{
i++;
_root.attachMovie("Bullet",
"Bullet" + i,
_root.getNextHighestDepth());
_root["Bullet" + i]._x =
Ship._x + 3;
_root["Bullet" + i]._y =
Ship._y;
}
}
9. Before we finish this tutorial, let's put if (Key.isDown(Key.RIGHT))
some limits to where our ship can go, we {
don't want it to get off the screen. Make if (Ship.hitTest(800, Ship._y,
these changes: true))
{
Ship._x -= 5;
}
Ship._x += 5;
} else if (Key.isDown(Key.LEFT))
{
if (Ship.hitTest(0, Ship._y,
true))
{
Ship._x += 5;
}
Ship._x -= 5;
} else if (Key.isDown(Key.UP))
{
if (Ship.hitTest(Ship._x - 40, 0,
true))
{
Ship._y += 5;
}
Ship._y -= 5;
} else if (Key.isDown(Key.DOWN))
{
if (Ship.hitTest(Ship._x - 40,
600, true))
{
Ship._y -= 5;
}
Ship._y += 5;
}
if (Ship.hitTest(800, Ship._y, true))
{
Ship._x -= 5;
}
Page | 4
5. DPP B2 (c)
Enemies
10. This is the third tutorial of a series about
developing a Space Shooter game, in
this tutorial we are going to make enemy
ships.
Create a new Movie Clip and draw your
enemy ship, don't forget to set the
identifier to "Enemy" and select "Export
to Actionscript".
11. Now drag the enemy Movie Clip to the onClipEvent(load)
stage, give it an instance name of {
"Enemy0", right click it and select function reset()
"Actions". Insert this:
{
var timer = 12;
this._y = Math.random() * 300
this._x = 550
mySpeed = Math.ceil(Math.
random() * 6) + 1;
}
reset();
}
// This part of the code creates a function called
reset() when the Movie Clip loads for the first
time. Inside reset() we set this._y to a random
number between 0 and 600, this._x to 800 and
the speed of our enemy to a random number
between 1 and 6.
12. Then, insert this code: onClipEvent(enterFrame)
{
this._x -= mySpeed;
if (this._x < -10)
{
reset();
}
if (timer >= 12)
{
Math.ceil(Math.random() * 2)
timer = 0;
Page | 5
6. DPP B2 (c)
}
if (dir == 1)
{
this._y -= 3;
} else if(dir == 2)
{
this._y += 3;
}
timer++
}
13. Add this code in the main timeline before var nrEnemies = 3;
the rest of the code. for (i = 1; i < nrEnemies; i++)
{
_root.Enemy.duplicateMovieClip
("Enemy" + i,
_root.getNextHighestDepth());
}
Lives and Score
14. This is the forth part of the development
of a Space Shooter game. In this tutorial
we will add lives, scores and game over
to our game.
Let's start with score.Open the main
timeline code and add this variable: var score = 0;
15. Now open the Bullet's code and add this: this.onEnterFrame = function()
{
this._x += 9;
if (this._x > 550)
{
this.removeMovieClip();
}
for (i = 0; i < _root.nrEnemies;
i++)
{
if (this.hitTest
(_root["Enemy" + i]))
{
_root["Enemy" + i].reset();
_root.score += 10;
this.removeMovieClip();
}
}
}
// This is the code we used before to know if a
bullet hits an enemy, so we can put the score
for killing an enemy there.
Page | 6
7. DPP B2 (c)
16. The score is done; we just need to show
the player his score. To do that, select
the Text Tool and draw it on the stage.
Write "Score:"
17. Now draw another Text box on the
stage. Select this new Text box and
change these properties:
18. Now let's make our ship have lives. Add var lives = 3;
another variable in the main code:
19. And make these changes in the code if (this.hitTest(_root["Enemy" + i]))
that checks if the player crashed with an {
_root.lives -= 1;
enemy:
reset()
for(k = 0; k < _root.nrEnemies;
k++)
{
_root["Enemy" + k].reset();
}
}
Page | 7
8. DPP B2 (c)
20. Draw two text boxes again
21. We can see the ship losing lives now,
but nothing happens when it goes lower
than zero. To change that we tell the
player when its game over. Create a new
movie clip.
22. Write "Game Over" using the text tool
and go back to the main timeline.
Page | 8
9. DPP B2 (c)
23. Add this to the Ship's code: if (this.hitTest(_root["Enemy" + i]))
{
_root.lives -= 1;
if (_root.lives <= 0)
{
_root.attachMovie("GameOver",
"GameOver", 100)
_root.GameOver._x = 275
_root.GameOver._y = 150
this.swapDepths(10);
this.removeMovieClip();
}
reset()
for(k = 0; k < _root.nrEnemies;
k++)
{
_root["Enemy" + k].reset();
}
}
Timer
24. Before we start with sound we need to
make some changes. You may have
noticed that our ship shoots bullets as
much as the player press the space bar,
that's not right as it makes the game
much easier.
To prevent that, we are going to add a
timer and the ship will shoot as much as
we want.
First add a new variable: var timer = 8;
Then, make this changes: this.onEnterFrame = function()
{
timer++;
.
. .
if (Key.isDown(Key.SPACE))
{
i++;
if(timer >= 8)
{
_root.attachMovie("Bullet",
"Bullet" + i,
_root.getNextHighestDepth());
_root["Bullet" + i]._x =
Ship._x + 3;
_root["Bullet" + i]._y = Ship._y;
timer = 0;
}
}
}
Page | 9
10. DPP B2 (c)
The code runs like this: Before:
If timer >= 8 then shoot a bullet and set
timer to 0
Now that timer = 0, the bullet wont shoot,
so the player has to wait all the code to
run at least 8 timer to shoot again
(timer++ will increase timer by 1 every
frame)
Timer will be bigger than 8 again and the
player can shoot.
After:
Sound
25. We can add the sound now. You need to
have an mp3 file that's going to be the
sound played when you fire. Now that
you have your sound, click File > Import
> Import to library...Select your mp3 file
and click open, a new file should appear
on the library. Right click it and click
"Linkage..." Check "Export to
ActionScript..." and set the Identifier to
"shoot". This is the same thing we did
previously with the Bullet Movie Clip, we
need the linkage to call this on the code.
Page | 10
11. DPP B2 (c)
26. Add this to the shooting code: if (Key.isDown(Key.SPACE))
{
i++;
if(timer >= 8)
{
_root.attachMovie("Bullet",
"Bullet" + i,
_root.getNextHighestDepth());
_root["Bullet" + i]._x = Ship._x
+ 3;
_root["Bullet" + i]._y = Ship._y;
var shoot_sound = new Sound();
shoot_sound.attachSound("shoot");
shoot_sound.start();
timer = 0;
}
}
27. The game is done! Hope you enjoying
developing and playing it.
REFERENCES : 1. Andrew Rollings, Ernest Adams (2003). Andrew Rollings and
Ernest Adams on Game Design. USA: New Riders
Publishing.
2. Andrew Rollings, Dave Morris (2004). Game Architecture and
Design:A New Edition. USA: New Riders Publishing.
3. Patrick O’luanaigh (2006). Game Design Complete. USA:
Paraglyph Press.
Page | 11