Mike Burnham CS 470 Final Presentation

Slides:



Advertisements
Similar presentations
Adam Miles. Transport Tycoon Deluxe (TTD): Written by Chris Sawyer for Microprose in Written almost entirely in Assembly language. Designed for.
Advertisements

Adam Miles.  Transport Tycoon Deluxe (TTD):  Written by Chris Sawyer for Microprose in  Written almost entirely in Assembly language.  Designed.
CSC 243 – Java Programming, Spring 2013 March 26, 2013 Week 8, java.lang.Clonable & java.io.Serializable Interfaces.
ITEC 320 Lecture 12 Higher level usage of pointers.
A Grid Parallel Application Framework Jeremy Villalobos PhD student Department of Computer Science University of North Carolina Charlotte.
Shortest path algorithm. Introduction 4 The graphs we have seen so far have edges that are unweighted. 4 Many graph situations involve weighted edges.
Dovetail Killer? Implementing Jonathan’s New Idea Tarek Sherif.
View from 30,000 feet and Introduction to Graph Problems Lecture 19 CS 312.
A Fighting Game of Sorts CS470 Project Presentation By Mark Blum.
CHAPTER 1.4/1.5 CLOSED-FORM OF A FUNCTION. WHAT HAVE WE DONE SO FAR? Definition of a Function Table Graph Description Difference Tables Linear Function.
ZOMBIE MADNESS! Jack Smith Steve Mander-Jones OUTLINE > GAME OVERVIEW > IMPLEMENTATION > AI FEATURES > CONCLUSION.
Othello Artificial Intelligence With Machine Learning
Design Document Presentation. Review Quoridor – a board game played on a grid where players must advance tokens across a board to win. Our basic objective:
Project 2 Presentation & Demo Course: Distributed Systems By Pooja Singhal 11/22/
Introduction to search Chapter 3. Why study search? §Search is a basis for all AI l search proposed as the basis of intelligence l all learning algorithms,
CSS446 Spring 2014 Nan Wang.  Java Collection Framework ◦ Set ◦ Map 2.
Application of Artificial Intelligence to Chess Playing Jason Cook Capstone Project.
Review for Final Andy Wang Data Structures, Algorithms, and Generic Programming.
Cilk Pousse James Process CS534. Overview Introduction to Pousse Searching Evaluation Function Move Ordering Conclusion.
Subsampling Graphs 1. RECAP OF PAGERANK-NIBBLE 2.
Pedagogical Possibilities for the 2048 Puzzle Game Todd W. Neller.
 What is the game about?  Looking into the algorithm  Looking into the code  Complexity and conclusions.
Progress Report and Discussion.  Demo and discussion of current features  UI development issues  Further work  Discussion of possible underlying models.
CSC490 – Effect of Internship Experience on Technical Knowledge of Graduating CS Students By Tong Zou.
More Induction Discrete Structures (CS 173) Madhusudan Parthasarathy, University of Illinois 1 A Pork-Butchers Shop Seen from a Window Van Gogh.
03/05/13 More Induction Discrete Structures (CS 173) Derek Hoiem, University of Illinois 1 Artist: Frank.
Carcassonne Expert Game1 Carcassonne Java Jess Expert Game Intelligent Board Games and Query-Based Utility Reasoning René Molenaar, Ludo Maat.
An AI Game Project. Background Fivel is a unique hybrid of a NxM game and a sliding puzzle. The goals in making this project were: Create an original.
Tom’s Complete CARCASSONNE EXPANSION TUCKBOXES v2.0 All images © Hans Im Gluck & Rio Grande Games. Tuckboxes prepared by Tom Alphin, nickname.
Efficient Map Path Finding with Realistic Conditions Third Quarter Version Olex Ponomarenko.
Recursion Chapter What is recursion? Recursion occurs when a method calls itself, either directly or indirectly. Used to solve difficult, repetitive.
Debugging. Design Well A careful design limits the necessary debugging - think “top-down” Write comments as you go, especially invariants –You can test.
Recursion Topic 5.
Set Collection A Bag is a general collection class that implements the Collection interface. A Set is a collection that resembles a Bag with the provision.
Othello Artificial Intelligence With Machine Learning
Two-Dimensional Arrays
Stage 1 Before you start to script the game you need to create the assets. Stage 1 will help you to create your background image, score zones, paddles.
“Link All Together” – Linktile 2D game programming
Spanish Mad libs with Scratch
Application of Artificial Intelligence and Graphics to Support a Three-Dimensional Game Chris Cummings.
COMP 9517 Computer Vision Segmentation 7/2/2018 COMP 9517 S2, 2017.
Lecture No.43 Data Structures Dr. Sohail Aslam.
8-1: Relations and Functions
Fractal image compression
Constraint Satisfaction Problems vs. Finite State Problems
Othello Artificial Intelligence With Machine Learning
MapReduce Computing Paradigm Basics Fall 2013 Elke A. Rundensteiner
Relations and Functions
Road Map CS Concepts Data Structures Java Language Java Collections
Road Map CS Concepts Data Structures Java Language Java Collections
structures and their relationships." - Linus Torvalds
CS223 Advanced Data Structures and Algorithms
structures and their relationships." - Linus Torvalds
Functions.
Lec 09 Agenda 1/ Searching and sorting, logs
CS3901 Intermediate Programming & Data Structures Introduction
Implementation Based on Inverted Files
Implementing Hash and AVL
Objectives Identify functions.
Data Illustrated by Tag Clouds
Road Map CS Concepts Data Structures Java Language Java Collections
CS223 Advanced Data Structures and Algorithms
Vocabulary Word Definition Relation A set of ordered pairs.
Trees in java.util A set is an object that stores unique elements
CS203 Lecture 15.
structures and their relationships." - Linus Torvalds
Othello Artificial Intelligence With Machine Learning
Games Development 2 Entity / Architecture Review
2019 SAIMC Puzzle Challenge General Regulations
Presentation transcript:

Mike Burnham CS 470 Final Presentation Java Carcassonne Mike Burnham CS 470 Final Presentation

Carcassonne Tile based table top game. Players take turns placing landscape tiles and claiming features with tokens.

Scoring Points are scored for completing claimed landscape features Cities Roads Cloisters Farms scored at end of game based on bordering cities.

Interface

Initial Design Landscape as graph, with tiles as nodes. Store hash of tiles keyed on coordinates. Stack of tile objects will be randomized at game start. List of tokens for each player, referencing the tiles they occupy.

Final Design TileFeatures as nodes in graph. Tiles only used in coordinate hash. Tile stores array of TileFeatures representing its borders, and hash of TileFeatures keyed on color codes.

Data Files Each tile has two parts Two Image files Tile description Artistic representation of the tile. Feature map with unique color for each feature. Tile description A single txt file for entire tile set. Encodes features of each tile for initializing tile objects.

Tile data tileL count 3 farm 24 23 1000000000010 0x000000 road 62 19 0100000000000 0x111111 farm 85 24 0010001000000 0x222222 0x333333 city 112 63 0001110000000 0x333333 road 58 92 0000000100000 0x444444 farm 25 96 0000000011000 0x555555 road 23 63 0000000000100 0x666666

Landscape example

Landscape example

One Turn Each turn is a three stage process. Tile placement Check for legal placement. Token placement Check for legal token placement (if attempted). Score any features completed.

Algorithms Checking token placement Scoring Both fairly simple with final design. Most feature graphs are small. Recursively turn graph into list, iterate list.

Domain Model

Schedule Had planned for three iterations Game model Interface Network play and/or AI Currently about halfway through interface work.

Conclusion Created a Java version of Carcassonne. Largest program I’ve written so far. More design time might have saved many revisions.