private void AccessDatabaseButton_Click(object sender, EventArgs e) { if (DirectoryText.Text != "") { if (ProductCodeText.Text != "" && DescriptionText.Text != "" && VATText.Text != "" && TotalText.Text != "") { OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + directory); OleDbCommand cmd = con.CreateCommand(); con.Open(); cmd.CommandText = "Insert into ProductDetails(Code,Description,Price,VAT,Total)Values('" + code + "','" + description + "','" + price + "','" + vat + "','" + total + "')"; cmd.Connection = con; cmd.ExecuteNonQuery(); MessageBox.Show("Database entry added with product code " + code, "Database updated successfully"); con.Close(); } else { EmptyFields.Show(); } } else { MessageBox.Show("No database has been selected"); } }
public EmptyFields Move(IBoard gmBoard, Player player) { EmptyFields bestMove = null; var openFields = gmBoard.OpenMove; foreach (var t in openFields) { var newBoard = gmBoard.CloneBoard(); var newField = t; newBoard[newField.X, newField.O] = player; if (newBoard.Winner == Player.Open && newBoard.OpenMove.Count > 0) { var whichPlayer = ((int)player == 1) ? Player.O : Player.X; //a little hacky, inverts the current player var tempMove = Move(newBoard, whichPlayer); newField.Rank = tempMove.Rank; } else { switch (newBoard.Winner) { case Player.Open: newField.Rank = 0; break; case Player.X: newField.Rank = -1; break; case Player.O: newField.Rank = 1; break; } } //If the new move is better than our previous move, take it if (bestMove == null || (player == Player.X && newField.Rank < bestMove.Rank) || (player == Player.O && newField.Rank > bestMove.Rank)) { bestMove = newField; } } return(bestMove); }