/
Game Programming in Java Game Programming in Java

Game Programming in Java - PowerPoint Presentation

alida-meadow
alida-meadow . @alida-meadow
Follow
417 views
Uploaded On 2017-05-25

Game Programming in Java - PPT Presentation

Dr Jeyakesavan Veerasamy CS faculty The University of Texas at Dallas Email jeyvutdallasedu Website wwwutdallasedujeyv Goals Understand C vs Java concepts Strengthen recursive coding skills ID: 552179

numbers java game complexnumber java numbers complexnumber game memory overloading class programming target compiler guess number run 100 operator

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Game Programming in Java" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Game Programming in Java

Dr. Jeyakesavan Veerasamy

CS faculty

, The University

of Texas at Dallas

Email: jeyv@utdallas.edu

Website: www.utdallas.edu/~jeyvSlide2

Goals

Understand C++ vs. Java concepts

Strengthen recursive coding skills

See algorithm efficiency in action

Strengthen logical thinking skills

Strengthen coding skills in Java

Event driven programming

This is NOT a “serious” game programming workshop!Slide3

C++ vs. Java: SimilaritiesBoth support OOP. Most OOP library contents are similar, however Java continues to grow faster.

Syntax is very close – Java has strong influence of C/C++. Easy to learn the other language when you know one of these.Slide4

C++ Compiler & Linker expectations

file1.cpp

file2.cpp

filen.cpp

….

file1.o

file2.o

filen.o

….

Linker

application

(executable)

Compiler

Compiler

Compiler

C++ compiler does not

care about filenames.Slide5

Java?

file1.java

file2.java

file3.java

filen.javaSlide6

C++ Concepts: Operator overloading

Operator overloading:

ComplexNumber x, y, z;

z = x + y;

In Java? Slide7

C++ Concepts: Method overloading

Method overloading – similar to Java

use different argument types to differentiateSlide8

C++ Concept: Friend

friend designation - breaks OOP philosophy!

specific functions/methods outside the class can access private data

 Why?Slide9

Concepts: Objects

Objects can be created as local variables just like any basic data types.

ComplexNumber num1;Slide10

Arrays

Basic data types and classes are treated the same way in C++, unlike Java.

ComplexNumber numbers[5];Slide11

C++ Array version #2

ComplexNumber *numbers;

numbers = new ComplexNumber[5];Slide12

C++ Array version #3

ComplexNumber **numbers;

numbers = new ComplexNumber*[5];

for( index i = 0 ; i < 5 ; i++)

numbers[i] = new ComplexNumber(…);Slide13

Java

ComplexNumber

numbers[];

numbers = new

ComplexNumber[5

];

for( index i = 0 ; i < 5 ; i++)

numbers[i] = new ComplexNumber(…);Slide14

C++ Pointers vs Java References

Explicit in C++: ComplexType *cnump;

Pointer arithmetic

Dynamic memory allocation requires pointers (just like references in Java)Slide15

Dynamic memory allocationNo automatic garbage collection in C++

# of new invocations should match # of delete invocations.

If a class constructor allocates memory (i.e. uses “new …”), it needs a destructor method too – it should use “delete …” to release allocated memory.Slide16

C++ vs. Java: differences

C++

Java

Write once, compile everywhere

 unique executable for each target

Write once, run

anywhere

 same class files will run above all target-specific JREs.

No strict relationship between class names and filenames. Typically, a header file and implementation file are used for each class.Strict

relationship is enforced, e.g. source code for class PayRoll has to be in PayRoll.javaI/O statements use cin and cout, e.g.

cin >> x;cout << y;I/O input mechanism is bit more complex, since default mechanism reads one byte at a time (System.in). Output is easy, e.g.System.out.println(x);

Pointers, References, and pass by value are supported. No array bound checking.Primitive data types always passed by value. Objects are passed by reference. Array bounds are always checked.

Explicit memory management. Supports destructors. Automatic Garbage Collection.Supports operator overloading.Specifically

operator overloading was left out.Slide17

Example: Guessing gameThink of a number between 1 and 100 in your mind. Then, the computer (program) will ask you a series of questions and determine that number based on your answers.

Series of interactions:

Program:

Is it NN?

Your response:

<

,

=

, or >Slide18

Sample run #1

Guess a number between 1 and 100 (both inclusive)

and get ready to answer a few questions.

How about 50 (<,=,>)? <

How about 25 (<,=,>)? <

How about 12 (<,=,>)? >

How about 18 (<,=,>)? >

How about 21 (<,=,>)? <

How about 19 (<,=,>)? >Your guess is 20.Slide19

Sample run #2

Guess a number between 1 and 100 (both inclusive)

and get ready to answer a few questions.

How about 50 (<,=,>)? >

How about 75 (<,=,>)? <

How about 62 (<,=,>)? >

How about 68 (<,=,>)? >

How about 71 (<,=,>)? =

Your guess is 71. Slide20

Example: Lotto gameGenerate 6 unique numbers from 1 to 50.

Output should NOT have repeating numbers.

Random ran =

new

Random

();

int x = ran.nextInt(50); //returns 0 to 49Slide21

Example: Hangman gameSlide22

Programming Competitions:usaco.org

Create a new account in usaco.org

Use graduation year 9999, country code IND

Then go to your email to find the password.

Login first, then go to

www.usaco.org/index.php?page=nov12problems

look into Bronze

level problemsSlide23

USA Computing Olympiad training site

ace.delos.com/usacogate

You need to create an account (use KITE email address) to gain access

.

100s or 1000s of programming problems!

A few s

olution

files are @

www.utdallas.edu/~jeyv/competeSlide24

Example: Knapsack problem

int weights[] = { 5, 9, 23, 12, 45, 10, 4, 19, 53 };

int target = 100;

Goal is to find 2 distinct weights, when added, come to close to target, but do NOT exceed it.

For this problem, answer is 45 and 53.

Now, let us write generic algorithm so that we can find it for any user-specified target value.Slide25

Memory gameGUI setup code

Image files