public static Vector2 SetBitPosition(Room MyRoom) { int x, y; x = 10 + (40 * ((MyRoom.ChamberNumber - 1) % 3)); y = 10 + (40 * ((MyRoom.ChamberNumber - 1) / 3)); switch (MyRoom.RoomNumber) { case 0: break; case 1: x += 5; y -= 10; break; case 2: x += 20; y += 5; break; case 3: x += 5; y += 20; break; case 4: x -= 10; y += 5; break; } return new Vector2(x, y); }
public Vector2 SetBitPositionNonStatic(Room MyRoom) { int x, y; x = 10 + (40 * ((MyRoom.ChamberNumber - 1) % 3)); y = 10 + (40 * ((MyRoom.ChamberNumber - 1) / 3)); switch (MyRoom.RoomNumber) { case 0: break; case 1: x += 5; y -= 10; break; case 2: x += 20; y += 5; break; case 3: x += 5; y += 20; break; case 4: x -= 10; y += 5; break; } return new Vector2(MiniMapPos.X + buffer.X + x, MiniMapPos.Y + buffer.Y + y); }
/// <summary> /// Generates array of connected rooms based on current location /// </summary> /// <param name="location"> Current location represented as a decimal (chamberNumber.roomNumber) </param> /// <returns></returns> public Room[] loadCaveandRoom(double location) { String[] mapInfo = File.ReadAllLines(address); int chamberNumber = (int) location; int roomNumber = (int) ( ( (location - chamberNumber) * 10.0) + 0.5 ); Room[] myRooms = new Room[9]; for (int i = 0; i < myRooms.Length; i++) { myRooms[i] = null; } for (int i = 1; i < 1 + NUMB_OF_ROOMS; i++) { myRooms[i] = new Room(0, 0); } if (roomNumber == 0) { for (int i = 1; i < 5; i++) { myRooms[i] = new Room(chamberNumber, i); } } else { switch (roomNumber) { case 1: myRooms[2] = myRooms[4] = null; myRooms[3].setRoomFromDecimal(chamberNumber); break; case 2: myRooms[1] = myRooms[3] = null; myRooms[4].setRoomFromDecimal(chamberNumber); break; case 3: myRooms[2] = myRooms[4] = null; myRooms[1].setRoomFromDecimal(chamberNumber); break; case 4: myRooms[1] = myRooms[3] = null; myRooms[2].setRoomFromDecimal(chamberNumber); break; } string temp1 = mapInfo[(chamberNumber - 1) * 4 + (roomNumber - 1)]; String[] temp2 = temp1.Split(' ', '\t'); temp2 = temp2.Where(s => !string.IsNullOrEmpty(s)).ToArray(); myRooms[roomNumber].setRoomFromDecimal(Convert.ToDouble(temp2[1])); } return myRooms; }
public MiniMapBit(Vector2 theMiniPos, Room NewRoom) { this.MiniMapPos = theMiniPos; this.ThisRoom = NewRoom; if (ThisRoom.RoomNumber == 0) { AssetName = "MiniMapFiles\\Chamber"; } else { AssetName = "MiniMapFiles\\Room"; } Position = SetBitPositionNonStatic(ThisRoom); }
/// <summary> /// Generates array of connected rooms based on current location /// </summary> /// <param name="location"> Current location represented as a decimal (chamberNumber.roomNumber) </param> /// <returns></returns> public Room[] getConnectedRooms(double location) { String[] mapInfo = File.ReadAllLines(address); int chamberNumber = (int) location; int roomNumber = (int) ( ( (location - chamberNumber) * 10.0) + 0.5 ); Room[] myRooms = new Room[NUMB_OF_ROOMS + 1]; if (roomNumber == 0) { for (int i = 1; i < 5; i++) { myRooms[i] = new Room(chamberNumber, i); } } else { switch (roomNumber) { case 1: myRooms[2] = myRooms[4] = null; myRooms[3] = new Room(chamberNumber, 0); break; case 2: myRooms[1] = myRooms[3] = null; myRooms[4] = new Room(chamberNumber, 0); break; case 3: myRooms[2] = myRooms[4] = null; myRooms[1] = new Room(chamberNumber, 0); break; case 4: myRooms[1] = myRooms[3] = null; myRooms[2] = new Room(chamberNumber, 0); break; } string temp1 = mapInfo[(chamberNumber - 1) * 4 + (roomNumber - 1)]; String[] temp2 = temp1.Split(' ', '\t'); temp2 = temp2.Where(s => !string.IsNullOrEmpty(s)).ToArray(); myRooms[roomNumber] = new Room(Convert.ToDouble(temp2[1])); } return myRooms; }
/* // map object passes information about current location to cave object // this function generates connectivity info public String loadCaveandRoom (double location) { String[] mapInfo = File.ReadAllLines(@"C:\Users\jains\Documents\CaveFiles\MapDataCave1.txt"); String connectivityInfo = ""; int chamberNumber = (int) location; int roomNumber = (int) ( ( (location - chamberNumber) * 10.0) + 0.5 ); char chamberGate = ' '; char externalGate = ' '; switch (roomNumber) { case 1: chamberGate = 'S'; externalGate = 'N'; break; case 2: chamberGate = 'W'; externalGate = 'E'; break; case 3: chamberGate = 'N'; externalGate = 'S'; break; case 4: chamberGate = 'E'; externalGate = 'W'; break; } connectivityInfo = chamberGate + " gate: Chamber " + chamberNumber; string temp1 = mapInfo[ (chamberNumber - 1) * 4 + (roomNumber - 1) ]; String[] temp2 = temp1.Split(' ', '\t'); temp2 = temp2.Where(s => !string.IsNullOrEmpty(s)).ToArray(); connectivityInfo += Environment.NewLine + externalGate + " gate: " + temp2[1]; return connectivityInfo; } */ // map object passes information about current location to cave object // this function generates connectivity info public Room[] loadCaveandRoom(double location) { String[] mapInfo = File.ReadAllLines(@"C:\Users\jains\Documents\CaveFiles\MapDataCave1.txt"); String connectivityInfo = ""; int chamberNumber = (int) location; int roomNumber = (int) ( ( (location - chamberNumber) * 10.0) + 0.5 ); char chamberGate = ' '; char externalGate = ' '; Room[] myRooms = new Room[5]; myRooms[0] = null; switch (roomNumber) { case 1: myRooms[2] = myRooms[4] = null; myRooms[3].setDecimalNumber(ChamberNumber); break; case 2: myRooms[1] = myRooms[3] = null; myRooms[4].setDecimalNumber(ChamberNumber); break; case 3: myRooms[2] = myRooms[4] = null; myRooms[1].setDecimalNumber(ChamberNumber); break; case 4: myRooms[1] = myRooms[3] = null; myRooms[2].setDecimalNumber(ChamberNumber); break; } string temp1 = mapInfo[ (chamberNumber - 1) * 4 + (roomNumber - 1) ]; String[] temp2 = temp1.Split(' ', '\t'); temp2 = temp2.Where(s => !string.IsNullOrEmpty(s)).ToArray(); myRooms[roomNumber].setDecimalNumber( temp2[1] ); return myRooms; }
public void newMap(int difficulty) { map = new Room[30]; String difficultStr = difficultyText.Text; int difficult = 5 + (Convert.ToInt32(difficultStr)*5); for (int i = 0; i < map.Length; i++) { map[i] = new Room(); } for (int i = 0; i < difficult; i++) { int tempRoom = gen.Next(30); while (map[tempRoom].getContents() == -1) { tempRoom = gen.Next(30); } map[tempRoom].setContents(-1); } int wumpusRoom = gen.Next(30); map[wumpusRoom].setWumpus(true); }
// map object passes information about current location to cave object // this function generates connectivity info public String loadCaveandRoom(double location) { String[] mapInfo = File.ReadAllLines(address); String connectivityInfo = ""; /* /int chamberNumber = (int) location; int roomNumber = (int) ( ( (location - chamberNumber) * 10.0) + 0.5 ); * */ Room MyRoom = new Room(location); char chamberGate = ' '; char externalGate = ' '; switch (MyRoom.RoomNumber) { case 1: chamberGate = 'S'; externalGate = 'N'; break; case 2: chamberGate = 'W'; externalGate = 'E'; break; case 3: chamberGate = 'N'; externalGate = 'S'; break; case 4: chamberGate = 'E'; externalGate = 'W'; break; } connectivityInfo = chamberGate + " gate: Chamber " + MyRoom.ChamberNumber; string temp1 = mapInfo[(MyRoom.ChamberNumber - 1) * 4 + (MyRoom.RoomNumber - 1)]; String[] temp2 = temp1.Split(' ', '\t'); temp2 = temp2.Where(s => !string.IsNullOrEmpty(s)).ToArray(); connectivityInfo += Environment.NewLine + externalGate + " gate: " + temp2[1]; return connectivityInfo; }
// for player: use for bats and for beginning // for wumpus: use for teleport and beginning public bool randomizeCharacterRoom(int temp, Room[] adjacentRooms, char c) { for (int i = 0; i < adjacentRooms.Length; i++) { if (adjacentRooms[i] != null) { if (isRoomNotOkay(adjacentRooms[i], c)) { return true; } } } return false; }
public bool randomizeRoom(int temp, Room[] adjacentRooms, char p) { return true; }
public Room moveInDirection(Direction d) { Room adjacentRoom = new Room(0, 0); if (GameState == Gstate.Menu) { // The user is in-menu. //Console.Out.WriteLine(""); } else if (GameState == Gstate.Game) { // The user is in-game. // Call map to see what room and chamber player is in. Room MyRoom = MyMap.getPlayerRoom(); // Call map to set adjacent rooms MyMap.setAdjacentRooms(MyCave.loadCaveandRoom(MyRoom.getDecimalForm())); // Call cave to see what room is adjacent, in given direction. adjacentRoom = MyMap.getAdjacentRooms()[(int)d]; /*c.getConnectedExteralRoom(1, room);*/; // Call map to see if the room in given direction is hazardous. // If is pitted: if(adjacentRoom.isRoomPitted()) EncounterPit(); // If it contains Wumpus: if (adjacentRoom == MyMap.getWumpusRoom()) EncounterWumpus(); // Actually move to the room. if (adjacentRoom != null) { MyMap.setPlayerRoom(adjacentRoom); // Returns player to center: ////MyPlayer.Position = new Vector2(RoomSize.Center.X, RoomSize.Center.Y); // OR, more realistically, the opposite side: MyPlayer.Position = getEntryLocationFrom((Direction)((((int)d + 1) % 4) + 1), MyPlayer.Position); } } return adjacentRoom; }
public void setWumpusRoom(int theWumpusRoom) { this.wumpusRoomInt = theWumpusRoom; this.wumpusRoom = new Room(theWumpusRoom); }
/// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { KBState = Keyboard.GetState(); // In Menu if (MyGameControl.GameState == GameControl.Gstate.Menu) { if (MyControls == Controls.Keyboard || MyControls == Controls.Mouse) { if (KBState.IsKeyDown(Keys.A)) { CursorRight.AssetName = "ScreenPointers\\AnimatedCursor16"; CursorRight.UpdateFrame((float)gameTime.ElapsedGameTime.TotalSeconds); } else { CursorRight.AssetName = "ScreenPointers\\Cursor2"; CursorRight.FrameNumber = 0; } UpdateMouseClicks(MState); } else if (MyControls == Controls.Kinect) { CursorRight.AssetName = "ScreenPointers\\Cursor2"; UpdateKinectClicks(); } } // In Game if (MyGameControl.GameState == GameControl.Gstate.Game) { // Input: // Keyboard and Mouse if (MyControls != Controls.Kinect) { UpdateMouseCursor(); if (KBState.IsKeyDown(Keys.Space)) { MyGameControl.PlayerMode = GameControl.PlayerState.Arrow; CursorRight.AssetName = "ScreenPointers\\crosshair2"; } else { MyGameControl.PlayerMode = GameControl.PlayerState.Movement; CursorRight.AssetName = "ScreenPointers\\Cursor2"; } } if(MyGameControl.PlayerMode == GameControl.PlayerState.Movement) { // Keyboard if (MyControls == Controls.Keyboard) { UpdateKBMovement(KBState); } // Kinect and Mouse if (MyControls != Controls.Keyboard) { UpdateMovement(); } } // Mouse, Kinect, and Keyboard UpdateAngle(); // Shooting if (MyGameControl.PlayerMode == GameControl.PlayerState.Arrow) { } // Entering rooms if (isInNSThreshold() || isInEWThreshold()) { MyGameControl.isPlayerAtDoor = true; CurrentRoom = MyGameControl.moveInDirection((GameControl.Direction)(int)(getDirectionFromXY(MyGameControl.MyPlayer.Position))); /*CurrentRoom.AssetName = "Rooms\\" + MyGameControl.MyMap.getPlayerRoom().ChamberNumber + "-" + MyGameControl.MyMap.getPlayerRoom().RoomNumber; CurrentRoom.LoadContent(this.Content);*/ } else { MyGameControl.isPlayerAtDoor = false; } // Full Screen mode if (KBState.IsKeyDown(Keys.F11)) { if (graphics.IsFullScreen) graphics.IsFullScreen = false; else graphics.IsFullScreen = true; graphics.ApplyChanges(); } if (MyGameControl.MyMap.getPlayerRoom().getIntegerForm() == MyGameControl.MyMap.getWumpusRoom()) return; } base.Update(gameTime); float myTheta = MyGameControl.MyPlayer.newTheta; }
/// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { KBState = Keyboard.GetState(); // In Menu if (MyGameControl.GameState == GameControl.Gstate.Menu) { //if (MyGameControl.isMusicOn) // MyGameControl.MySound.PlayMenu(); //else // MediaPlayer.Stop(); if (MyControls == Controls.Keyboard || MyControls == Controls.Mouse) { // Animating if (KBState.IsKeyDown(Keys.A)) { CursorRight.AssetName = "ScreenPointers\\AnimatedCursor16"; CursorRight.UpdateFrame((float)gameTime.ElapsedGameTime.TotalSeconds); } else { CursorRight.AssetName = "ScreenPointers\\Cursor2"; CursorRight.FrameNumber = 0; } // All mouse clicks related to the menu UpdateMouseClicks(MState); } else if (MyControls == Controls.Kinect) { CursorRight.AssetName = "ScreenPointers\\Cursor2"; UpdateKinectClicks(gameTime); } UpdateButtonIgnitesMenu(); } else if (MyGameControl.GameState == GameControl.Gstate.PreGame) { UpdateMouseClicks(MState); } // In Game if (MyGameControl.GameState == GameControl.Gstate.Game) { // Input: // Mouse if (MyControls == Controls.Mouse) { UpdateMouseClicks(MState); if (KBState.IsKeyDown(Keys.Space)) { MyGameControl.PlayerMode = GameControl.PlayerState.Arrow; } else if (!MyGameControl.isTrivia) { MyGameControl.PlayerMode = GameControl.PlayerState.Movement; } // Shooting if (MyGameControl.PlayerMode == GameControl.PlayerState.Arrow) { MyGameControl.MyPlayer.MyArrow.theta = MyGameControl.MyPlayer.theta; if(MyGameControl.isShooting) MyGameControl.MyPlayer.ShootArrow(); if (!MyGameControl.canMove(MyGameControl.MyPlayer.MyArrow, 0, 0, CurrentRoom) && MyGameControl.isShooting) { MyGameControl.shoot(getDirectionFromMouse(new Vector2(MState.X, MState.Y))); MyGameControl.isShooting = false; } } if(!MyGameControl.isShooting || !KBState.IsKeyDown(Keys.Space)) MyGameControl.MyPlayer.ResetArrow(); } // Keyboard if (MyControls == Controls.Keyboard) { if (MyGameControl.PlayerMode == GameControl.PlayerState.Movement) { UpdateKBMovement(KBState); } if (!MyGameControl.isShooting || !KBState.IsKeyDown(Keys.Space)) MyGameControl.MyPlayer.ResetArrow(); UpdateMouseClicks(MState); } // Kinect and Mouse if (MyControls != Controls.Keyboard) { if (MyGameControl.PlayerMode == GameControl.PlayerState.Movement) { UpdateMovement(); } } // Just Kinect if (MyControls == Controls.Kinect) { if (MyGameControl.PlayerMode == GameControl.PlayerState.Arrow) { MyGameControl.MyPlayer.MyArrow.theta = MyGameControl.MyPlayer.theta; if (MyGameControl.isShooting) MyGameControl.MyPlayer.ShootArrow(); if (!MyGameControl.canMove(MyGameControl.MyPlayer.MyArrow, 0, 0, CurrentRoom) && MyGameControl.isShooting) { MyGameControl.shoot(getDirectionFromArrow()); MyGameControl.isShooting = false; } } if (!MyGameControl.isShooting) MyGameControl.MyPlayer.ResetArrow(); UpdateKinectClicks(gameTime); } // Mouse, Kinect, and Keyboard UpdateAngle(); if (MyGameControl.PlayerMode == GameControl.PlayerState.Trivia) { MyWatch.Stop(); } else if(!MyWatch.IsRunning) { MyWatch.Start(); } // Entering rooms if ((isInNSThreshold() || isInEWThreshold()) && MyGameControl.PlayerMode != GameControl.PlayerState.Trivia) { MyGameControl.isPlayerAtDoor = true; CurrentRoom = MyGameControl.moveInDirection((GameControl.Direction)(int)(getDirectionFromXY(MyGameControl.MyPlayer.Position))); MyGameControl.MyPlayer.setScore(MyGameControl.hs.scoreCalculator(MyGameControl.MyMap.moves, MyGameControl.MyPlayer.getGold(), MyGameControl.MyPlayer.getArrows())); /*CurrentRoom.AssetName = "Rooms\\" + MyGameControl.MyMap.getPlayerRoom().ChamberNumber + "-" + MyGameControl.MyMap.getPlayerRoom().RoomNumber; CurrentRoom.LoadContent(this.Content);*/ } else { MyGameControl.isPlayerAtDoor = false; } // Full Screen mode if (KBState.IsKeyDown(Keys.F11)) { if (graphics.IsFullScreen) graphics.IsFullScreen = false; else graphics.IsFullScreen = true; graphics.ApplyChanges(); } if (MyGameControl.shouldResetRoom) { CurrentRoom = MyGameControl.MyMap.getPlayerRoom(); //MyGameControl.shouldResetRoom = false; } if (MyGameControl.MyPlayer.getArrows() <= 0) { EndGame(1); } } else if (MyGameControl.GameState == GameControl.Gstate.EndGame) { UpdateMouseCursor(); if (MyMenu.ExitGameButton.isOver(new Vector2(MState.X, MState.Y)) && MState.LeftButton == ButtonState.Pressed) ExitButtonClick(); } base.Update(gameTime); float myTheta = MyGameControl.MyPlayer.newTheta; }
private void WonPitBattle() { MyGameControl.setInitialRoom(); MyGameControl.moveTo(MyGameControl.MyMap.getPlayerRoom(), GameControl.Direction.North); CurrentRoom = MyGameControl.MyMap.getPlayerRoom(); MyGameControl.PlayerMode = GameControl.PlayerState.Movement; winningMessage = true; TempWatch.Start(); }
// map object passes information about current location to cave object // this function generates connectivty info public Room[] loadCaveandRoom(double location) { String[] mapInfo = File.ReadAllLines(@"C:\Users\jains\Documents\CaveFiles\MapDataCave3.txt"); String connectivityInfo = ""; int chamberNumber = (int) location; int roomNumber = (int)(((location - chamberNumber) * 10.0) + 0.5); char chamberGate = ' '; char externalGate = ' '; Room[] myRooms = new Room[5]; myRooms[0] = null; for (int i=0; i<mapInfo.length; i++) { String temp1 = mapInfo[i]; String[] temp2 = temp1.split(' ', '\t'); temp2 = temp2.Where(s => !string.IsNullOrEmpty(s)).ToArray(); if (temp2[0] == location) break; } if (chamberNumber < 8) { switch (roomNumber) { case 1: myRooms[2] = myRooms[4] = null; myRooms[3].setDecimalNumber(ChamberNumber); break; case 2: myRooms[1] = myRooms[3] = null; myRooms[4].setDecimalNumber(ChamberNumber); break; case 3: myRooms[2] = myRooms[4] = null; myRooms[1].setDecimalNumber(ChamberNumber); break; case 4: myRooms[1] = myRooms[3] = null; myRooms[2].setDecimalNumber(ChamberNumber); break; } myRooms[roomNumber] = setDecimalNumber(temp2[1]); } if (chamberNumber == 8) { switch (roomNumber) { case 1: case 2: myRooms[1].setDecimalNumber(temp2[1]); myRooms[2] = myRooms[4] = null; myRooms[3].setDecimalNumber(ChamberNumber); break; case 3: myRooms[2].setDecimalNumber(temp2[1]); myRooms[1] = myRooms[3] = null; myRooms[4].setDecimalNumber(ChamberNumber); break; case 4: case 5: myRooms[3].setDecimalNumber(temp2[1]); myRooms[2] = myRooms[4] = null; myRooms[1].setDecimalNumber(ChamberNumber); case 6: myRooms[4].setDecimalNumber(temp2[1]); myRooms[1] = myRooms[3] = null; myRooms[2].setDecimalNumber(ChamberNumber); break; } } if (chamberNumber == 9 || chamberNumber == 10) { switch (roomNumber) { case 1: case 2: case 3: myRooms[1].setDecimalNumber(temp2[1]); myRooms[2] = myRooms[4] = null; myRooms[3].setDecimalNumber(ChamberNumber); break; case 4: myRooms[2].setDecimalNumber(temp2[1]); myRooms[1] = myRooms[3] = null; myRooms[4].setDecimalNumber(ChamberNumber); break; case 5: case 6: case 7: myRooms[3].setDecimalNumber(temp2[1]); myRooms[2] = myRooms[4] = null; myRooms[1].setDecimalNumber(ChamberNumber); case 8: myRooms[4].setDecimalNumber(temp2[1]); myRooms[1] = myRooms[3] = null; myRooms[2].setDecimalNumber(ChamberNumber); break; } } }
/// <summary> /// Generates array of connected rooms based on current location /// </summary> /// <param name="location"> Current location represented as a decimal (chamberNumber.roomNumber) </param> /// <returns></returns> public Room[] getConnectedRooms(Room myRoom) { double location = myRoom.getDecimalForm(); String[] mapInfo = File.ReadAllLines(address); int chamberNumber = (int)location; int roomNumber = (int)(((location - chamberNumber) * 10.0) + 0.5); Room[] myRooms = new Room[9]; for (int i = 0; i < myRooms.Length; i++) { myRooms[i] = null; } String temp1; String[] temp2 = new String[2]; for (int i = 0; i < mapInfo.Length; i++) { temp1 = mapInfo[i]; temp2 = temp1.Split(' ', '\t'); temp2 = temp2.Where(s => !string.IsNullOrEmpty(s)).ToArray(); if (Convert.ToDouble(temp2[0]) == location) break; } if (chamberNumber < 8) { NUMB_OF_ROOMS = 4; for (int i = 1; i < 1 + NUMB_OF_ROOMS; i++) { myRooms[i] = new Room(0, 0); } if (roomNumber == 0) { for (int i = 1; i < 1 + NUMB_OF_ROOMS; i++) { myRooms[i] = new Room(chamberNumber, i); } } else { switch (roomNumber) { case 1: myRooms[2] = myRooms[4] = null; myRooms[3] = new Room(chamberNumber); break; case 2: myRooms[1] = myRooms[3] = null; myRooms[4] = new Room(chamberNumber); break; case 3: myRooms[2] = myRooms[4] = null; myRooms[1] = new Room(chamberNumber); break; case 4: myRooms[1] = myRooms[3] = null; myRooms[2] = new Room(chamberNumber); break; } myRooms[roomNumber] = new Room(Convert.ToDouble(temp2[1])); } } if (chamberNumber == 8) { NUMB_OF_ROOMS = 6; for (int i = 1; i < 1 + NUMB_OF_ROOMS; i++) { myRooms[i] = new Room(0, 0); } if (roomNumber == 0) { for (int i = 1; i < 1 + NUMB_OF_ROOMS; i++) { myRooms[i] = new Room(chamberNumber, i); } } else { switch (roomNumber) { case 1: case 2: myRooms[1] = new Room(Convert.ToDouble(temp2[1])); myRooms[2] = myRooms[4] = null; myRooms[3] = new Room(chamberNumber); break; case 3: myRooms[2] = new Room(Convert.ToDouble(temp2[1])); myRooms[1] = myRooms[3] = null; myRooms[4] = new Room(chamberNumber); break; case 4: case 5: myRooms[3] = new Room(Convert.ToDouble(temp2[1])); myRooms[2] = myRooms[4] = null; myRooms[1] = new Room(chamberNumber); break; case 6: myRooms[4] = new Room(Convert.ToDouble(temp2[1])); myRooms[1] = myRooms[3] = null; myRooms[2] = new Room(chamberNumber); break; } } } if (chamberNumber == 9 || chamberNumber == 10) { NUMB_OF_ROOMS = 8; for (int i = 1; i < 1 + NUMB_OF_ROOMS; i++) { myRooms[i] = new Room(0, 0); } if (roomNumber == 0) { for (int i = 1; i < 1 + NUMB_OF_ROOMS; i++) { myRooms[i] = new Room(chamberNumber, i); } } else { switch (roomNumber) { case 1: case 2: case 3: myRooms[1] = new Room(Convert.ToDouble(temp2[1])); myRooms[2] = myRooms[4] = null; myRooms[3] = new Room(chamberNumber); break; case 4: myRooms[2] = new Room(Convert.ToDouble(temp2[1])); myRooms[1] = myRooms[3] = null; myRooms[4] = new Room(chamberNumber); break; case 5: case 6: case 7: myRooms[3] = new Room(Convert.ToDouble(temp2[1])); myRooms[2] = myRooms[4] = null; myRooms[1] = new Room(chamberNumber); break; case 8: myRooms[4] = new Room(Convert.ToDouble(temp2[1])); myRooms[1] = myRooms[3] = null; myRooms[2] = new Room(chamberNumber); break; } } } return myRooms; }
public void setAdjacentRooms(Room[] newRooms) { this.currentAdjacentRooms = newRooms; }
private List<Room> removeNulls(Room[] room) { List<Room> withoutNulls = new List<Room>(); for (int i = 0; i < room.Length; i++) { if (room[i] != null) { withoutNulls.Add(room[i]); } } return withoutNulls; }
/* public bool ObtainSecret() { // unsure about this method, but perhaps returns true if player should get a secret this move return false; } */ public void addToExplored(Room myR) { explored.Add(myR); }
/// <summary> /// setting gold locations /// </summary> /// <param name="roomNumber"></param> public void updateExploredAndGold(int roomNumber) { int gold = r.Next(2) + 3; Room rm = new Room(roomNumber); explored.Add(rm); if (!explored.Contains(rm)) { p.setGold(p.getGold() + gold); } }
public bool isRoomNotOkay(Room MyRoom, char p) { if (MyRoom == null) return true; if (p == 'p') return (MyRoom.getIntegerForm() == wumpusRoomInt) || (pitRooms.Contains(MyRoom.getIntegerForm())) || (batRooms.Contains(MyRoom.getIntegerForm())); else if (p == 'w') return (MyRoom.getIntegerForm() == playerRoom.getIntegerForm()) || pitRooms.Contains(MyRoom.getIntegerForm()) || batRooms.Contains(MyRoom.getIntegerForm()); else return false; }
public string GiveWarnings(Room[] adjacentRooms) { // if player is adjacent to hazard or wumpus, returns the proper warning bool air = false, growl = false, wings = false; String str = ""; // this group of if loops isnt integrated with the next group so that the warnings are given in order // if they were added differently, the player would get excessive hints about the location of the obstacles for(int i = 0; i < adjacentRooms.Length; i++) { if (pitRooms.Contains(adjacentRooms[i].getIntegerForm())) { air = true; } if (wumpusRoomInt.Equals(adjacentRooms[i].getIntegerForm())) { growl = true; } if (batRooms.Contains(adjacentRooms[i].getIntegerForm())) { wings = true; } } // if(thewarnings are needed (true) then add them to string in order) if (air) { str += "You hear a whoosh of air... \n"; } if (growl) { str += "You hear a low growl... \n"; } if (wings) { str += "You hear wings... \n"; } return str; }
private void RandomizePlayerRoom() { Room temp; Room[] myAdjacentRooms; Random r = MyMap.r; int count; do { count = 0; temp = new Room(MyMap.getRandomRoom()); myAdjacentRooms = MyCave.loadCaveandRoom(temp.getDecimalForm()); if (MyMap.randomizePlayerRoom(temp.getIntegerForm(), myAdjacentRooms)) count++; } while (MyMap.isRoomOkay(temp, 'p')); MyMap.setPlayerRoom(temp); //explored.Add(new Room(playerRoom)); }
/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { //KinectSensor.KinectSensors.StatusChanged += new EventHandler<StatusChangedEventArgs>(KinectSensors_StatusChanged); //DiscoverKinectSensor(); MyGameControl = new GameControl(new Vector2(graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight)); HUD1 = new Hud(new Vector2(0, 460), "ScreenLayout\\HUD1_52313"); SettingsButton = new Sprite(Vector2.Zero, "Menu\\SettingsMenuButton"); Arrows = new Sprite(new Vector2(0, 460 - 50), "Arrows\\ArrowButton2"); Move = new Sprite(new Vector2(0, 460 - 250), "Arrows\\MoveButton"); Skip = new Sprite(new Vector2(0, 0), "Skip"); CursorRight = new AnimatedSprite(16/1.2, 16, Vector2.Zero, "ScreenPointers\\AnimatedCursor16"); CursorLeft = new AnimatedSprite(16 / 1.2, 16, Vector2.Zero, "ScreenPointers\\AnimatedCursor16"); Story = new Sprite(); MyGameControl.RandomizeRoom('p'); MyGameControl.StartingRoom = MyGameControl.MyMap.getPlayerRoom(); CurrentRoom = MyGameControl.StartingRoom;//(new Vector2(120, 30), "Rooms\\" + MyGameControl.MyMap.getPlayerRoom().ChamberNumber + "-" + MyGameControl.MyMap.getPlayerRoom().RoomNumber); //CurrentRoom.setIsPitted(true); MyGameControl.RandomizeRoom('w'); MyGameControl.MyMap.setPlayerRoom(CurrentRoom); BG = new Sprite(Vector2.Zero, "ScreenLayout\\BackdropSpace"); MyMenu = new Menu(Vector2.Zero, "ScreenLayout\\BackdropSpace"); MyWatch.Reset(); HighScoresBG = new Sprite(MyGameControl.StartingRoom.Position, "Rooms\\Room2"); base.Initialize(); }
public void MoveWumpus(bool trivia) { // Get stuff from Map Room WumpusRoom = new Room(MyMap.getWumpusRoom()); Random myR = MyMap.r; Room NewRoom = WumpusRoom; // Get adj rooms Room[] wAdjRooms = MyCave.loadCaveandRoom(WumpusRoom.getDecimalForm()); // obtain number of rooms to move per turn from Wumpus // CHECK TRIVIA int n = MyWumpus.Move(false); // loop for (int i = 0; i < n; i++) { // (get all adjacent rooms wAdjRooms = MyCave.loadCaveandRoom(WumpusRoom.getDecimalForm()); // Eliminate all chambers from wAdjRooms for (int k = 1; k < wAdjRooms.Length; k++) { if (wAdjRooms[k] != null) { if (i != n - 1) { if (wAdjRooms[k].RoomNumber == 0) { wAdjRooms[k] = null; } } } } // loop: choose randomly one of the rooms and check to make sure it is valid int j; do { j = myR.Next(wAdjRooms.Length - 1) + 1; NewRoom = wAdjRooms[j]; } while (MyMap.isRoomNotOkay(NewRoom, 'w')); // set wumpus room to the new room) MyMap.setWumpusRoom(NewRoom.getIntegerForm()); } }
/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { //KinectSensor.KinectSensors.StatusChanged += new EventHandler<StatusChangedEventArgs>(KinectSensors_StatusChanged); //DiscoverKinectSensor(); MyGameControl = new GameControl(new Vector2(graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight)); HUD1 = new Hud(new Vector2(0, 460), "ScreenLayout\\HUD1_52313"); SettingsButton = new Sprite(new Vector2(graphics.PreferredBackBufferWidth - 100, 0), "Menu\\SettingsMenuButton"); CursorRight = new AnimatedSprite(16/1.2, 16, Vector2.Zero, "ScreenPointers\\AnimatedCursor16"); CurrentRoom = new Room(4, 1);//(new Vector2(120, 30), "Rooms\\" + MyGameControl.MyMap.getPlayerRoom().ChamberNumber + "-" + MyGameControl.MyMap.getPlayerRoom().RoomNumber); CurrentRoom.setIsPitted(true); MyGameControl.MyMap.setPlayerRoom(CurrentRoom); BG = new Sprite(Vector2.Zero, "ScreenLayout\\BackdropSpace"); MyMenu = new Menu(Vector2.Zero, "ScreenLayout\\BackdropSpace"); MyWatch.Reset(); base.Initialize(); }
private void RandomizeRoom(char p) { Room temp; Room[] myAdjacentRooms; Random r = MyMap.r; int count; do { count = 0; temp = new Room(MyMap.getRandomRoom()); myAdjacentRooms = MyCave.loadCaveandRoom(temp.getDecimalForm()); if (MyMap.randomizeCharacterRoom(temp.getIntegerForm(), myAdjacentRooms, p)) count++; } while (MyMap.isRoomNotOkay(temp, p)); if(p == 'p') { MyMap.setPlayerRoom(temp); MyMap.addToExplored(temp); } else if (p == 'w') { MyMap.setWumpusRoom(temp.getIntegerForm()); } }
/// <summary> /// setting gold locations /// </summary> /// <param name="roomNumber"></param> public int updateExploredAndReturnGold(int roomNumber) { Room rm = new Room(roomNumber); // explored prob doesn't work because can't compare 2 objects using 'contains' accurately // will fix later, once get enough willpower to write a frustratingly redundant 'for' loop if (!explored.Contains(rm)) { explored.Add(rm); return r.Next(3) + 3; } explored.Add(rm); return 0; }
public void setPlayerRoom(Room newPlayerRoom) { playerRoom = newPlayerRoom; explored.Add(playerRoom); }