我正在做一个二十一点游戏项目.我有一种helper()方法可以帮助用户完成他们的行为.例如:
经销商的上牌是:8
玩家手牌总数是:16
球员不确定,他应该击中还是留下.helper()功能在这里采取行动.
它基本上计算了甲板上好卡的数量(playerTotal+ goodcard<= 21)
所以我正在考虑以这种方式做到这一点(伪代码)
public void helper() {
remain = 21 - playerTotal;
if (remain == 1) {
for (int i = 0; i < deck.last(); i++) {
switch (deck[i]) {
case A: numOfGood += 1
default: numOfBad +=1
}
}
}
else if (remain == 2) {
for (....) {
switch (deck[i]) {
case A: numOfGood += 1
case 2: numOfGood += 1
default: numOfBad +=1 …Run Code Online (Sandbox Code Playgroud) 我创建了一个派生自Panel的自定义控件.我用它来使用BackgroundImage属性显示一个Image.我重写OnClick方法并将isSelected设置为true然后调用Invalidate方法并在覆盖的OnPaint中绘制一个矩形.一切都很顺利,直到我将DoubleBuffered设置为true.绘制矩形然后将其删除,我无法理解为什么会发生这种情况.
public CustomControl()
: base()
{
base.DoubleBuffered = true;
base.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.ResizeRedraw, true);
}
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);
PaintSelection();
}
private void PaintSelection()
{
if (isSelected)
{
Graphics graphics = CreateGraphics();
graphics.DrawRectangle(SelectionPen, DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width - 1, DisplayRectangle.Height - 1);
}
}
Run Code Online (Sandbox Code Playgroud)