Assignment 1

Due Date: Friday, January 22nd, 5:00 PM 11:59 PM

Contents

Introduction

For Assignment 1, your team is tasked with creating a proof of concept demo of a card game called Aces Up using ninja framework.

The rules for Aces Up are here: Note: Aces are high.

  • Deal four cards in a row face up.
  • If there are two or more cards of the same suit, discard all but the highest-ranked card of that suit.
  • Repeat step 2 until there are no more pairs of cards with the same suit.
  • Whenever there are any empty spaces, you may choose the top card of another pile to be put into the empty space. After you do this, go to Step 2.
  • When there are no more cards to move or remove, deal out the next four cards from the deck face-up onto each pile.
  • Repeat Step 2, using only the visible (top) cards on each of the four piles.
  • When the last four cards have been dealt out and any moves made, the game is over. The fewer cards left in the tableau, the better. To win is to have only the four aces left.
When the game ends, the number of discarded cards is your score. The maximum score (and thus the score necessary to win) is 48, which means all cards have been discarded except for the four aces, thus the name of the game.
Rules from: https://en.wikipedia.org/wiki/Aces_Up

You can also play online here: http://justsolitaire.com/Aces_Up_Solitaire/

Your boss wants to know if it is possible to implement this game using the ninja framework. You will have two weeks to implement this game. Since this is just a proof of concept, we will not be developing an extensive UI at this time.

Tasks for this Assignment

To complete this assignment, each group needs to do the following:

  • Fork cs361-W16/https://github.com/cs361-W16/Assignment-1 This will be the repo for your project. This repo will be the basis for your grade in this assignment.

  • Turn the assignment into User Stories. From the Introduction Section, each team should turn the assignment into a series of user stories. We will talk about them in class, but a good introduction to User Stories can be found here: http://www.subcide.com/articles/how-to-write-meaningful-user-stories/ Once each team has developed their user stories, they will create a page on their Github Project wiki called “User Stories”, where they will record all their user stories.

    Each User Story must have the following format

    Card: (“As a [user], I want [function], so that [value]”)
    Conversation: (Details that clarify the user story)
    Confirmation: (Tests to know when the User Story is completed)

    Your user stories will be evaluted if they follow INVEST

  • Create Tasks from User Stories. From the user stories, each team will create a series of features that need to be implemented in the code. These will be added to the Github issue tracking system. Each of these must be assigned to a specific team member, as well as have a time estimate given in the body of the issue.
    HINT: Good tasks are SMART. Read more about SMART goals here.

  • Implement Code in Feature Branches. Each Team member will create a branch for each feature they are going to implement. When the feature is completed, the team member will create a pull request to the group repo. They should use that pull request to close the specific feature. If at any time, a bug is found, it should be reported using the Github issue tracker.

Turning In and Late Policy

To turn in this assignment, someone on your team should make an commit with the string "Assignment 1" in the commit message before, January 22nd, 5:00pm.
You will get your grade during the Grading meeting you will schedule with the TA or the Instructor the next Monday or Tuesday.

LATE POLICY:
Each team will have three late days to use for any milestone during the term. These late days will not be given automatically. If you intend to use your late day, you must email the instructor BEFORE the deadline.

Grading Rubric

Here is how this assignment will be graded. Notice that there will be both individual and group scores

Group Grading
% Item
10 INVEST User Stories in Github Wiki
10 Feature requests in Github Issue Tracker
5 Features developed in feature branches
10 Code follows MVC
5 Code is stateless
10 Model And Controller Code developed using TDD (>90% Test Coverage)
10 Tests for each User Story
60% Total:

Individual Grading

% Item Team Member 1 Team Member 2 Team Member 3 Team Member 4
10 Implemented at least one User Story
10 Code merged into Project from Pull Request
10 Constructive Comments on another team member’s Pull Request
10 Attend Grading meeting
40% Total

Tips and Suggestions

Here are some suggestions that might make your life easier.
Manage your tasks with https://waffle.io/. You can use your Github username and it makes the task management a lot easier.
Use https://slack.com/ for communication. If you use #Slack, join the OregonState group, and I will be happy to answer questions on Slack.

Extra Credit

Your entire team will earn an extra 5% extra credit for this assignment for sharing a meal off campus somewhere. It can be a working meal or just a social meal.