public float GetTilePoints(Tile t, Game current) { float r = 0; bool[,] grid = t.returnshape(); foreach (bool b in grid) { if (b) { r = r + 2; } } r = r + t.ReturnButtons() * current.ButtonsLeft(this.GetTime());//fix this r = r - t.ReturnCost(); r = r / t.ReturnTime(); return(r); }
public void Buy(Player currentPlayer, String action) { string[] actionSteps = action.Split(delimiterChars); int tileX = 0; int tileY = 0; Tile tileTransformed; bool valid = true; int moving = 0; try//get tile location { if ((Convert.ToInt32(actionSteps[0]) >= 3) || (Convert.ToInt32(actionSteps[0]) < 0)) { gameError("illegal move, trying to buy outside of range"); valid = false; } //tileLocation = Convert.ToInt32(actionSteps[0]) + neutralToken; moving = Convert.ToInt32(actionSteps[0]); tileLocation = move(moving); } catch (Exception ex) { gameError(Convert.ToString(ex)); } if (tileList[tileLocation].ReturnCost() > currentPlayer.GetButtons()) { gameError("illegal move, cant pay costs"); valid = false; } try//get tile x { /* * if ((Convert.ToInt32(actionSteps[1]) >= 9) || (Convert.ToInt32(actionSteps[1]) < 0)) * { * gameError("illegal move, trying to place tile X out of range"); * } */ tileY = Convert.ToInt32(actionSteps[1]); } catch (Exception ex) { gameError(Convert.ToString(ex)); valid = false; } try//get tile y { /* * if ((Convert.ToInt32(actionSteps[2]) >= 9) || (Convert.ToInt32(actionSteps[2]) < 0)) * { * gameError("illegal move, trying to place tile Y out of range"); * } */ tileX = Convert.ToInt32(actionSteps[2]); } catch (Exception ex) { gameError(Convert.ToString(ex)); valid = false; } tileTransformed = new Tile(tileList[tileLocation]); try { for (int i = 3; i < actionSteps.Length; i++) { switch (actionSteps[i]) { case "R1": tileTransformed.rotate(1); //Console.WriteLine("r1"); break; case "R2": //Console.WriteLine("r2"); tileTransformed.rotate(2); break; case "R3": //Console.WriteLine("r3"); tileTransformed.rotate(3); break; case "F": tileTransformed.flip(); break; default: break; } } } catch (Exception ex) { gameError(Convert.ToString(ex)); valid = false; } if (valid) {//check try tile valid = currentPlayer.GetGrid().tryTile(tileX, tileY, tileTransformed); if (!valid) { Console.WriteLine(currentPlayer.GetTime()); Console.WriteLine(action + "ahh\r\n" + tileTransformed.returnString() + currentPlayer.GetName()); Console.WriteLine(currentPlayer.GetGrid().returnString()); Console.ReadLine(); } } if (valid) { currentPlayer.GetGrid().addTile(tileX, tileY, tileTransformed); currentPlayer.SetButtons(currentPlayer.GetButtons() - tileTransformed.ReturnCost()); MovementButtons(currentPlayer.GetTime(), currentPlayer.GetTime() - tileTransformed.ReturnTime(), currentPlayer);// check this currentPlayer.SetTime(currentPlayer.GetTime() - tileTransformed.ReturnTime()); currentPlayer.SetButtonGain(currentPlayer.GetButtonGain() + tileTransformed.ReturnButtons()); //removeTileFromNeutral(tileLocation); //moveToken(tileLocation); removeTile(move(moving)); neutralToken = move(moving); } }