Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

In this problem , you will have to create a program to display a full game board and add/remove game pieces. The board is a

In this problem , you will have to create a program to display a full game board and add/remove game pieces. The board is a grid of 6x6 squares. Figure 1 shows what such a grid might look like in a regular game.

Figure 1 NOTE: YOUR BOARD MUST BE 6x6. OTHER BOARD SIZES WILL NOT RECEIVE CREDIT.

Examples of how your board might look (note, this is an 8x8, your version MUST BE 6x6):

Figure 2: Board with no pieces placed Figure 3: Board with two regular pieces and two kings placed. The development of this procedure to display the board will be broken down into several problems. Do your best to solve all the questions for this assignment as future programming assignments will depend on your success here. Problem #1 (10 pts) Allocate enough memory (4 bytes for each square) in a 6x6 square board. Assign the values following values at the specified row,column locations: Board[2,3] = 5 Board[1,5] = 3 Board[4,3] = 7 Board[1,0] = 1 All other board locations have the value zero assigned to them. Using a nested loop, print the value of each board location as an integer using syscall $print_int. Problem #2 (10 pts) Use a loop to print a single row of black and white squares. Start with a white square, then print a black square, then a white square, etc until the program prints six squares. Problem #3 (15 pts) Using 2 nested loops, write a program to print a 6x6 checker board using black and white squares. The upper left and lower right corners of the checker board should be white. Problem #4 (20 pts) Merge the programs from problems #1 and #3. Also add a set of if/else or a switch/case style statement to the nested loops so that the proper game piece is printed. For example: for (...) { for (...) { if () print ; else if (board[r*6+c]==3) print w; else if (board[r*6+c]== 1) print r; else if (...) print R; else if (...) print W; else print ; } } Problem #5 (25 pts) In the final problem, you must convert the display routine (the 2 nested loops and if/else statements) from problem 4 into a function. Next, you should write a program to test that your display function works. The flow of the program should go as follows: 1. allocate space for board state [problem 1] 2. initialize board state to all zeros [problem 1] 3. Begin loop a. print board state (display the board) [problems 2-5] b. ask for row c. ask for column d. ask for value e. set board (row,column) to value [problem 1] f. go to (3a) The input parameter to this function is the board state. The function prototype would be defined as follows: void displayBoard(int* board) { } The board is a data object that stores the locations of all the checkers on the board and the information associated with it. This is referred to as the state of the board. When you declare your function in MIPS assembly, please pass the variable board by referencei.e. it is a pointer. Do not try to allocate space for the entire board on the stack every time you call displayBoard. Use $a0 to pass the pointer to the board data instead.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

How Do I Use A Database Research Tools You Can Use

Authors: Laura La Bella

1st Edition

1622753763, 978-1622753765

More Books

Students also viewed these Databases questions

Question

What are some career development methods?

Answered: 1 week ago

Question

How many multiples of 4 are there between 10 and 250?

Answered: 1 week ago

Question

How many three-digit numbers are divisible by 7?

Answered: 1 week ago