Othello Game. First, to learn the rules of Othello and play online, you can go here:
|
|
- Ethelbert Gaines
- 6 years ago
- Views:
Transcription
1 Othello Game As an example of implementing a computer player, let s use the game Othello as an example. We are not using Upthrust because that will be the topic for a homework assignment! First, to learn the rules of Othello and play online, you can go here: For our version we ll use an 8x8 array of char to represent the board. Our pieces will be X s and O s instead of black and white. Coordinate [0][0] is the lower left corner and [7][7] is the upper right corner, similar to how we represented the Upthrust board. void initboard(char board[][8]) for (int i = 0; i < 8; i++) for (int j = 0; j < 8; j++) board[i][j] = '.'; board[3][3] = 'X'; board[3][4] = 'O'; board[4][3] = 'O'; board[4][4] = 'X'; void displayboard(char board[][8]) for (int y = 7; y >= 0; y--) cout << y << " "; for (int x = 0; x < 8; x++) cout << " " << board[x][y]; cout << endl; cout << " " << endl; This displays the board in ASCII. It s not pretty but it s functional. Next let s implement a function to place a piece on the board. For now we ll assume the location we are placing the piece is a valid move. The move function takes as input the board, the XY coordinate to place the piece, and the piece we are placing (X or O).
2 void makemove(char board[][8], int x, int y, char piece) // Put the piece at x,y board[x][y] = piece; // Figure out the character of the opponent's piece char opponent = 'O'; if (piece == 'O') opponent = 'X'; // Check to the left if (checkflip(board, x - 1, y, -1, 0, piece, opponent)) flippieces(board, x - 1, y, -1, 0, piece, opponent); // Check to the right if (checkflip(board, x + 1, y, 1, 0, piece, opponent)) flippieces(board, x + 1, y, 1, 0, piece, opponent); // Check down if (checkflip(board, x, y-1, 0, -1, piece, opponent)) flippieces(board, x, y-1, 0, -1, piece, opponent); // Check up if (checkflip(board, x, y + 1, 0, 1, piece, opponent)) flippieces(board, x, y + 1, 0, 1, piece, opponent); // Check down-left if (checkflip(board, x-1, y - 1, -1, -1, piece, opponent)) flippieces(board, x-1, y - 1, -1, -1, piece, opponent); // Check down-right if (checkflip(board, x + 1, y - 1, 1, -1, piece, opponent)) flippieces(board, x + 1, y - 1, 1, -1, piece, opponent); // Check up-left if (checkflip(board, x - 1, y + 1, -1, 1, piece, opponent)) flippieces(board, x - 1, y + 1, -1, 1, piece, opponent); // Check up-right if (checkflip(board, x + 1, y + 1, 1, 1, piece, opponent)) flippieces(board, x + 1, y + 1, 1, 1, piece, opponent); This function uses two helper functions. checkflip looks in one of the 8 directions (left, right, up, down, upleft, upright, downleft, downright) to see if adjacent opponent pieces are sandwiched between our pieces. If so, it returns true. If not, it returns false. True means we should flip pieces in this direction. The -1, 0, and 1 control which direction we are looking. If we are looking to the right, then the x change is 1 but the y change is 0. If we are looking to the left, the x change is -1 and the y change is 0, etc. The function flippieces is similar to checkflip except it actually flips the pieces. // Checks a direction from x,y to see if we can make a move bool checkflip(char board[][8], int x, int y, int deltax, int deltay, char mypiece, char opponentpiece) if (board[x][y] == opponentpiece) while ((x >= 0) && (x < 8) && (y >= 0) && (y < 8)) x += deltax; y += deltay; if (board[x][y] == '.') // not consecutive return false; if (board[x][y] == mypiece)
3 // At least one piece we can flip // It is an opponent piece, just keep scanning in our direction return false; // Either no consecutive opponent pieces or hit the edge // Flips pieces in the given direction until we don't hit any more opponent pieces. // Assumes this is a valid direction to flip (we eventually hit one of our pieces). void flippieces(char board[][8], int x, int y, int deltax, int deltay, char mypiece, char opponentpiece) while (board[x][y] == opponentpiece) board[x][y] = mypiece; x += deltax; y += deltay; We can test this out with a main function that alternates making moves between X and O. We have to be careful to enter only valid moves! while (true) // Change later to detect game over makemove(board, x, y, curplayer); if (curplayer == 'X') curplayer = 'O'; curplayer = 'X'; Our next function is to determine whether a move is actually valid or not. A move is valid if the board location is unoccupied and we can flip pieces in any of the eight directions.
4 bool validmove(char board[][8], int x, int y, char piece) // Check that the coordinates are empty if (board[x][y]!= '.') return false; // Figure out the character of the opponent's piece char opponent = 'O'; if (piece == 'O') opponent = 'X'; // If we can flip in any direction, it is valid // Check to the left if (checkflip(board, x - 1, y, -1, 0, piece, opponent)) // Check to the right if (checkflip(board, x + 1, y, 1, 0, piece, opponent)) // Check down if (checkflip(board, x, y - 1, 0, -1, piece, opponent)) // Check up if (checkflip(board, x, y + 1, 0, 1, piece, opponent)) // Check down-left if (checkflip(board, x - 1, y - 1, -1, -1, piece, opponent)) // Check down-right if (checkflip(board, x + 1, y - 1, 1, -1, piece, opponent)) // Check up-left if (checkflip(board, x - 1, y + 1, -1, 1, piece, opponent)) // Check up-right if (checkflip(board, x + 1, y + 1, 1, 1, piece, opponent)) return false; // If we get here, we didn't find a valid flip direction We can check if the move is valid in main before trying to make the move. Also, there are some cases where no move is possible and we forfeit the turn. In this case we can enter -1 to skip to the next player. while (true) // Change later to detect game over
5 if (validmove(board, x, y, curplayer) (x == -1)) // Use -1 if no move possible if (x!= -1) makemove(board, x, y, curplayer); if (curplayer == 'X') curplayer = 'O'; curplayer = 'X'; cout << "Invalid move. Enter move again. " << endl; Let s make it detect if the game is over and compute the final score. The game is over when it is no longer possible for either player to move. There are cases where the game will end before all 64 squares are filled. To do this, let s make a function that fills in an array of valid moves for the current player. There can never be more than 60 valid moves (I am sure it is much less but 60 is an easy upper bound since there are 60 empty squares) so our strategy will be to make an X and Y array each of size 60 to hold the coordinates of valid moves, and then we ll make another variable to store how many valid moves we found. void getmovelist(char board[][8], int movex[], int movey[], int &nummoves, char piece) nummoves = 0; // Initially no moves found // Check each square of the board and if we can move there, remember the coords for (int x = 0; x < 8; x++) for (int y = 0; y < 8; y++) if (validmove(board, x, y, piece)) // remember coordinates movex[nummoves] = x; movey[nummoves] = y; nummoves++; // Increment number of moves found bool gameover(char board[][8]) int XMoveX[60], XMoveY[60], OMoveX[60], OMoveY[60]; int numxmoves, numomoves; getmovelist(board, XMoveX, XMoveY, numxmoves, 'X'); getmovelist(board, OMoveX, OMoveY, numomoves, 'O'); if ((numxmoves == 0) && (numomoves == 0)) return false;
6 int score(char board[][8], char piece) int total = 0; for (int x = 0; x < 8; x++) for (int y = 0; y < 8; y++) if (board[x][y] == piece) total++; return total; while (!gameover(board)) if (validmove(board, x, y, curplayer) (x == -1)) // Use -1 if no move possible if (x!= -1) makemove(board, x, y, curplayer); if (curplayer == 'X') curplayer = 'O'; curplayer = 'X'; cout << "Invalid move. Enter move again. " << endl; cout << endl << "The game is over!" << endl; cout << "X's score: " << score(board, 'X') << endl; cout << "O's score: " << score(board, 'O') << endl; Lastly, let s implement a random computer player. We can do this by picking a random move from the move list. void getrandommove(char board[][8], int &x, int &y, char piece) int movex[60], movey[60], nummoves;
7 getmovelist(board, movex, movey, nummoves, piece); if (nummoves == 0) x = -1; y = -1; int i = rand() % nummoves; x = movex[i]; y = movey[i]; srand(time(null)); while (!gameover(board)) if (curplayer == 'O') // Hard-code O to be random getrandommove(board, x, y, 'O'); Rest unchanged We hard-coded this to pick a random move for O but could also do this for X to have the computer play itself. OK that was a lot of code but we re in a place now where we can see a way to make the computer play better than random.
As an example using arrays, let s write some code to get started with the Upthrust game. We can use a 2D array to represent the game board.
Array Example Upthrust Board As an example using arrays, let s write some code to get started with the Upthrust game. We can use a 2D array to represent the game board. First, note that the game board
More informationSolving a 2D Maze. const int WIDTH = 10; const int HEIGHT = 10;
Solving a 2D Maze Let s use a 2D array to represent a maze. Let s start with a 10x10 array of char. The array of char can hold either X for a wall, for a blank, and E for the exit. Initially we can hard-code
More informationToday in CS161. Lecture #12 Arrays. Learning about arrays. Examples. Graphical. Being able to store more than one item using a variable
Today in CS161 Lecture #12 Arrays Learning about arrays Being able to store more than one item using a variable Examples Tic Tac Toe board as an array Graphical User interaction for the tic tac toe program
More informationCOMPUTING LABORATORY ASSESSED EXERCISE: Othello/Reversi. Autumn term 2001:
COMPUTING LABORATORY ASSESSED EXERCISE: Othello/Reversi Autumn term 2001: Author: Username: Grade: Marker: Andy Bennett EEE ajb01 XXXXX XXXXX Project description The program supervises a game of Othello/Reversi
More informationProgramming Language. Control Structures: Repetition (while) Eng. Anis Nazer Second Semester
Programming Language Control Structures: Repetition (while) Eng. Anis Nazer Second Semester 2017-2018 Repetition statements Control statements change the order which statements are executed Selection :
More informationLaboratory Exercise 5
Laboratory Exercise 5 Using ASCII Graphics for Animation The purpose of this exercise is to learn how to perform simple animations under Linux. We will use the ARM A9 processor, in the DE1-SoC Computer.
More informationProblem Solving: Storyboards for User Interaction
Topic 6 1. The while loop 2. Problem solving: hand-tracing 3. The for loop 4. The do loop 5. Processing input 6. Problem solving: storyboards 7. Common loop algorithms 8. Nested loops 9. Problem solving:
More informationCS12020 for CGVG. Practical 2. Jim Finnis
CS12020 for CGVG Practical 2 Jim Finnis (jcf1@aber.ac.uk) This week Solution to last week and discussion Global variables and the model The Main Loop pattern States and the State Machine pattern Random
More informationVariables, Memory and Pointers
Variables, Memory and Pointers A variable is a named piece of memory The name stands in for the memory address int num; Variables, Memory and Pointers When a value is assigned to a variable, it is stored
More informationArray Elements as Function Parameters
Arrays Class 26 Array Elements as Function Parameters we have seen that array elements are simple variables they can be used anywhere a normal variable can unsigned values [] {10, 15, 20}; unsigned quotient;
More informationHelp Topic: MOOS-IvP String Utilities
Help Topic: MOOS-IvP String Utilities Spring 2018 Michael Benjamin, mikerb@mit.edu Department of Mechanical Engineering, CSAIL MIT, Cambridge MA 02139 MOOS-IvP String Utilities The below describe a set
More informationProgramming Language. Functions. Eng. Anis Nazer First Semester
Programming Language Functions Eng. Anis Nazer First Semester 2016-2017 Definitions Function : a set of statements that are written once, and can be executed upon request Functions are separate entities
More informationLaboratory Exercise 8
Laboratory Exercise 8 Introduction to Graphics and Animation The purpose of this exercise is to learn how to display images and perform animation. We will use the Nios II processor, in the pre-build DE-series
More informationBuilding on the foundation. Now that we know a little about cout cin math operators boolean operators making decisions using if statements
Chapter 5 Looping Building on the foundation Now that we know a little about cout cin math operators boolean operators making decisions using if statements Advantages of Computers Computers are really
More informationLearning to Program with Haiku
Learning to Program with Haiku Lesson 3 Written by DarkWyrm All material 2010 DarkWyrm So far we've been learning about programming basics, such as how to write a function and how to start looking for
More informationAgenda. The main body and cout. Fundamental data types. Declarations and definitions. Control structures
The main body and cout Agenda 1 Fundamental data types Declarations and definitions Control structures References, pass-by-value vs pass-by-references The main body and cout 2 C++ IS AN OO EXTENSION OF
More informationCSCE Practice Midterm. Data Types
CSCE 2004 - Practice Midterm This midterm exam was given in class several years ago. Work each of the following questions on your own. Once you are done, check your answers. For any questions whose answers
More informationCSE 142 Su01 Final Exam Sample Solution page 1 of 7
CSE 142 Su01 Final Exam Sample Solution page 1 of 7 Answer all of the following questions. READ EACH QUESTION CAREFULLY. Answer each question in the space provided on these pages. Budget your time so you
More informationpointers + memory double x; string a; int x; main overhead int y; main overhead
pointers + memory computer have memory to store data. every program gets a piece of it to use as we create and use more variables, more space is allocated to a program memory int x; double x; string a;
More informationLecture Notes on Tries
Lecture Notes on Tries 15-122: Principles of Imperative Computation Thomas Cortina Notes by Frank Pfenning Lecture 24 April 19, 2011 1 Introduction In the data structures implementing associative arrays
More informationPerfect square. #include<iostream> using namespace std; int main(){ int a=1; int square; while(true){ } cout<<square<<endl; }
Lab 3 Kaikai Bian Perfect square #include using namespace std; int main(){ int a=1; int square; while(true){ } cout
More informationComputer Programming. Basic Control Flow - Loops. Adapted from C++ for Everyone and Big C++ by Cay Horstmann, John Wiley & Sons
Computer Programming Basic Control Flow - Loops Adapted from C++ for Everyone and Big C++ by Cay Horstmann, John Wiley & Sons Objectives To learn about the three types of loops: while for do To avoid infinite
More informationDesigning the Layout of External Content Using the Widgets Tool
Designing the Layout of External Content Using the Widgets Tool First Published: August 2, 2012 This module describes how to design the layout for display of the data that you have integrated and mapped
More informationCMSC 341 Lecture 7 Lists
CMSC 341 Lecture 7 Lists Today s Topics Linked Lists vs Arrays Nodes Using Linked Lists Supporting Actors (member variables) Overview Creation Traversal Deletion UMBC CMSC 341 Lists 2 Linked Lists vs Arrays
More informationREPETITION CONTROL STRUCTURE LOGO
CSC 128: FUNDAMENTALS OF COMPUTER PROBLEM SOLVING REPETITION CONTROL STRUCTURE 1 Contents 1 Introduction 2 for loop 3 while loop 4 do while loop 2 Introduction It is used when a statement or a block of
More informationTic Tac Toe Game! Day 8
Tic Tac Toe Game! Day 8 Game Description We will be working on an implementation of a Tic-Tac-Toe Game. This is designed as a two-player game. As you get more involved in programming, you might learn how
More informationCS106X Handout 06 Autumn 2012 September 26 th, 2012 Grids and Queen Safety
CS106X Handout 06 Autumn 2012 September 26 th, 2012 Grids and Queen Safety Today's larger example demonstrates the use of a grid that is, a single declaration of a Grid to maintain information about
More informationChapter Four: Loops II
Chapter Four: Loops II Slides by Evan Gallagher & Nikolay Kirov Chapter Goals To understand nested loops To implement programs that read and process data sets To use a computer for simulations Processing
More informationWhy Is Repetition Needed?
Why Is Repetition Needed? Repetition allows efficient use of variables. It lets you process many values using a small number of variables. For example, to add five numbers: Inefficient way: Declare a variable
More informationRAII and Smart Pointers. Ali Malik
RAII and Smart Pointers Ali Malik malikali@stanford.edu Game Plan Recap Conversion Operators RAII Smart Pointers Recap Initialisation: Initialisation vs Assignment Transforms an object s initial junk data
More informationProgramming. C++ Basics
Programming C++ Basics Introduction to C++ C is a programming language developed in the 1970s with the UNIX operating system C programs are efficient and portable across different hardware platforms C++
More informationC++ Programming: From Problem Analysis to Program Design, Fourth Edition. Chapter 5: Control Structures II (Repetition)
C++ Programming: From Problem Analysis to Program Design, Fourth Edition Chapter 5: Control Structures II (Repetition) Objectives In this chapter, you will: Learn about repetition (looping) control structures
More informationObject oriented programming
Exercises 12 Version 1.0, 9 May, 2017 Table of Contents 1. Virtual destructor and example problems...................................... 1 1.1. Virtual destructor.......................................................
More informationCh 6. Functions. Example: function calls function
Ch 6. Functions Part 2 CS 1428 Fall 2011 Jill Seaman Lecture 21 1 Example: function calls function void deeper() { cout
More informationChapter Four: Loops. Slides by Evan Gallagher. C++ for Everyone by Cay Horstmann Copyright 2012 by John Wiley & Sons. All rights reserved
Chapter Four: Loops Slides by Evan Gallagher The Three Loops in C++ C++ has these three looping statements: while for do The while Loop while (condition) { statements } The condition is some kind of test
More informationLab 9: Pointers and arrays
CMSC160 Intro to Algorithmic Design Blaheta Lab 9: Pointers and arrays 3 Nov 2011 As promised, we ll spend today working on using pointers and arrays, leading up to a game you ll write that heavily involves
More informationHomework 4: (GRADUATE VERSION)
Homework 4: Wavefront Path Planning and Path Smoothing (GRADUATE VERSION) Assigned: Thursday, October 16, 2008 Due: Friday, October 31, 2008 at 23:59:59 In this assignment, you will write a path planner
More informationChapter 5: Control Structures II (Repetition) Objectives (cont d.) Objectives. while Looping (Repetition) Structure. Why Is Repetition Needed?
Chapter 5: Control Structures II (Repetition) Objectives In this chapter, you will: Learn about repetition (looping) control structures Explore how to construct and use countercontrolled, sentinel-controlled,
More information5.1. Chapter 5: The Increment and Decrement Operators. The Increment and Decrement Operators. The Increment and Decrement Operators
Chapter 5: 5.1 Looping The Increment and Decrement Operators The Increment and Decrement Operators The Increment and Decrement Operators ++ is the increment operator. It adds one to a variable. val++;
More informationSchool of Computer Science CPS109 Course Notes 6 Alexander Ferworn Updated Fall 15. CPS109 Course Notes 6. Alexander Ferworn
CPS109 Course Notes 6 Alexander Ferworn Unrelated Facts Worth Remembering Use metaphors to understand issues and explain them to others. Look up what metaphor means. Table of Contents Contents 1 ITERATION...
More informationCS11 Introduction to C++ Fall Lecture 7
CS11 Introduction to C++ Fall 2012-2013 Lecture 7 Computer Strategy Game n Want to write a turn-based strategy game for the computer n Need different kinds of units for the game Different capabilities,
More informationNotes on the 2008 Exam
Notes on the 2008 Exam A hastily compiled review of this year s exam. Apologies if there are errors. Please also read notes on previous years exams especially the first set of notes. Question 1 Question
More informationCIT 590 Homework 10 Battleship
CIT 590 Homework 10 Battleship Purposes of this assignment: To give you more experience with classes and inheritance General Idea of the Assignment Once again, this assignment is based on a game, since
More informationBoredGames Language Reference Manual A Language for Board Games. Brandon Kessler (bpk2107) and Kristen Wise (kew2132)
BoredGames Language Reference Manual A Language for Board Games Brandon Kessler (bpk2107) and Kristen Wise (kew2132) 1 Table of Contents 1. Introduction... 4 2. Lexical Conventions... 4 2.A Comments...
More informationCPE Summer 2015 Exam I (150 pts) June 18, 2015
Name Closed notes and book. If you have any questions ask them. Write clearly and make sure the case of a letter is clear (where applicable) since C++ is case sensitive. You can assume that there is one
More informationIncrement and the While. Class 15
Increment and the While Class 15 Increment and Decrement Operators Increment and Decrement Increase or decrease a value by one, respectively. the most common operation in all of programming is to increment
More informationC++ Programming: From Problem Analysis to Program Design, Third Edition
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 5: Control Structures II (Repetition) Why Is Repetition Needed? Repetition allows you to efficiently use variables Can input,
More informationChapter 2. C++ Syntax and Semantics, and the Program Development Process. Dale/Weems 1
Chapter 2 C++ Syntax and Semantics, and the Program Development Process Dale/Weems 1 Chapter 2 Topics Programs Composed of Several Functions Syntax Templates Legal C++ Identifiers Assigning Values to Variables
More informationLinked List using a Sentinel
Linked List using a Sentinel Linked List.h / Linked List.h Using a sentinel for search Created by Enoch Hwang on 2/1/10. Copyright 2010 La Sierra University. All rights reserved. / #include
More informationBEGINNER PHP Table of Contents
Table of Contents 4 5 6 7 8 9 0 Introduction Getting Setup Your first PHP webpage Working with text Talking to the user Comparison & If statements If & Else Cleaning up the game Remembering values Finishing
More informationTopics. Functions. Functions
Topics Notes #8 Functions Chapter 6 1) How can we break up a program into smaller sections? 2) How can we pass information to and from functions? 3) Where can we put functions in our code? CMPT 125/128
More informationChapter 7 Array. Array. C++, How to Program
Chapter 7 Array C++, How to Program Deitel & Deitel Spring 2016 CISC 1600 Yanjun Li 1 Array Arrays are data structures containing related data items of same type. An array is a consecutive group of memory
More informationDiscussion 2C Notes (Week 3, January 21) TA: Brian Choi Section Webpage:
Discussion 2C Notes (Week 3, January 21) TA: Brian Choi (schoi@cs.ucla.edu) Section Webpage: http://www.cs.ucla.edu/~schoi/cs32 Abstraction In Homework 1, you were asked to build a class called Bag. Let
More informationGeneral Certificate of Education Advanced Subsidiary Examination June 2010
General Certificate of Education Advanced Subsidiary Examination June 2010 Computing COMP1/PM/C# Unit 1 Problem Solving, Programming, Data Representation and Practical Exercise Preliminary Material A copy
More informationCSCE Practice Midterm. Data Types
CSCE 2004 - Practice Midterm This midterm exam was given in class several years ago. Work each of the following questions on your own. Once you are done, check your answers. For any questions whose answers
More informationSFU CMPT Topic: Control Statements
SFU CMPT-212 2008-1 1 Topic: Control Statements SFU CMPT-212 2008-1 Topic: Control Statements Ján Maňuch E-mail: jmanuch@sfu.ca Wednesday 23 rd January, 2008 SFU CMPT-212 2008-1 2 Topic: Control Statements
More informationReview of Important Topics in CS1600. Functions Arrays C-strings
Review of Important Topics in CS1600 Functions Arrays C-strings Array Basics Arrays An array is used to process a collection of data of the same type Examples: A list of names A list of temperatures Why
More informationCSCI 111 Midterm 1, version A Exam Fall Solutions 09.00am 09.50am, Tuesday, October 13, 2015
QUEENS COLLEGE Department of Computer Science CSCI 111 Midterm 1, version A Exam Fall 2015 10.13.15 Solutions 09.00am 09.50am, Tuesday, October 13, 2015 Problem 1 Write a complete C++ program that does
More informationFunctions in C++ Problem-Solving Procedure With Modular Design C ++ Function Definition: a single
Functions in C++ Problem-Solving Procedure With Modular Design: Program development steps: Analyze the problem Develop a solution Code the solution Test/Debug the program C ++ Function Definition: A module
More informationslide 1 gaius Game Trees
Game Trees slide 1 in this section of the course we will look at the following topics (and not in this order and not sequentially): Cprogramming game tree searching minimax, alphabeta Othello Chess evaluation
More informationCS31: Introduction to Computer Science I Spring 2011
Final Practice TA: Brian Choi (schoi@cs.ucla.edu) Section Webpage: http://www.cs.ucla.edu/~schoi/cs31 1. Assume the following variable declarations: int foo = 0; int *ptr = &foo; Which of the following
More informationAnnouncements. Lab 1 this week! Homework posted Wednesday (late)
C++ Basics Announcements Lab 1 this week! Homework posted Wednesday (late) Avoid errors To remove your program of bugs, you should try to test your program on a wide range of inputs Typically it is useful
More informationCSCI 135 Software Design and Analysis, C++ Homework 8 Solution
CSCI 135 Software Design and Analysis, C++ Homework 8 Solution Saad Mneimneh Computer Science Hunter College of CUNY Problem 1: Two-dimensional arrays and the 15 puzzle The 15 puzzle consist of 15 pieces
More informationCSE 21 Summer 2017 Homework 4
CSE 21 Summer 201 Homework Key Concepts Minimum Spanning Trees, Directed Acyclic Graphs, Topological Sorting, Single source shortest paths, Counting, Basic probability principles, Independence, Linearity
More informationC++ Lab 03 - C++ Functions
C++ Lab 03 - C++ Functions 2.680 Unmanned Marine Vehicle Autonomy, Sensing and Communications Spring 2018 Michael Benjamin, mikerb@mit.edu Department of Mechanical Engineering Computer Science and Artificial
More informationFunctions and Recursion
Functions and Recursion 1 Outline Introduction Program Components in C++ Math Library Functions Functions Function Definitions Function Prototypes Header Files Random Number Generation Example: A Game
More informationPointers, Dynamic Data, and Reference Types
Pointers, Dynamic Data, and Reference Types Review on Pointers Reference Variables Dynamic Memory Allocation The new operator The delete operator Dynamic Memory Allocation for Arrays 1 C++ Data Types simple
More informationStart Visual Studio, start a new Windows Form project under the C# language, name the project BalloonPop MooICT and click OK.
Start Visual Studio, start a new Windows Form project under the C# language, name the project BalloonPop MooICT and click OK. Before you start - download the game assets from above or on MOOICT.COM to
More informationNotes on the 2009 Exam
Notes on the 2009 Exam A hastily compiled review of this year s exam. Apologies if there are errors. The stuff inside borders is all that you needed to write. The rest is commentary. Please also read notes
More informationChapter Five: Functions. by Cay Horstmann Copyright 2018 by John Wiley & Sons. All rights reserved
Chapter Five: Functions by Cay Horstmann Chapter Goals To be able to implement functions To become familiar with the concept of parameter passing To appreciate the importance of function comments To develop
More informationChapter 5: Control Structures II (Repetition)
Chapter 5: Control Structures II (Repetition) 1 Objectives Learn about repetition (looping) control structures Explore how to construct and use count-controlled, sentinel-controlled, flag-controlled, and
More informationExercise: Using Numbers
Exercise: Using Numbers Problem: You are a spy going into an evil party to find the super-secret code phrase (made up of letters and spaces), which you will immediately send via text message to your team
More informationCSE 146. Asymptotic Analysis Interview Question of the Day Homework 1 & Project 1 Work Session
CSE 146 Asymptotic Analysis Interview Question of the Day Homework 1 & Project 1 Work Session Comparing Algorithms Rough Estimate Ignores Details Or really: independent of details What are some details
More informationRecursion. James Brucker
Recursion James Brucker What is Recursion? Recursion means for a function or method to call itself. A typical example of this is computing factorials: n! = n * (n-1)! Using recursion, we can compute n!
More informationDesign Project - Object-oriented Programming for Tetris Game
2014-1 Design Project - Object-oriented Programming for Tetris Game June 1, 2014 Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, College of Engineering, Yeungnam University,
More information15-122: Principles of Imperative Computation, Spring Due: Thursday, March 10, 2016 by 22:00
15-122 Programming 7 Page 1 of 8 15-122: Principles of Imperative Computation, Spring 2016 Programming homework 7: Text Buers Due: Thursday, March 10, 2016 by 22:00 For the programming portion of this
More informationTHE INTEGER DATA TYPES. Laura Marik Spring 2012 C++ Course Notes (Provided by Jason Minski)
THE INTEGER DATA TYPES STORAGE OF INTEGER TYPES IN MEMORY All data types are stored in binary in memory. The type that you give a value indicates to the machine what encoding to use to store the data in
More informationTopics. bool and string types input/output library functions comments memory allocation templates classes
C++ Primer C++ is a major extension of c. It is similar to Java. The lectures in this course use pseudo-code (not C++). The textbook contains C++. The labs involve C++ programming. This lecture covers
More informationTutorial 12 Craps Game Application: Introducing Random Number Generation and Enumerations
Tutorial 12 Craps Game Application: Introducing Random Number Generation and Enumerations Outline 12.1 Test-Driving the Craps Game Application 12.2 Random Number Generation 12.3 Using an enum in the Craps
More information1- Write a single C++ statement that: A. Calculates the sum of the two integrates 11 and 12 and outputs the sum to the consol.
1- Write a single C++ statement that: A. Calculates the sum of the two integrates 11 and 12 and outputs the sum to the consol. B. Outputs to the console a floating point number f1 in scientific format
More informationModule Contact: Dr Pierre Chardaire, CMP Copyright of the University of East Anglia Version 1
UNIVERSITY OF EAST ANGLIA School of Computing Sciences Main Series UG Examination 2015/16 INTRODUCTORY PROGRAMMING CMP-0005B Time allowed: 2 hours. Answer BOTH questions from section A and ONE question
More informationObjectivities. Experiment 1. Lab6 Array I. Description of the Problem. Problem-Solving Tips
Lab6 Array I Objectivities 1. Using rand to generate random numbers and using srand to seed the random-number generator. 2. Declaring, initializing and referencing arrays. 3. The follow-up questions and
More information1. a) What #include statement do you put at the top of a program that does uses cin, cout or endl?
Exercises with solutions. 1. a) What #include statement do you put at the top of a program that does uses cin, cout or endl? #include b) What using statement do you always put at the top of
More informationWeek 2. Relational Operators. Block or compound statement. if/else. Branching & Looping. Gaddis: Chapters 4 & 5. CS 5301 Spring 2018.
Week 2 Branching & Looping Gaddis: Chapters 4 & 5 CS 5301 Spring 2018 Jill Seaman 1 Relational Operators l relational operators (result is bool): == Equal to (do not use =)!= Not equal to > Greater than
More informationDeclaring a 2D Array
Lecture 13 Declaring a 2D Array Model: type name[row_size ][ column_size] Example: int grades[10][20]; string students[10][20]; 2D Array data structure Say we have the following array: int grades[4][8];
More informationCPE 112 Spring 2015 Exam II (100 pts) March 4, Definition Matching (8 Points)
Name Definition Matching (8 Points) 1. (8 pts) Match the words with their definitions. Choose the best definition for each word. Relational Expression Iteration Counter Count-controlled loop Loop Flow
More informationDiscussion 2C Notes (Week 5, February 4) TA: Brian Choi Section Webpage:
Discussion 2C Notes (Week 5, February 4) TA: Brian Choi (schoi@cs.ucla.edu) Section Webpage: http://www.cs.ucla.edu/~schoi/cs32 Recursion A recursion is a function-writing technique where the function
More informationdo { statements } while (condition);
Topic 4 1. The while loop 2. Problem solving: hand-tracing 3. The for loop 4. The do loop 5. Processing input 6. Problem solving: storyboards 7. Common loop algorithms 8. Nested loops 9. Problem solving:
More informationwhile for do while ! set a counter variable to 0 ! increment it inside the loop (each iteration)
Week 7: Advanced Loops while Loops in C++ (review) while (expression) may be a compound (a block: {s) Gaddis: 5.7-12 CS 1428 Fall 2015 Jill Seaman 1 for if expression is true, is executed, repeat equivalent
More informationMemory Management: The process by which memory is shared, allocated, and released. Not applicable to cache memory.
Memory Management Page 1 Memory Management Wednesday, October 27, 2004 4:54 AM Memory Management: The process by which memory is shared, allocated, and released. Not applicable to cache memory. Two kinds
More informationIslamic University of Gaza Computer Engineering Dept. C++ Programming. For Industrial And Electrical Engineering By Instructor: Ruba A.
Islamic University of Gaza Computer Engineering Dept. C++ Programming For Industrial And Electrical Engineering By Instructor: Ruba A. Salamh Chapter Four: Loops 2 Chapter Goals To implement while, for
More informationVisual C# Program: Simple Game 3
C h a p t e r 6C Visual C# Program: Simple Game 3 In this chapter, you will learn how to use the following Visual C# Application functions to World Class standards: Opening Visual C# Editor Beginning a
More informationCS102: Standard I/O. %<flag(s)><width><precision><size>conversion-code
CS102: Standard I/O Our next topic is standard input and standard output in C. The adjective "standard" when applied to "input" or "output" could be interpreted to mean "default". Typically, standard output
More informationHomework 6 Solutions CS330 Discrete Structures, Fall 2017
Homework 6 Solutions CS330 Discrete Structures, Fall 2017 Instructor: Professor Edward Reingold TA: Jiahui Hou, Haohua Du Solutions 1. 10 pts) Algorithm 1 Basic Euler Circuit Algorithm. procedure Euler(G
More informationReview: Expressions, Variables, Loops, and more.
Review: Expressions, Variables, Loops, and more. 1 An Expression Evaluator Example [2] Wk02.1 Slide 1 2 Case Study : Parsing PostFix Expressions What is an expression? A series of symbols that return some
More informationPointers II. Class 31
Pointers II Class 31 Compile Time all of the variables we have seen so far have been declared at compile time they are written into the program code you can see by looking at the program how many variables
More informationWeek 3. Function Definitions. Example: Function. Function Call, Return Statement. Functions & Arrays. Gaddis: Chapters 6 and 7.
Week 3 Functions & Arrays Gaddis: Chapters 6 and 7 CS 5301 Fall 2015 Jill Seaman 1 Function Definitions! Function definition pattern: datatype identifier (parameter1, parameter2,...) { statements... Where
More informationToday in CS161. Lecture #7. Learn about. Rewrite our First Program. Create new Graphics Demos. If and else statements. Using if and else statements
Today in CS161 Lecture #7 Learn about If and else statements Rewrite our First Program Using if and else statements Create new Graphics Demos Using if and else statements CS161 Lecture #7 1 Selective Execution
More informationBasic program The following is a basic program in C++; Basic C++ Source Code Compiler Object Code Linker (with libraries) Executable
Basic C++ Overview C++ is a version of the older C programming language. This is a language that is used for a wide variety of applications and which has a mature base of compilers and libraries. C++ is
More informationSudoku-4: Logical Structure
Sudoku-4: Logical Structure CSCI 4526 / 6626 Fall 2016 1 Goals To use an STL vector. To use an enumerated type. To learn about tightly coupled classes. To learn about circular dependencies. To use the
More information