Video-Projekt TicTacCam

Ähnliche Dokumente
Dokumentation des Projektes Tic Tac Toe

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3

Programmierpraktikum

Benutzung von Microsoft Visual Studio 2017

Bedienungsanleitung. Stefan Feldmann

Pai Sho German Rules Inhaltsverzeichnis

Java Projekt: Tic Tac Toe + GUI

Dieses Dokument enthält alle Teilaufgaben zur Java-Pflichtaufgabe für das Sommersemester Aufgabe 1 (Vier Gewinnt 1. Teil)

Netzwerkprogrammierung in Java Protokollspezifikation Vier Gewinnt

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Safari Spielanleitung/Spielregeln. Brettspielnetz.de Team Copyright 2017 Brettspielnetz.de

Versuch 3: Kamera 1. In diesem Programm sind die grundlegenden Funktionen der Kamera schon implementiert. Diese Funktionen sind:

LASERBALL EIN PUBLIC DOMAIN SPIEL 1991/ von Thomas Ilg Programmiert für den klassischen ATARI ST oder kompatible Emulatoren.

Um Listen in übersichtlicher Form zu präsentieren, verwenden Sie zur bequemen Eingabe und übersichtlichen Ausgabe Tabellen.

Das Handbuch zu KReversi. Clay Pradarits Entwickler: Mario Weilguni Korrektur: Lauri Watts Deutsche Übersetzung: Maren Pakura

Universität Stuttgart Programmierübung Bildschirmschoner

Aufgabenblatt 3. Kompetenzstufe 2. Allgemeine Informationen zum Aufgabenblatt:

Das Werkzeug Verschieben/Kopieren wird über die Symbolleiste oder im Pull-Down- Menü Tools > Verschieben (Mac: Tools > Verschieben) aktiviert.

Das Handbuch zu KReversi. Clay Pradarits Entwickler: Mario Weilguni Korrektur: Lauri Watts Deutsche Übersetzung: Maren Pakura

JAVA Projekt Mensch ärgere dich nicht

von Heinrich Glumpler und Matthias Schmitt

Es gibt ein Spielfeld mit 9x9 Feldern. Jedes Feld hat eine aus insgesamt 7 Farben.

Ausdruck von Ersatzquittungen bzw. Belegen

NMG2 Auswertungssoftware NMG2-USB/RS232-PROSOFT

Aufgabe 2 (Musterlösung) CorelDRAW

Durchführung einer Inventur im HWP

INSTALLATIONSANLEITUNG BEDIENUNGSANLEITUNG

Logic Masters 2015 Runde 2: Schiffe versenken und Varianten

INSTALLATIONSANLEITUNG BEDIENUNGSANLEITUNG

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Einmaleins-Rennen. Einmaleins-Rennen Spielregeln

Werkzeugelemente Beamer Epson EB585/EB595

Installation & Usage. Version 1.0. estickflashtool

Inhalt: Spielbrett, 36 Kugeln (8 gelbe, 7 rote, 6 grüne, 5 blaue, 4 weiße, 3 graue. 3 schwarze), 2 rote und 2 gelbe Zeiger.

Swissmem ebooks ebook Funktionen Software Version 4.x (PC)

Programmieren? Das kann ich auch! Bau dir deinen eigenen Bildschirmschoner

Spiele auf dem Amigo-Tablet

LinTech. Konfigurationssoftware. Bedienungsanleitung. Revision 1.46

BRING DEINE STRATEGIE INS ROLLEN THE STRATEGIC BOARD GAME WITH SHIFTING MARBLES

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben

Das fesselnde Strategiespiel für zwei Personen. The exciting strategy game for two players

Produktschulung WinArchiv

Futterneid. Ein Spiel um Spatzen, Tauben und Brotkrumen. Von Cyril Kajnar und Martin Nerurkar. Entworfen im Rahmen des GameArch Seminars

Brettspiele (Mühlespiel)

Swissmem ebooks ebook Funktionen Software Version 4.x (PC)

C-Programme kompilieren mit Visual Studio Express

Softwareentwicklung Schrittweise Verfeinerung, Programmieren üben: Tic-Tac-Toe in Raten

Sudoku goes Classic. Spielmaterial und die gemeinsame DOMINARI - Regel. für 2 Spieler ab 8 Jahren

Das ist nicht besonders spannend. Wir ändern daher die Regeln für den Turm leicht ab.

Mandozzi Elettronica S.A..

Pinguin Spielanleitung/Spielregeln. Brettspielnetz.de Team Copyright 2017 Alvydas Jakeliunas und Günter Cornett

Kurze Einführung in die C++-Entwicklungsumgebung Visual Studio 2005

TEXTEFFEKTE TEXTFELDER VERWENDUNG VON TEXTFELDERN. Markieren Sie den Text, und klicken Sie in der Registerkarte Start auf das

Fähigkeitsnachweis bei Spritzgießmaschinen VDMA Teil 2: Nachweis der Kurzzeitfähigkeit. Bedienungsanleitung zum Excel-Programm

Deinen EV3-Kasten vorbereiten

Oldenburger Messprogramme

Beispielprojekt: Datenloggen mit MSD200 und Auswertung mit Tabellenkalkulation (Teil 2)

Der folgende Vortrag basiert auf dem Text A Polynomial Time Algorithm for the N-Queens Problem von Rok Sosic und Jun Gu aus dem Jahre 1990.

HALLO UND WILLKOMMEN!

Firmware-Update für CHERRY ehealth-bcs Produkte Terminal ST-1503 und Tastatur G

Spielregeln für Schach

Schach Spielanleitung/Spielregeln. Brettspielnetz.de Team Copyright 2017 Brettspielnetz.de

Software- Beschreibung. PC- Programm SM7D zur Datenerfassung für das Strahlenmessgerät SM7D Version V1.0 de ( Stand: 28 Januar 2011)

Einführung in die Programmierung für NF MI. Übung 04

CRecorder Bedienungsanleitung

Anleitung zum Applet Richtungsfeld einer Differentialgleichung

Bedienungshinweise zum. Hörmann-Architektenprogramm

Spielanleitung Steffen Spiele

Andreas Kuhnekath. Kulami. Spielregel

INHALTSVERZEICHNIS. 2D-DXF / DWG Import Allgemeines

Installationsgruppen

2.1.1 Skizzieren mit Abhängigkeiten

Musterlösung: 12. Jgst. 2. Kursarbeit Datum: Fach: Informationsverarbeitung (LK)

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

INSTALLATIONSANLEITUNG BEDIENUNGSANLEITUNG

Ein Spiel von Thomas Odenhoven. Spieleranzahl: 2 5. Dauer: Minuten

Spannung und Stromstärke einer Solarzelle Einfluss von der Fläche und der Beleuchtungsstärke

ConstruCAM-3D / Modul ReliefVTR

Microsoft Visual C

Robot Karol für Delphi: Entwicklerhandbuch

Software zur Gestensteuerung von Windows 7 über Kinect for Xbox

Dokumentation Installation & Konfiguration signotec Virtual Comport Driver. Version: Datum:

Lösung Arbeitsblatt Mengenlehre

Der Roboter wird auf einer 2 cm breiten, schwarzen Spur (mit Links- und Rechtskurven) gestartet.

Preisanpassungs-Modul

Erstellung eines elektronischen Bilderbuchs mit Open Office

Kurzanleitung Hama Photokalender v

Die Uräusschlange galt im alten Ägypten zu allen Zeiten als königliches Abzeichen, das von den Pharaonen an der Stirn getragen wurde.

Observer. Handbuch. Handbuch Observer. Abbildung: Beispiel Observer. Abbildung: Beispiel Touchinterface

Mind Mup.

Flappy Bird BlueJ Station 1: Flappy erstellen und bewegen

Transkript:

Video-Projekt TicTacCam Sven Eric Härtel Audio-Video Programmierung, Media Systems WS09/10 Prof. Dr. Andreas Plaß TicTacCam ist eine kleine Videospielapplikation, die sich an dem bekannten PEN & Paper Spielprinzip von TicTacToe orientiert.

Inhaltsverzeichnis 1. Einleitung 2. Voraussetzungen 3. Spiel- und Bedienungsanleitung 4. Programmstruktur 2

1. Einleitung Vorgabe war, das Spiel TicTacToe mit Hilfe von OpenCV 1 und C++ sowie einer Webcam programmtechnisch so umzusetzen, dass eine spielbare Variante dabei heraus kommt. OpenCV eignet sich in idealerweise zur Mensch-Maschine Interaktion, Objekterkennung, Segmentierung und Bewegungserkennung. Mit Hilfe einer montierten Webcam wird die Bewegung bzw. Lage des Spielsteins erkannt und in ein Ausgabefenster übertragen, wo die unterschiedlichen Positionen in abwechselnder Weise per Kreuz oder Kreis markiert werden. So ist ein normaler Spielablauf zwischen zwei Personen möglich. Dem Programm ist ein Spielfeld (camtttprintout.jpg) beigelegt welches man sich ausdrucken sollte, um einen visuellen Rahmen für die Kalibrierung und gleichzeitig das Spielfeld zu erhalten in dessen Rahmen man sich bewegen muss. 2. Voraussetzungen MS Windows (XP, Vista, Win7) Microsoft Visual C++ 2008 Express Edition 2 OpenCV eine montierbare USB Webcam ausgedrucktes Spielfeld ein blauer Spielstein (änderbar im Sourcecode, cvscalar(0,0,255,0)) Laptop (da das errechnete Grid vom Abstand zur Webcam angepasst ist) 1 http://sourceforge.net/projects/opencvlibrary/ 2 http://www.microsoft.com/germany/express/ 3

3. Spiel / Bedienungsanleitung Um das Spiel TicTacCam spielen zu können, sollte die Webcam etwas links von der Mitte des Laptopdeckels montiert werden. Nach dem compilieren des Sourcecodes muss zunächst das ausgedruckte Spielfeld, am besten mit Ausrichtung zum linken oberen Rand, auf der Laptoptastatur platziert werden. Dadurch erhält man auch etwas Platz um unproblematisch an die geforderten vorbelegten Tasten zu kommen, die das Spiel steuern. Es erscheint nun eine Meldung in der DOS-Konsole, wonach man den Spielstein in der Mitte des Spielfelds platzieren soll. Die durchschnittlich errechnete Position des Spielsteins wird als Basis des zu errechnenden virtuellen Grids dienen, welches für die zukünftige Positionserrechnung der Spielmarkierungen im 2D-Ausgabefenster herhält. Nach Betätigung der Entertaste wird die Position errechnet und die Ausdehnung bzw. Lage des Spielfelds ist festgelegt. Daraufhin erfolgt eine weitere Aufforderung per Entertaste das Spiel zu starten. Jetzt kann man durch verschieben des Spielsteins, wechselseitig die entsprechenden Felder im 2D-TicTacToe-Feld per Kreuz oder Kreis belegen. Es gibt 8 Gewinnkombinationen, 3 Felder waagrecht, senkrecht oder diagonal und eine unentschieden Situation, d.h. alle Felder sind belegt ohne das es einen Gewinner gibt. Doch wenn man es genau nimmt, so hat ein Gegenspieler immer die Möglichkeit seinen Zug so zu setzen, sodass es immer zu einem unentschieden kommt. Nach Spielende, wird eine kurze Meldung des Gewinners oder unentschieden ausgegeben und man hat erneut die Möglichkeit das Spiel per Backspacetaste zu starten. Mit ESC ist ein Abbruch jederzeit möglich. 4

4. Programmstruktur Das Programm besteht aus einer Main und mehreren Header Dateien. Die meisten Headerdateien werden von OpenCV bereitgestellt, die cvcam.h wurde von Intel als Open Source freigegeben und dient der Ansteuerung bzw. der Verarbeitung der aufgenommenen Bilder der Webcam. Zunächst wird die Sourcequelle für den Input der Webcam definiert und im weiteren Verlauf die Datenstruktur erzeugt auf die verschiedene Operationen ausgeführt werden um letztlich in einem schwarz/weiß Falschfarbenbild nach einer bestimmten Farbe tracken zu können. Aus der Ansammlung von erkannten Pixeln aus dem zuvor platzierten Spielstein, wird ein Schwerpunkt errechnet der im folgenden als Grundlage zur Positionierung des Spielfeldes und darauf folgend zur weiteren Verarbeitung durch die Spiellogik dient. Durch die interne Festlegung von 4 Arrays[9], mit einer standardisierten Ausdehnung über die Koordinatenpaare X1,Y1 / X2, Y2, ist es möglich über den Schwerpunkt, als Mittelpunkt des Grids, einerseits die Ausdehnung des Spielfeldes zu bestimmen und später im laufenden Spiel die abgefragte Position des Spielsteins zu vergleichen und damit die Transformation vom 3D in den 2D- Raum zu übertragen. Nach dem nun diese Voraussetzungen bestehen, wird nach dem Spielstart von der jeweilige Spielsteinposition der Durchschnittswert genommen und eine Schleife durchlaufen die bestimmt in welchem Bereich des zuvor rechnerisch ermittelten Bereichs der Spielstein liegt. Mit diesem Ergebnis wird in einem weiteren Array, das leer vordefiniert ist, verglichen ob eine Position im Spielfeld schon belegt oder noch frei ist. Durch wechselseitiges befüllen mit einem X oder O des zuvor leeren Arrays kann daraufhin die Prüfung über diverse Gewinnkombinationen erfolgen. Tritt ein Gewinnfall oder unentschieden ein so ist das Spiel beendet und es wird eine entsprechende Meldung in der Konsole und in dem grafischen TicTacToe Feld ausgegeben. Nachfolgend ist der grobe Ablauf in einem vereinfachten Diagramm dargestellt. 5

6