Gcse Computer Science Unit1 Mark Scheme Jun19
Gcse Computer Science Unit1 Mark Scheme Jun19
COMPUTER SCIENCE
9210
Paper 1 Programming
Mark scheme
June 2019
Version: 1.0 Final
*196Y92101/MS*
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
Mark schemes are prepared by the Lead Assessment Writer and considered, together with the relevant
questions, by a panel of subject teachers. This mark scheme includes any amendments made at the
standardisation events which all associates participate in and is the scheme which was used by them in
this examination. The standardisation process ensures that the mark scheme covers the students’
responses to questions and that every associate understands and applies it in the same correct way.
As preparation for standardisation each associate analyses a number of students’ scripts. Alternative
answers not already covered by the mark scheme are discussed and legislated for. If, after the
standardisation process, associates encounter unusual answers which have not been raised they are
required to refer these to the Lead Assessment Writer.
It must be stressed that a mark scheme is a working document, in many cases further developed and
expanded on the basis of students’ reactions to a particular paper. Assumptions about future mark
schemes on the basis of one year’s document should be avoided; whilst the guiding principles of
assessment remain constant, details will change, depending on the content of a particular examination
paper.
Copyright © 2019 Oxford International AQA Examinations and its licensors. All right reserved.
2
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
Before you apply the mark scheme to a student’s answer read through the answer and annotate it (as
instructed) to show the qualities that are being looked for. You can then apply the mark scheme.
When assigning a level you should look at the overall quality of the answer and not look to pick holes in
small and specific parts of the answer where the student has not performed quite as well as the rest. If
the answer covers different aspects of different levels of the mark scheme you should use a best fit
approach for defining the level and then use the variability of the response to help decide the mark within
the level, ie if the response is predominantly level 3 with a small amount of level 4 material it would be
placed in level 3 but be awarded a mark near the top of the level because of the level 4 content.
You may well need to read back through the answer as you apply the mark scheme to clarify points and
assure yourself that the level and the mark are appropriate.
Indicative content in the mark scheme is provided as a guide for examiners. It is not intended to be
exhaustive and you must credit other valid points. Students do not have to cover all of the points
mentioned in the Indicative content to reach the highest level of the mark scheme.
An answer which contains nothing of relevance to the question must be awarded no marks.
3
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
4
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
01 1 PlayerOneTurn; 2
PlayerOneWins;
AO3=2
01 2 GetCardChoice // GetCardValues; 1
AO3=1
Max 2
01 4 (1D) array/list; 2
of type string;
AO3=2
01 5 (The third else if applies) when a tops card is played by the first 2
player; and the second player did not play a tops card;
// AO3=2
When the two cards are of different suits; and the first player’s
suit is a tops card;
01 6 Temp is used to ensure that the cards at Pos1 and Pos2 are 2
swapped; without card at Pos1/Pos2 being
duplicated/overwritten; AO3=2
//
If this was not used then there would end up being two copies of
one card; and one card would be removed from /not be in the
deck;
5
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
02 1 Set PlayerTwoRoundsWon to 0; 1
AO3=1
02 2 Is PlayerOneTurn True? 1
//
Is it player one’s turn?; AO3=1
AO3=1
AO3=1
6
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
Max 2
03 2 Condition Same 3
functionality
(Yes/No)? AO3=3
CardsInHand is less than 0 No
PlayerOneWins is False No
CardsInHand does not equal 0 Yes
Size of PlayerOneHand is greater than Yes
0
Sum of PlayerOneRoundsWon and No
PlayerTwoRoundsWon is equal to
value of CardsInHand
7
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
Python
def GetNumberOfCardsInHand():
print("How many cards will there be in each
player's hand?")
CardsInHand = int(input())
while CardsInHand < 2 or CardsInHand >= 14:
print()
print("Invalid - please try again")
CardsInHand = int(input())
return CardsInHand
C#
static int GetNumberOfCardsInHand()
{
int CardsInHand;
Console.WriteLine("How many cards will
there be in each player's hand?");
CardsInHand =
Convert.ToInt32(Console.ReadLine());
while (CardsInHand < 2 || CardsInHand > 13)
{
Console.WriteLine();
Console.WriteLine("Invalid - please try
again");
CardsInHand =
Convert.ToInt32(Console.ReadLine());
}
return CardsInHand;
}
8
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
VB
Function GetNumberOfCardsInHand() As Integer
Dim CardsInHand As Integer
Console.WriteLine("How many cards will
there be in each player's hand?")
CardsInHand = Console.ReadLine()
While CardsInHand < 2 Or CardsInHand > 13
Console.WriteLine()
Console.WriteLine("Invalid - please try
again")
CardsInHand = Console.ReadLine()
End While
Return CardsInHand
End Function
1 mark: Correct error message displayed each time invalid value AO3=1
entered, and not displayed when valid value entered.
9
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
Python
def DisplayHand(Hand, PlayerName):
print()
print(PlayerName + "'s hand is:")
for Card in Hand:
Suit = Card[0]
Rank = Card[1:]
print(Rank, end="")
print(" of ", end= "")
if Suit == "T":
print("triangles")
else:
print(Suit)
print()
C#
static void DisplayHand(List<string> Hand,
string PlayerName)
{
string Suit;
string Rank;
Console.WriteLine();
Console.WriteLine(PlayerName + "'s hand
is:");
foreach (string Card in Hand)
{
Suit = Card.Substring(0, 1);
Rank = Card.Substring(1, Card.Length -
1);
Console.Write(Rank);
Console.Write(" of ");
if (Suit == "T")
Console.WriteLine("triangles");
else
Console.WriteLine(Suit);
}
Console.WriteLine();
}
10
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
VB
Sub DisplayHand(ByVal Hand As List(Of String),
ByVal PlayerName As String)
Dim Suit As String
Dim Rank As String
Console.WriteLine()
Console.WriteLine(PlayerName + "'s hand
is:")
For Each Card As String In Hand
Suit = Card.Substring(0, 1)
Rank = Card.Substring(1, Card.Length -
1)
Console.Write(Rank)
Console.Write(" of ")
If Suit = "T" Then
Console.WriteLine("triangles")
Else
Console.WriteLine(Suit)
End If
Next
Console.WriteLine()
End Sub
11
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
Python
CardsInHand = GetNumberOfCardsInHand()
Tops = input("Enter suit to be used for tops:
")
while Tops != 'P' and Tops != 'C':
print("Error, only a valid suit value should
be entered (P or C): ")
Tops = input("Enter suit to be used for tops:
")
Deck = ["PH","P2","P3","P4","P5"…………………
Deck = ShuffleDeck(Deck)
C#
CardsInHand = GetNumberOfCardsInHand();
Console.Write("Enter suit to be used for tops:
");
Tops = Console.ReadLine();
while (Tops != "P" && Tops != "C")
{
Console.WriteLine("Error, only a valid suit
value should be entered (P or C): ");
Console.Write("Enter suit to be used for
tops: ");
Tops = Console.ReadLine();
}
Deck = new List<string>
{"PH","P2","P3","P4","P5"…
ShuffleDeck(Deck);
VB
CardsInHand = GetNumberOfCardsInHand()
Console.Write("Enter suit to be used for tops:
")
12
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
Tops = Console.ReadLine()
While Tops <> "P" And Tops <> "C"
Console.WriteLine("Error, only a valid suit
value should be entered (P or C): ")
Console.Write("Enter suit to be used for
tops: ")
Tops = Console.ReadLine()
End While
Deck = New List(Of String) From {"PH", "P2",
"P3"…
ShuffleDeck(Deck)
13
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
Python
PlayerOneWins =
DecideWinnerOfRound(PlayerOneSuit,
PlayerOneRank, PlayerTwoSuit, PlayerTwoRank,
PlayerOneTurn, Tops)
if PlayerOneWins:
PlayerOneRoundsWon += 1
if Tops == PlayerOneSuit and PlayerOneRank <=
6:
PlayerOnePoints += 3
print("3 points scored this round")
else:
PlayerOnePoints += 0.5
print("A half point scored this round")
print("Player One won that round")
Alternative answer
if Tops == PlayerOneSuit and PlayerOneRank <=
6:
PlayerOnePoints += 3
print("3 points scored this round")
else:
PlayerOnePoints += 0.5
C#
if (PlayerOneWins)
{
PlayerOneRoundsWon += 1;
if (Tops == PlayerOneSuit && PlayerOneRank <=
6)
{
PlayerOnePoints += 3;
Console.WriteLine("3 points scored this
round");
}
14
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
else
{
PlayerOnePoints += 0.5;
Console.WriteLine("A half point scored
this round");
}
Console.WriteLine("Player One won that
round.");
}
VB
If PlayerOneWins Then
PlayerOneRoundsWon += 1
If Tops = PlayerOneSuit And PlayerOneRank <=
6 Then
PlayerOnePoints += 3
Console.WriteLine("3 points scored this
round")
Else
PlayerOnePoints += 0.5
Console.WriteLine("A half point scored this
round")
End If
Console.WriteLine("Player One won that
round")
Else
print("A half point scored this round")
1 mark: suitable choices made for the two cards used in their AO3=2
test.
1 mark: "3 points scored this round" message is
displayed when suitable test data was entered.
A. incorrect message if it matches code in 07.1.
Player one, Enter card to use (suit then rank e.g. C3, S10, TK):
P4
Player two, Enter card to use (suit then rank e.g. C3, S10, TK):
S7
3 points scored this round
Player one won that round
15
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
Python
def GetBonusPointRounds():
RandNo = random.randint(0, 1)
if RandNo == 0:
Rounds = int(input("Player One how many
rounds do you think you will win?"))
else:
Rounds = int(input("Player Two how many
rounds do you think you will win?"))
if RandNo == 1:
Rounds = Rounds * -1
return Rounds
Alternative answer
def GetBonusPointRounds():
Player = random.randint(1, 2)
if Player == 1:
Rounds = int(input("Player One how many
rounds do you think you will win?"))
else:
Rounds = int(input("Player Two how many
rounds do you think you will win?"))
return Player, Rounds
C#
static int GetBonusPointsRounds()
{
int RandNo;
16
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
int Rounds;
Random RandomInt = new Random();
RandNo = RandomInt.Next(0, 2);
if (RandNo == 0)
{
Console.Write("Player One how many rounds
do you think you will win?");
Rounds = int.Parse(Console.ReadLine());
}
else
{
Console.Write("Player Two how many rounds
do you think you will win?");
Rounds = int.Parse(Console.ReadLine());
}
if (RandNo == 1)
Rounds = Rounds * -1;
return Rounds;
}
Alternative answer
static void GetBonusPointsRounds(ref int
Player, ref int Rounds)
{
int RandNo;
Random RandomInt = new Random();
RandNo = RandomInt.Next(1, 3);
if (RandNo == 1)
{
Console.Write("Player One how many rounds
do you think you will win?");
Rounds = int.Parse(Console.ReadLine());
}
else
{
Console.Write("Player Two how many rounds
do you think you will win?");
Rounds = int.Parse(Console.ReadLine());
}
}
VB
Function GetBonusPointsRounds() As Integer
Dim RandNo As Integer
Dim Rounds As Integer
Dim RandomInt = New Random()
RandNo = RandomInt.Next(0, 2)
If RandNo = 0 Then
Console.Write("Player One how many rounds
do you think you will win?")
Rounds = Console.ReadLine()
Else
17
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
Alternative answer
Sub GetBonusPointsRounds(ByRef Player As
Integer, ByRef Rounds As Integer)
Dim RandNo As Integer
Dim RandomInt = New Random()
RandNo = RandomInt.Next(1, 3)
If RandNo = 1 Then
Console.Write("Player One how many rounds
do you think you will win?")
Rounds = Console.ReadLine()
Else
Console.Write("Player Two how many rounds
do you think you will win?")
Rounds = Console.ReadLine()
End If
End Sub
Python
def Main():
Again = "Y"
while Again == "Y":
CardsInHand = GetNumberOfCardsInHand()
Tops = "P"
Deck =
["PH","P2","P3","P4","P5","P7","P8","P9","P10",
18
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
"PA","PN","PK","CH","C2","C3","C4","C5","C6","C
7","C8","C9","C10","CA","CN","CK","TH","T2","T3
","T4","T5","T6","T7","T8","T9","T10","TA","TN"
,"TK","SH","S2","S3","S4","S5","S6","S7","S8","
S9","S10","SA","SN","SK"]
Deck = ShuffleDeck(Deck)
PlayerOneHand, PlayerTwoHand, Deck =
DealCards(Deck, CardsInHand)
DisplayHandsAtStartOfGame(PlayerOneHand,
PlayerTwoHand)
RoundsForBonusPoint = GetBonusPointRounds()
PlayerOnePoints, PlayerTwoPoints,
PlayerOneRoundsWon, PlayerTwoRoundsWon =
PlayGame(CardsInHand, PlayerOneHand,
PlayerTwoHand, Tops)
if RoundsForBonusPoint > 0:
if PlayerOneRoundsWon ==
RoundsForBonusPoint:
PlayerOnePoints += 1
else:
PlayerOnePoints -= 1
else:
if PlayerTwoRoundsWon == -
RoundsForBonusPoint:
PlayerTwoPoints += 1
else:
PlayerTwoPoints -= 1
DisplayFinalResult(PlayerOnePoints,
PlayerTwoPoints)
Again = input("Play again (enter Y for
Yes)?")
print()
Alternative answer
BonusPlayer, RoundsForBonusPoint =
GetBonusPointRounds()
PlayerOnePoints, PlayerTwoPoints,
PlayerOneRoundsWon, PlayerTwoRoundsWon =
PlayGame(CardsInHand, PlayerOneHand,
PlayerTwoHand, Tops)
if BonusPlayer == 1:
if PlayerOneRoundsWon ==
RoundsForBonusPoint:
PlayerOnePoints += 1
else:
PlayerOnePoints -= 1
else:
if PlayerTwoRoundsWon ==
RoundsForBonusPoint:
PlayerTwoPoints += 1
else:
19
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
PlayerTwoPoints -= 1
C#
DisplayHandsAtStartOfGame(Deck, PlayerOneHand,
PlayerTwoHand);
RoundsForBonusPoint = GetBonusPointsRounds();
PlayGame(CardsInHand, PlayerOneHand,
PlayerTwoHand, Tops, ref PlayerOnePoints, ref
PlayerTwoPoints, ref PlayerOneRoundsWon, ref
PlayerTwoRoundsWon);
if (RoundsForBonusPoint > 0)
{
if (PlayerOneRoundsWon ==
RoundsForBonusPoint)
PlayerOnePoints += 1;
else
PlayerOnePoints -= 1;
}
else
{
if (PlayerTwoRoundsWon == -
RoundsForBonusPoint)
PlayerTwoPoints += 1;
else
PlayerTwoPoints -= 1;
}
DisplayFinalResult(PlayerOnePoints,
PlayerTwoPoints);
Alternative answer
DisplayHandsAtStartOfGame(Deck, PlayerOneHand,
PlayerTwoHand);
GetBonusPointsRounds(ref BonusPlayer, ref
RoundsForBonusPoint);
PlayGame(CardsInHand, PlayerOneHand,
PlayerTwoHand, Tops, ref PlayerOnePoints, ref
PlayerTwoPoints, ref PlayerOneRoundsWon, ref
PlayerTwoRoundsWon);
if (BonusPlayer ==1)
{
if (PlayerOneRoundsWon ==
RoundsForBonusPoint)
PlayerOnePoints += 1;
else
PlayerOnePoints -= 1;
20
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
}
else
{
if (PlayerTwoRoundsWon ==
RoundsForBonusPoint)
PlayerTwoPoints += 1;
else
PlayerTwoPoints -= 1;
}
DisplayFinalResult(PlayerOnePoints,
PlayerTwoPoints);
VB
DisplayHandsAtStartOfGame(Deck, PlayerOneHand,
PlayerTwoHand)
RoundsForBonusPoint = GetBonusPointsRounds()
PlayGame(CardsInHand, PlayerOneHand,
PlayerTwoHand, Tops, PlayerOnePoints,
PlayerTwoPoints, PlayerOneRoundsWon,
PlayerTwoRoundsWon)
If RoundsForBonusPoint > 0 Then
If PlayerOneRoundsWon = RoundsForBonusPoint
Then
PlayerOnePoints += 1
Else
PlayerOnePoints -= 1
End If
Else
If PlayerTwoRoundsWon = -RoundsForBonusPoint
Then
PlayerTwoPoints += 1
Else
PlayerTwoPoints -= 1
End If
End If
DisplayFinalResult(PlayerOnePoints,
PlayerTwoPoints)
Alternative answer
DisplayHandsAtStartOfGame(Deck, PlayerOneHand,
PlayerTwoHand)
GetBonusPointsRounds(BonusPlayer,
RoundsForBonusPoint)
PlayGame(CardsInHand, PlayerOneHand,
PlayerTwoHand, Tops, PlayerOnePoints,
PlayerTwoPoints, PlayerOneRoundsWon,
PlayerTwoRoundsWon)
If BonusPlayer = 1 Then
If PlayerOneRoundsWon = RoundsForBonusPoint
21
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
Then
PlayerOnePoints += 1
Else
PlayerOnePoints -= 1
End If
Else
If PlayerTwoRoundsWon = RoundsForBonusPoint
Then
PlayerTwoPoints += 1
Else
PlayerTwoPoints -= 1
End If
End If
DisplayFinalResult(PlayerOnePoints,
PlayerTwoPoints)
22
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
23
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
Python
def ReplaceCard(Deck, PlayerTwoHand):
MaxCardsToChange = len(PlayerTwoHand);
print("Player Two")
ReplaceFrom = input("Enter 'F' to replace
card at the front of your hand or 'B' to
replace card at the back of your hand: ")
if ReplaceFrom == "F":
Index = 0
elif ReplaceFrom == "B":
Index = MaxCardsToChange – 1
PlayerTwoHand[Index] = Deck[0]
del Deck[0:1]
DisplayHand(PlayerTwoHand, "Player Two")
return PlayerTwoHand
C#
static List<string> ReplaceCard(List<string>
Deck, List<string> PlayerTwoHand)
{
char ReplaceFrom;
int Index=0;
24
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
Console.WriteLine("Player Two");
Console.Write("Enter 'F' to replace card at
the front of your hand or 'B' to replace card
at the back of your hand: ");
ReplaceFrom = char.Parse(Console.ReadLine());
if (ReplaceFrom == 'F')
Index = 0;
else if (ReplaceFrom == 'B')
Index = PlayerTwoHand.Count - 1;
PlayerTwoHand[Index] = Deck[0];
Deck.RemoveRange(0, 1);
DisplayHand(PlayerTwoHand, "Player Two");
return PlayerTwoHand;
}
VB
Function ReplaceCard(ByVal Deck As List(Of
String), ByVal PlayerTwoHand As List(Of
String)) As List(Of String)
Dim ReplaceFrom As Char
Dim Index As Integer
Console.WriteLine("Player Two")
Console.Write("Enter 'F' to replace card at
the front of your hand or 'B' to replace card
at the back of your hand: ")
ReplaceFrom = Console.ReadLine()
If ReplaceFrom = "F" Then
Index = 0
ElseIf ReplaceFrom = "B" Then
Index = PlayerTwoHand.Count - 1
End If
PlayerTwoHand(Index) = Deck(0)
Deck.RemoveRange(0, 1)
DisplayHand(PlayerTwoHand, "Player Two")
Return PlayerTwoHand
End Function
Python
def DisplayHandsAtStartOfGame(Deck,
PlayerOneHand, PlayerTwoHand):
input("Player Two look away from the
screen. Press Enter to display Player One's
hand.")
DisplayHand(PlayerOneHand, "Player One")
input("Press Enter to continue.")
25
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
C#
static void
DisplayHandsAtStartOfGame(List<string> Deck,
List<string> PlayerOneHand, List<string>
PlayerTwoHand)
{
int Count;
Console.WriteLine("Player Two look away from
the screen. Press Enter to display Player
One's hand.");
Console.ReadLine();
DisplayHand(PlayerOneHand, "Player One");
Console.WriteLine("Press Enter to
continue.");
Console.ReadLine();
for (Count = 0; Count < 25; Count++)
Console.WriteLine();
Console.WriteLine("Player One look away from
the screen. Press Enter to display Player
Two's hand.");
Console.ReadLine();
DisplayHand(PlayerTwoHand, "Player Two");
Console.WriteLine("Press Enter to
continue.");
Console.ReadLine();
for (Count = 0; Count < 25; Count++)
Console.WriteLine();
Console.WriteLine("Number of cards left in
the deck: " + Deck.Count);
Console.WriteLine();
PlayerTwoHand = ReplaceCard(Deck,
PlayerTwoHand);
}
26
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
VB
Sub DisplayHandsAtStartOfGame(ByVal Deck As
List(Of String), ByVal PlayerOneHand As List(Of
String), ByVal PlayerTwoHand As List(Of
String))
Dim Count As Integer
Console.WriteLine("Player Two look away from
the screen. Press Enter to display Player
One's hand.")
Console.ReadLine()
DisplayHand(PlayerOneHand, "Player One")
Console.WriteLine("Press Enter to continue.")
Console.ReadLine()
For Count = 0 To 24
Console.WriteLine()
Next
Console.WriteLine("Player One look away from
the screen. Press Enter to display Player
Two's hand.")
Console.ReadLine()
DisplayHand(PlayerTwoHand, "Player Two")
Console.WriteLine("Press Enter to continue.")
Console.ReadLine()
For Count = 0 To 24
Console.WriteLine()
Next
Console.WriteLine("Number of cards left in
the deck: " & Deck.Count)
Console.WriteLine()
PlayerTwoHand = ReplaceCard(Deck,
PlayerTwoHand)
End Sub
27
MARK SCHEME – INTERNATIONAL GCSE COMPUTER SCIENCE – 9210/1 – JUNE 2019
Player Two
Enter 'F' to replace card at the front of your hand or 'B' to replace
card at the back of your hand: B
Player one, enter card to use (suit then rank e.g. C3, S10, TK):
28