My first c# app and first null object exception

Posted by Fresheyeball on Stack Overflow See other posts from Stack Overflow or by Fresheyeball
Published on 2012-06-15T21:03:36Z Indexed on 2012/06/15 21:16 UTC
Read the original article Hit count: 285

Filed under:
|

Total noob here. This is my first c# attempt, its a console application that simulates a drinking game called 'Left Right Center'. In the console I receive the following:

CONSOLE

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object
at LeftRightCenter.MainClass.Main (System.String[] args) [0x00038] in     /Users/apple/Projects/LearningC/LearningC/Main.cs:80 
[ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
 at LeftRightCenter.MainClass.Main (System.String[] args) [0x00038] in /Users/apple/Projects/LearningC/LearningC/Main.cs:80 

C#

    using System;

    namespace LeftRightCenter
    {
        class Player
        {
            //fields        
            private int _quarters = 4;

            public int Quarters {
                get{ return _quarters; }
                set{ _quarters += value; }
            }

            public Player (string name)
            {

            }   

        }
        class Dice
        {
            Random random = new Random();
            public int Roll ()
            {
                random = new Random ();
                int diceSide;
                diceSide = random.Next (0, 6);
                diceSide = (diceSide > 2) ? 3 : diceSide;
                return diceSide;            
            }
        }
        class MainClass
        {
            static int activePlayer = 0;
            static int theCup       = 0;

            static Player[] thePlayers = { 
                new Player ("Jessica"), 
                new Player ("Isaac"), 
                new Player ("Ed"), 
                new Player ("Bella"),
                new Player ("Elisa"),
                new Player ("Fake RedHead"),
                new Player ("Linda"),
                new Player ("MJ"),
                new Player ("Irene"),
                new Player("Devin")
            };

            static Dice[] theDice = new Dice[2];

            private static void MoveQuarter (int direction)
            {
                int numberOfPlayers = thePlayers.Length - 1;
                switch (direction) {
                case 0: 
                    thePlayers [activePlayer].Quarters = -1;
                    theCup++;
                    break;
                case 1:
                    thePlayers [activePlayer].Quarters = -1;
                    int leftPlayer = (activePlayer == 0) ? numberOfPlayers : activePlayer - 1;
                    thePlayers [leftPlayer].Quarters = +1;
                    break;
                case 2:
                    thePlayers [activePlayer].Quarters = -1;
                    int rightPlayer = (activePlayer == numberOfPlayers) ? 0 : activePlayer + 1;
                    thePlayers [rightPlayer].Quarters = +1;
                    break;                          
                }           
            }

            public static void Main (string[] args)
            {
                int cupEndPoint = thePlayers.Length * 4 - 1;
                while (theCup < cupEndPoint) {
                    foreach (Dice rattle in theDice) {
                        if (thePlayers [activePlayer].Quarters > 0) {
                            MoveQuarter (rattle.Roll ()); // this line seems to be the problem  
                        }                   
                    }
                    Console.WriteLine ("{0} Quarters In the Cup", theCup);
                }

            }
        }
    }

I have no idea what the problem is or why, and my googling have proven more use confusing than helpful.

© Stack Overflow or respective owner

Related posts about c#

Related posts about oop