**Heads up!** To view this whole video, sign in with your Courses account or enroll in your free 7-day trial.
Sign In
Enroll

Preview

Start a free Courses trial

to watch this video

In this video we'll see how we can check the suits of our cards, and then we'll finish up the 'addCards' function!

Getting back to our suitCheck function.
0:00

Let's use our new properties to
help us determine if the two cards
0:02

are different colors,
which can only happen in two ways.
0:06

Either card one is red, and card two
is black, or card one is black, and
0:09

card two is red.
0:14

So let's type if and
then add our brackets.
0:15

Then inside the if statement,
let's add parentheses for
0:20

our first case then add an or and
add parentheses for our second case.
0:24

Then let's jump back to our first case.
0:30

And check if c1 is red
by seeing if its suit is
0:33

contained by our redSuits property.
0:36

So redSuits.contains c1.suit.
0:39

Then let's add an and and
check if c2 is black.
0:44

blackSuits.contains c2.suit.
0:51

Now we just need to handle the second
case where card one is black and
0:56

card two is red, and I'll put this
on a new line so it's easier to see.
1:00

So inside our second case parentheses,
1:04

let's type blackSuits.contains c1.suit and
1:09

redSuits.contains c2.suit.
1:15

And there we go.
1:19

Our suitCheck function
is basically finished.
1:20

We just need to add return true
inside our if statement, and
1:23

then add return false at
the bottom of the function.
1:27

Jumping back to our addCards function,
if this if statement is true,
1:31

then we want to add the new cards to
our current cards and return true.
1:36

So, inside this if statement,
let's update our tableau
1:41

pile by typing cards.addAll and
passing in our new cards list.
1:46

Then let's return true to let our
model know that it was a success.
1:52

Finally, let's return false
at the end of this function.
1:57

And we should be done, right?
2:02

Not quite.
2:03

We still need to handle the case
where our tableauPile is empty.
2:05

Remember, an empty tableauPile will
only accept a king as the first card.
2:09

Also, as we have it now,
2:14

an empty tableauPile will give us
an error when we try to use cards.last.
2:15

There's no last card in an empty pile.
2:20

To fix this, let's only evaluate our
if statement if our Cards property
2:23

actually has cards in it.
2:28

At the top of the function,
let's type if cards is
2:29

greater than 0, add the left bracket and
2:34

then let's add the right bracket,
down here.
2:38

Next let's add an else if to
handle if a king is being played.
2:45

Else if (newCards.first().value
2:49

== 12, which is the value of a king.
2:55

And finally, inside the else if,
let's just copy and
3:02

paste these two lines from up here.
3:05

And there we go.
3:15

Now when we run this function,
if there are cards in the tableau pile and
3:16

the first new card meets these criteria,
3:22

then we'll add the new cards and
return true.
3:25

On the other hand,
if this tableau pile is empty but
3:29

the first a new card is a king, then we'll
also add the new cards and return true.
3:33

Otherwise, whatever cards we're
trying to add aren't a match.
3:41

So we'll just return false.
3:45

We're finally done with
the addCards function and
3:47

all that remains is figuring out how
to remove cards from our tableau pile.
3:50

In the next video,
we'll see how we can do that, and
3:54

along the way, we'll learn all about for
loops in Kotlin.
3:57

You need to sign up for Treehouse in order to download course files.

Sign up