1 / 25

Game Programming in Java

Game Programming in Java. Dr. Jeyakesavan Veerasamy CS faculty , The University of Texas at Dallas Email: jeyv@utdallas.edu Website: www.utdallas.edu/~jeyv. Goals. Understand C++ vs. Java concepts Strengthen recursive coding skills See algorithm efficiency in action

cormac
Download Presentation

Game Programming in Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Game Programming in Java Dr. Jeyakesavan Veerasamy CS faculty, The University of Texas at Dallas Email: jeyv@utdallas.edu Website: www.utdallas.edu/~jeyv

  2. 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!

  3. C++ vs. Java: Similarities • Both 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.

  4. C++ Compiler & Linker expectations file1.cpp file2.cpp filen.cpp …. Compiler Compiler Compiler file1.o file2.o filen.o …. Linker C++ compiler does not care about filenames. application (executable)

  5. Java? file1.java file3.java filen.java file2.java …

  6. C++ Concepts: Operator overloading • Operator overloading: ComplexNumber x, y, z; z = x + y; • In Java?

  7. C++ Concepts: Method overloading • Method overloading – similar to Java • use different argument types to differentiate

  8. C++ Concept: Friend • friend designation - breaks OOP philosophy! • specific functions/methods outside the class can access private data  Why?

  9. Concepts: Objects • Objects can be created as local variables just like any basic data types. ComplexNumber num1;

  10. Arrays • Basic data types and classes are treated the same way in C++, unlike Java. ComplexNumber numbers[5];

  11. C++ Array version #2 ComplexNumber *numbers; numbers = new ComplexNumber[5];

  12. C++ Array version #3 ComplexNumber **numbers; numbers = new ComplexNumber*[5]; for( index i = 0 ; i < 5 ; i++) numbers[i] = new ComplexNumber(…);

  13. Java ComplexNumber numbers[]; numbers = new ComplexNumber[5]; for( index i = 0 ; i < 5 ; i++) numbers[i] = new ComplexNumber(…);

  14. C++ Pointers vs Java References • Explicit in C++: ComplexType *cnump; • Pointer arithmetic • Dynamic memory allocation requires pointers (just like references in Java)

  15. Dynamic memory allocation • No 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.

  16. C++ vs. Java: differences

  17. Example: Guessing game • Think 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 >

  18. 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.

  19. 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.

  20. Example: Lotto game • Generate 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 49

  21. Example: Hangman game

  22. 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 problems

  23. 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 solution files are @ www.utdallas.edu/~jeyv/compete

  24. 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.

  25. Memory game • GUI setup code • Image files

More Related