BCE0044: expecting }, found 'class' alond with BCE0044: expecting EOF, found 'Card'

I am going through a Unity3d book for beginners and I came accross something that I can't figure out. I recieve 2 errors when trying to run my game -

BCE0044: expecting }, found 'class' alond with BCE0044: expecting EOF, found 'Card'

Here is my script -

    var cols:int = 4;
var rows:int = 4;
var totalCards:int = cols*rows;
var matchesNeededTOWin:int = totalCards * 0.5;
var matchesMade:int = 0;
var cardW:int = 100;
var cardH:int = 100;
var aCards:Array;
var aGrid:Array;
var aCardsFlipped:ArrayList;
var playerCanClick:boolean;
var playerHasWon:boolean = false;

function Start ()
{
    playerCanClick = true;
    acards = new Array();
    aGrid = new Array();
    aCardsFlipped = new ArrayList();

        BuildDeck();

        for(i=0; i<rows; i++)
    {
        aGrid *=  new Array() ;* 
 *for (j=0; j<cols; j++)*
 *{*
 *var someNum:int = Random.Range(0,aCards.length);*
 _aGrid *[j] = aCards[someNum];*_
 _*aCards.RemoveAt(someNum);*_
 _*}*_
 _*}*_
_*}*_
_*function OnGUI () {*_
 _*GUILayout.BeginArea (Rect (0,0,Screen.width,Screen.height));*_
 _*BuildGrid();*_
 _*GUILayout.EndArea();*_
 _*print("building grid!");*_
_*}*_
_*function BuildGrid()*_
_*{*_
 _*GUILayout.BeginVertical();*_
 _*GUILayout.FlexibleSpace();*_
 _*for(i=0; i<rows; i++)*_
 _*{*_
 _*GUILayout.BeginHorizontal();*_
 _*GUILayout.FlexibleSpace();*_
 _*for(j=0; j<cols; j++)*_
 _*{*_
 <em>_var card:Object = aGrid *[j];*_</em>
 <em>_*if(GUILayout.Button(Resources.Load(card.img),*_</em>
 <em>_*GUILayout.Width(cardW)))*_</em>
 <em>_*{*_</em>
 <em>_*Debug.Log(card.img);*_</em>
 <em>_*}*_</em>
 <em>_*}*_</em>
 <em>_*GUILayout.FlexibleSpace();*_</em>
 <em>_*GUILayout.EndHorizontal();*_</em>
 <em>_*}*_</em>
 <em>_*GUILayout.FlexibleSpace();*_</em>
 <em>_*GUILayout.EndVertical();*_</em>
<em>_*}*_</em>
<em>_*function BuildDeck()*_</em>
<em>_*{*_</em>
 <em>_*var totalRobots:int = 4;*_</em>
 <em>_*var card:Object;*_</em> 
 <em>_*for (i=0; i<totalRobots; i++)*_</em>
 <em>_*{*_</em>
 <em>_*var aRobotParts:Array = ["Head", "Arm", "Leg"];*_</em>
 <em>_*for (j=0; j<2; j++)*_</em>
 <em>_*{*_</em>
 <em>_*var someNum:int = Random.Range(0, aRobotParts.length);*_</em>
 <em>_*var theMissingPart:String = aRobotParts [someNum];*_</em>
 <em>_*aRobotParts.RemoveAt(someNum);*_</em>
 <em>_*card = new Card("robot" + (i+1) + "Missing" + theMissingPart);*_</em>
 <em>_*aCards.Add(card);*_</em>
 <em>_*card= new Card("robot" + (i+1) + theMissingPart);*_</em>
 <em>_*aCards.Add(card);*_</em>
 <em>_*}*_</em>
<em>_*}*_</em>
<em>_*class Card extends System.Object*_</em> 
<em>_*{*_</em>
 <em>_*var isFaceUp:boolean = false;*_</em>
 <em>_*var isMatched:boolean = false;*_</em>
 <em>_*var img:String;*_</em>
 <em>_*function Card()*_</em>
 <em>_*{*_</em>
 <em>_*this.img = img;*_</em>
 <em>_*}*_</em> 
<em>_*}*_</em>
<em>_*```*_</em>
<em>_*<p>From what I have read on other posts I either have to many '}' or not enough, but I don't think that is the case here since I have 2 open and 2 closing.</p>*_</em>
<em>_*<p>If I could get some help with this I would appreciate it very much!</p>*_</em>
<em>_*<p>Thanks</p>*_</em>

You need an additional curly bracket at the end of your BuildDeck function...

function BuildDeck()
{
    var totalRobots:int = 4;
    var card:Object; 
    for (i=0; i<totalRobots; i++)
    {
        var aRobotParts:Array = ["Head", "Arm", "Leg"];
        for (j=0; j<2; j++)
        {
        var someNum:int = Random.Range(0, aRobotParts.length);
        var theMissingPart:String = aRobotParts [someNum];

        aRobotParts.RemoveAt(someNum);

        card = new Card("robot" + (i+1) + "Missing" + theMissingPart);
        aCards.Add(card);

        card= new Card("robot" + (i+1) + theMissingPart);
        aCards.Add(card);
       }
    }
}