# A-level Computing 2009/AQA/Problem Solving, Programming, Data Representation and Practical Exercise/Skeleton code/2015 Exam/Section C

## Validation

 Ways to crash game In VB, if you type 18 then 08. The game crashes - fix this. Answer: Function CheckMoveIsLegal(ByVal Board(,) As String, ByVal StartRank As Integer, ByVal StartFile As Integer, ByVal FinishRank As Integer, ByVal FinishFile As Integer, ByVal WhoseTurn As Char) As Boolean ``` Dim PieceType As Char Dim PieceColour As Char If FinishFile = StartFile And FinishRank = StartRank Then Return False End If PieceType = Board(StartRank, StartFile)(1) PieceColour = Board(StartRank, StartFile)(0) If FinishRank = 0 Or FinishFile = 0 Then 'This is the required if statement Return False End If ```

## Variables

 Variables What is this function for? (code in answer) Answer: If Asc(SampleGame) >= 97 And Asc(SampleGame) <= 122 Then SampleGame = Chr(Asc(SampleGame) - 32) End If This converts lowercase to uppercase by using ASCII values. {{CPTQuestion|What simple function can replace this code with? If Asc(SampleGame) >= 97 And Asc(SampleGame) <= 122 Then SampleGame = Chr(Asc(SampleGame) - 32) End If (Answer in Code) Answer: SampleGame = Ucase(SampleGame) Give the name of the identifier of a Constant Answer: BoardDimension Give the name of the identifier of a Fixed Value Variable Answer: SampleGame Give the name of a Most Wanted Holder Variable Answer: GetMove Give the name of the identifier of a Stepper Variable Answer: fileNo Give the name of the identifier of a Temporary Variable Answer: Board Give the name of the identifier of a Transformation Variable Answer: StartRank

## Loops

 Loops What is the difference between a repeat until loop and a for loop Answer: The 'for' loop will run a set number of times and finish when the count is complete. A repeat until loop will run until a condition has been met, the condition is checked at the end of the loop so it is possible for the loop to run once Example Question Answer: Example Answer Example Question Answer: Example Answer

## Sub Routines

 Sub Routine Give an example of a SubRoutine whose only role is to output Answer: DisplayWinner, displayWhoseTurnItIs

## Extra Stuff

 Extra Stuff Why is System.Math imported? Answer: To allow the use of Abs() in the process of checking whether moves are legal. Why is Abs used? Answer: To return the absolute value. This is needed because the result of (FinishFile - StartFile) or (FinishRank - StartRank) may be a negative number, whilst the move is still legal. The Abs function returns the positive alternative, which prevents the program from crashing