{"id":35458,"date":"2018-02-20T23:50:30","date_gmt":"2018-02-20T23:50:30","guid":{"rendered":"https:\/\/writemyessayfree.com\/develop-a-program-that-plays-connect-four-using-x86-64-assembly-code"},"modified":"2017-08-16T06:32:49","modified_gmt":"2017-08-16T06:32:49","slug":"develop-a-program-that-plays-connect-four-using-x86-64-assembly-code","status":"publish","type":"post","link":"https:\/\/www.benedictsol.com\/blogs\/develop-a-program-that-plays-connect-four-using-x86-64-assembly-code\/","title":{"rendered":"Develop a program that plays Connect Four using x86-64 assembly code"},"content":{"rendered":"<div class=\"the_content_wrapper\">\n<p>Develop a program that plays Connect Four using x86-64 assembly code<br \/> COSC 30203 \u2013 Computer System Fundamentals<br \/> Project 3: Connect Four<br \/> Spring 2017<br \/> Due: 23:59:59, March XXth, 2017<br \/> Objective<br \/> The objective of this project is to develop an computer program that plays Connect Four using only<br \/> x86-64 assembly code. Note: if you are unfamiliar with the game of Connect Four please search<br \/> the internet for the game play details.<br \/> The Connect Four Environment<br \/> Your version of the Connect Four program will be human versus Computer. The game will use the<br \/> standard 6-rows by 7-columns game board. This will necessitate that your game have \u201csome\u201d level<br \/> of artificial intelligence built into your program.<br \/> Game Play<br \/> This section will describe Connect Four game play. This list is a suggestion, and does not replace<br \/> your own flowchart, algorithm, or other notes. It is expected that you will be creative and<br \/> unique with your program.<br \/> A. Display a greeting. E.g. \u201cWelcome to x86-64 Conenct Four!\u201d<br \/> B. Name phase: Get the name of the Player. Assume the name will not be longer than 16<br \/> characters in length. The Player\u2019s name is terminated by the NULL character. Refer to the<br \/> Player by name.<br \/> C. Ask the player if they would like to go first or second. Use \u201cX\u201d for the first player and \u201cO\u201d<br \/> for the second player.<br \/> D. Display the game board. Have a row of column labels (integers) that represent which column<br \/> to drop a piece.<br \/> E. Prompt the player for the column number.<br \/> F. Display the game board. Have the computer select a column, display the column to the user,<br \/> drop the piece, and then display the game board again.<br \/> 1<br \/> COSC 30203 (045) Computer System Fundamentals Project 3: Connect Four<br \/> Here is a short example of the start of a game. Your board may be look different.<br \/> Welcome to Connect Four.<br \/> Would you like to go first (X) [Y\/n]: Y<br \/> ****Connect Four****<br \/> | | | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> | | | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> | | | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> | | | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> | | | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> | | | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> 1 2 3 4 5 6 7<br \/> Player 1 (X):<br \/> Enter number coordinate: 1<br \/> ****Connect Four****<br \/> | | | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> | | | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> | | | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> | | | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> | | | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> | X | | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> 1 2 3 4 5 6 7<br \/> Player 2 (O):<br \/> Enter number coordinate: 2<br \/> ****Connect Four****<br \/> | | | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> | | | | | | | |<br \/> Spring 2017 Version: 03022017-001 2<br \/> COSC 30203 (045) Computer System Fundamentals Project 3: Connect Four<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> | | | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> | | | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> | | | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> | X | O | | | | | |<br \/> \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2013<br \/> 1 2 3 4 5 6 7<br \/> Player 1 (X):<br \/> Enter number coordinate:<br \/> . . .<br \/> Requirements<br \/> 1. Have a procedure that displays the instructions.<br \/> 2. Have a procedure that asks a Yes or No question.<br \/> 3. Have a procedure that asks for a number (valid column).<br \/> 4. Have a procedure that determines who goes first: human or computer. Player 1 is \u201cX\u201d.<br \/> 5. Have a procedure that will create a new empty board.<br \/> 6. Have a procedure that will display the board to the screen.<br \/> 7. Have a procedure that will return a list of legal moves.<br \/> 8. Have a procedure that will determine if there is a winner.<br \/> 9. Have a procedure that will perform the human move.<br \/> 10. Have a procedure that will perform a computer move.<br \/> 11. Have a procedure that will switch turns.<br \/> 12. Have a procedure that will congratulate the winner.<br \/> 13. Have a main procedure to drive the game play.<br \/> Basic Artificial Intelligence<br \/> If the computer can win in the next move, the compute will choose that move. If the computer<br \/> determines it cannot win in the next move, but does determine that the other player can win in one<br \/> more move, then the computer will block the player. If the computer will not win in the next move,<br \/> and the player will not win in the next move, then the computer will choose a random column to<br \/> drop the piece.<br \/> Spring 2017 Version: 03022017-001 3<br \/> COSC 30203 (045) Computer System Fundamentals Project 3: Connect Four<br \/> Assessment and Grading<br \/> This assignment may be completed by teams of XXX. Teams will be determined in class. Your<br \/> program must be written in x86-64 assembly language. You may make calls to system functions<br \/> and functions in the C standard library (highly recommended). Comment and document all code<br \/> submitted! Your program will be tested on ritchie.cs.tcu.edu. You may do development work<br \/> on your personal machines but final submissions must compile without errors or warnings and execute<br \/> without core dumping. Use good programming practices by implementing procedures and<br \/> functions where necessary. Your subroutines must follow the X86-64 Linux ABI for passing arguments<br \/> to functions. This project is worth 100 points.<br \/> Project Deliverables<br \/> 1. Follow the project submission guidelines.<br \/> 2. Follow the project documentation standards.<br \/> 3. Your project must have a Makefile and a README file.<br \/> 4. Submit your .zip file to the dropbox on TCU Online.<br \/> Spring 2017 Version: 03022017-001 4<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Develop a program that plays Connect Four using x86-64 assembly code COSC 30203 \u2013 Computer System Fundamentals Project 3: Connect Four Spring 2017 Due: 23:59:59, March XXth, 2017 Objective The objective of this project is to develop an computer program <a href=\"https:\/\/www.benedictsol.com\/blogs\/develop-a-program-that-plays-connect-four-using-x86-64-assembly-code\/\" class=\"read-more\">Read More &#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-35458","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/posts\/35458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/comments?post=35458"}],"version-history":[{"count":0,"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/posts\/35458\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/media?parent=35458"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/categories?post=35458"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.benedictsol.com\/blogs\/wp-json\/wp\/v2\/tags?post=35458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}