This document outlines an assignment to implement the game of Reversi in MIPS assembly language. It provides detailed requirements and suggestions for key functions needed, including displaying the board, getting user input, checking for valid moves, making moves, tracking score, and an AI opponent. Resources are included to help with graphics and game logic. The goal is to code a full working version of the Reversi game that adheres to the standard rules and provides a good user experience through input validation and optional features.
Unit-IV; Professional Sales Representative (PSR).pptx
HY 1302 Book Dissection Exercise INTRODUCTION AND OBJECTIV.docx
1. HY 1302 Book Dissection Exercise
INTRODUCTION AND OBJECTIVES
Scientists perform much of their research in laboratories. The
library is the historian's
laboratory, and books are often the tools of our research. Part of
succeeding in a history
course is learning how historians work. The single most basic
skill for any historian is to
know how to read a historical *monograph* critically and
thoroughly. That means
knowing the parts of a book, grasping the arguments of its
author, and understanding
other historians' criticisms and analyses of that book. It also
means that historians must be
able to explain to others efficiently where they found the
information or interpretations
they use in their own work. Since historians are entrusted with
the past, they carry a lot of
responsibility for getting it right. They must check their sources
for bias, confirm their
information from as many sources as possible, try as hard as
2. they can to be objective in
their own work, and make sure someone else has checked their
work before they publish
it. This exercise is designed to help students develop some of
those skills. Everyone is an
historian to some extent. It's important to be a good one.
CHOOSING A BOOK
Choose a book from the Further Readings Section in the
Appendix at the end of the
textbook. The original edition of the book you choose must have
been published since
1990, and it must be a monograph. What is a monograph? It is a
book written as a
detailed study of a single specialized aspect of History by a
single author. It is not a
biography of a individual, it is not a collection of essays edited
by an author, not a
memoir by someone who took part in the events, not a
collection of documents (primary
sources) edited by an author, and not a general history of
America in any given period.
Choose your book carefully, and clear it with the professor
before you start reading it!
3. The book you choose also must have numbered footnotes or
endnotes and it must concern
a subject in your American history course, HY 1302 After 1877.
Once you have tentatively chosen your book, you must locate
one scholarly review of
that book before you begin reading it. Your review must be
complete, and it must be at
least three paragraphs in length. Good sources for reviews of
books are the American
Historical Review, the Journal of American History, The New
York Times Book Review
and The New York Review of Books. Many book reviews are
conveniently indexed in
"America: History and Life" (available on-line or in paper form
at most college libraries.
Ask the librarian at the reference desk.) The reviews in
CHOICE come out first but are
too short (150 words) to be useful for this assignment. If you
find an abstract that looks
interesting, order the entire book review on interlibrary loan! In
DO NOT BEGIN
READING A BOOK UNLESS YOU HAVE A REVIEW OF IT
IN HAND AND HAVE
CLEARED IT WITH THE PROFESSOR. The book is not yours
4. until you can show the
professor a photocopied review of it. The first person to show
him a review gets the book.
Also, DO NOT HOARD BOOKS AND PLEASE, DO NOT
MARK IN LIBRARY
BOOKS. There is a special place in hell reserved for people
who mark up library books
right beside those who steal them.
THE EXERCISE
The exercise is divided into three parts:
1. Citation and Acknowledgment,
2. Arguments, and
3. Critique.
PART ONE: CITATION AND ACKNOWLEDGMENTS
This portion of the assignment allows you to describe certain
physical parts of the book
and cite it properly. Answer the following questions and
perform the following:
1.Type out a bibliographical citation (not a footnote or endnote
citation) for your book
using the form outlined in Kate Turabian, A Manual for Writers,
5. available in the library
or on line at http://www.eturabian.com/turabian/index.html. The
form must be precisely
correct.
2. What is the ISBN (International Standard Book Number) of
your book? (look at the
back cover of the back of the title page.)
3. Does it have an index? Is the index slightly or extensively
cross-referenced or is it not
cross-referenced at all?
4. Is there a bibliography? Does it include secondary sources
(other scholarly books and
articles)? Does it annotate or comment on them?
5. Since your chosen book must have footnotes or endnotes,
approximately what
percentage of the sources the author cites in the notes are
primary? What percentage are
secondary? (Sample 30 notes taken on random pages ending in
the page number xx5.)
Did your author consult archives or depend entirely on printed
works in a library?
5. Who read all or part of the book prior to its publication to
check it for mistakes? What
6. organization if any supported the author with money to do the
research and/or writing of
the book?
PART TWO: ARGUMENTS
This part is the most involved. It requires a thorough reading of
the book. It demands that
you comprehend your author's "arguments." Historians use that
word to mean the author's
interpretation, the case that is being made about the subject.
When historians confront
evidence, whether it's a large number of printed sources or
archival records, they must try
to make sense of those sources. The "sense" they make is their
interpretation. The
purpose of their monographs is to present their evidence and
"argue" their interpretation
of that evidence. Your purpose in this section is to summarize
the arguments of the author
of your book and indicate some of the evidence used to support
those interpretations.
Write three sentences--and only three--on each chapter of the
book. Begin all of your
7. sentences as follows:
1. For the first sentence on each chapter, begin with the words,
"The main subject of this
chapter is" but do not include any words from the chapter title
in your description.
2. For the second sentence of each chapter, begin with the
words, "The author argues in
this chapter that."
3. For the third sentence of each chapter, begin with the words,
"A specific piece of
evidence that the author uses to support his/her case is." List
only ONE piece of
relevant evidence.
After you have written a trio of sentences for each chapter,
write one single five-sentence
paragraph at the end of this entire section of your paper
summarizing the author's
argument as a whole about the subject of the book.
ANALYSIS AND CRITIQUE
In this section, you have two things to do. First, analyze the
argument from the standpoint
of the course. What did this book teach you that you did not
8. already know about
American history? Was the argument convincing? Well-
supported? Secondly, analyze the
review of the book. Did the reviewer mostly summarize the
book or did he/she evaluate it
critically? Did he/she agree with the author's interpretation?
Why or why not? Did he/she
have criticisms? What were they? Do you find the reviewer's
criticisms, if any, germane
to the author's arguments or peripheral? Do you agree with the
reviewer's assessment?
Why or why not?
Be sure to e-mail your final draft of the exercise and also fax a
copy of the attached check
sheet, a marked-up first draft, and the photocopied review so
the professor can double-
check your work. Good luck!
All Parts of this project should be attached to an e-mail and sent
directly to
the instructor.
If you submit you rough draft along with the professional
review one week
9. before the due date, I will review it and make suggestions for
improvement
so that you will receive full credit for this assignment if you
make the
proper changes to your final draft.
You must include a copy of this Check Sheet and a copy of the
professional
book review with your Book Dissection Exercise.
Check Sheet: Book Dissection Exercise
____1. I have attached one book review, an older draft of this
paper, and a copy of this
check sheet.
____2. The right margin of my paper is not straight like the left.
____3. I have proofread and proofread and proofread the final
draft to remove every
single spelling error I humanly can.
____4. I have purged my writing of sentence fragments and
comma splices.
____5. I have typed this exercise on a computer and have used a
computer spell-checker.
____6. I have not committed any of the four mortal sins (I
10. like(d), I do (did) not like, "the
people," and "etc.")
____7. I have not marked up my book or mistreated it in any
way, keeping it clean for the
next person to use.
I pledge, upon my word of honor and in full cognizance of the
possible penalties,
including an "F" in the course and suspension from the
university, that this review is my
own work written by me and by no one else, and that I have not
resorted to plagiarism,
*that I have read the whole book thoroughly and have written
the best paper I can*.
______________ Student Signature
Check Sheet for Choosing a Monograph
_____ 1. Does the book concern a specific subject in American
history since 1865?
_____ 2. Is the original publication date (in any language) on or
after 1965?
_____ 3. Does it have *numbered* footnotes or endnotes? (A
bibliography or
bibliographical essay at the end is nice, but does not count as
footnotes or endnotes.
11. Neither do a few asterisked notes. They must be *numbered*.)
_____ 4. Is it a monograph?
_____ 5. Can you locate a good review of it?
Your book is NOT a monograph if:
1. It is a collection of separate essays by one or more authors.
2. It is a textbook or general history of the US over a period of
time.
3. It is a "popular" book for a general audience (most coffee-
table and picture books fall
into this category.)
4. It is a primary source: a collection of letters, a memoir by
someone who lived at the
time, or a set of documents about a subject.
5. It does not involve research into a specifically defined topic
to answer some
specifically stated questions.
The topic for the is to implement the Reversi game using MIPS
12. assembly language.
For a feel of the game visit
http://www.coolmath-games.com/0-reversi
Note: MARS does not have graphic capability so ASCII board is
sufficient.
The wiki link (https://en.wikipedia.org/wiki/Reversi) contains
information on game rules that
must be adhered to
● Minimum requirements while implementing the game:
○ The game is for a human player playing again the computer
(i.e.
your program).
○ The user input (keystrokes) is minimum during each turn that
the
user takes.
○ The ASCII board is the minimum requirement. Creative ways
to
display the board will earn the team extra credits.
○ All moves by the users and the computer MUST be valid
according to the rules of the game.
○ An error message is displayed to explain the rule that was
violated
if a move by the user was not valid.
Functions
13. 1. Intro Function
○ Choose black/white, difficulty (easy or normal), 1 v cpu or 1
v 1, etc.
2. To display the board
○ This function will have two parts, the 1st part will only run
once while the other one is a
subroutine
○ Also the board needs to display column letters and row
numbers every time on the edge
of the board
○ 1st part: initialize board and keep array in a non-temporary
register
○ 2nd part: redisplay board after every move
3. To prompt the user
○ Ask for row & column
■ Rows will be numbers & columns will be letters
4. To check if valid move
○ Go through current board array and compile all valid moves,
after user inputs choice,
compare user choice with list of valid moves
■ 1st part: Check all horizontal valid moves
■ 2nd part: Check all vertical valid moves
■ 3rd part: Check all diagonal valid moves
■ All valid moves will be stored in an array under the notation
(column)(row)
14. example: b4, c5, a6
● This is done so we can compare the user input to the list of
valid moves
○ If move is invalid keep prompting user (jump back to prompt
user function)
5. To implement the moves
○ This function is pretty simply just go to the correct position
in the array and alter the
value
6. To keep score
○ Go through array and tally up black pieces & white pieces
after each round
7. AI function
○ Will have two settings (easy & normal)
■ 1st setting is just randomly picking 1 of the valid moves
(easy)
● Try to write this subroutine as soon as possible so we can test
the “check
if valid” subroutine
■ I have no idea how we will do the 2nd setting (normal)
Extra Credit Ideas
● Graphical interface
● Music
● Difficulty levels
● Scoreboard
● 1 v AI, 1 v 1
15. .data
● current board array
● white score array
● black score array
● valid moves array
○ Since we don't know how many valid moves there are going to
be, make this array 32
elements
(https://boardgames.stackexchange.com/questions/29824/othello
-most-number-of-legal-
moves-in-a-given-turn) and make a variable to keep track of
number of valid moves, so
when we loop through the array to check, we only loop through
the number of times the
variable specifies
Resources
● YouTube video of some guy’s Reversi game in MIPS. Helpful
link in comments to help with
GUI: https://www.youtube.com/watch?v=WF1eahcjmHc
● Pong in mips, has all code, can be useful when dealing with
graphical interfaces and variables
https://github.com/AndrewHamm/MIPS-Pong?files=1
● Github for reversi: https://github.com/skandeel/reversi
https://www.youtube.com/watch?v=WF1eahcjmHc
https://github.com/AndrewHamm/MIPS-Pong?files=1
https://github.com/skandeel/reversi