Untitled
unknown
plain_text
4 years ago
5.5 kB
13
Indexable
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace test
{
public partial class frmBingo : Form
{
private int intRows = 5;
private int intMinHeight = 180;
private int intMinWidth = 150;
int intWidth = 0;
int intHeight = 0;
private int intTotalCells = 0;
public bool varTeam = false;
private int intCalledNumbers;
private Dictionary<string, Label> dicCards = new
Dictionary<string, Label>();
private Random rndRand = new Random();
enum ActiveState
{
Active = -16744448, // Green//
InActive = -16711681 // Cyan//
}
public frmBingo()
{
InitializeComponent();
intTotalCells = intRows * intRows;
startScherm();
}
public Label lblLabel()
{
intWidth = (tblBingo.Width / intRows) - 2;
intHeight = (tblBingo.Height / (intRows + 1)) - 2;
Label lbl = new Label();
lbl.AutoSize = false;
lbl.Width = intWidth;
lbl.Height = intHeight;
lbl.TextAlign = ContentAlignment.MiddleCenter;
lbl.BorderStyle = BorderStyle.FixedSingle;
lbl.Tag = ActiveState.InActive;
return lbl;
}
private void lblClick(System.Object sender, System.EventArgs e)
{
Populate(sender);
}
private void Populate(System.Object sender)
{
Label lbl = (Label)sender;
if ((ActiveState)lbl.Tag == ActiveState.InActive)
{
intCalledNumbers += 1;
lbl.Tag = ActiveState.Active;
lbl.BackColor = Color.FromArgb((int)ActiveState.Active);
lblCurrent.Text = lbl.Text;
lblAllPicks.Text = lblAllPicks.Text.Insert(0, " . " +
lbl.Text);
if (lblAllPicks.Text.Length > 60)
{
int iIndex = lblAllPicks.Text.LastIndexOf(" ");
lblAllPicks.Text = lblAllPicks.Text.Substring(0,
iIndex);
}
System.Drawing.Point dp = lbl.Location;
dp.X += tblBingo.Location.X + 4;
dp.Y += tblBingo.Location.Y + 4;
}
}
public void startScherm()
{
lblCurrent.TextAlign = ContentAlignment.MiddleRight;
tblBingo.Controls.Clear();
tblBingo.ColumnStyles.Clear();
tblBingo.RowStyles.Clear();
if (tblBingo.Width < intMinWidth)
tblBingo.Width = intMinWidth;
if (tblBingo.Height < intMinHeight)
tblBingo.Height = intMinHeight;
float sngColumns = System.Convert.ToSingle
(100 / (double)intRows);
float sngRows = System.Convert.ToSingle
(100 / (double)(intRows + 1));
tblBingo.ColumnCount = intRows;
tblBingo.RowCount = intRows + 1;
for (int idx = 0; idx <= intRows - 1; idx++)
tblBingo.ColumnStyles.Add(new ColumnStyle(SizeType
.Percent, sngColumns));
for (int idx = 0; idx <= intRows; idx++)
tblBingo.RowStyles.Add(new RowStyle(SizeType
.Percent, sngRows));
int intTeller = 0;
for (int iNum = 0; iNum <= 50; iNum++)
{
if (varTeam == true)
{
if (iNum % 2 == 0)
{
Console.WriteLine(iNum);
for (int iCol = 0; iCol <= intRows - 1; iCol++)
{
Label lbl = lblLabel();
for (int iRow = 1; iRow <= intRows; iRow++)
{
lbl = lblLabel();
intTeller++;
tblBingo.Controls.Add(lbl, iCol, iRow);
if (!dicCards.ContainsKey(lbl.Text = (iNum).ToString()))
{
dicCards.Add(lbl.Text, lbl);
}
}
}
btnReset.PerformClick();
}
}
if (varTeam == false)
{
if (iNum % 2 != 0)
{
Console.WriteLine(iNum);
for (int iCol = 0; iCol <= intRows - 1; iCol++)
{
Label lbl = lblLabel();
for (int iRow = 1; iRow <= intRows; iRow++)
{
lbl = lblLabel();
intTeller++;
tblBingo.Controls.Add(lbl, iCol, iRow);
if (!dicCards.ContainsKey(lbl.Text = (iNum).ToString()))
{
dicCards.Add(lbl.Text, lbl);
}
}
}
btnReset.PerformClick();
}
}
}
}
private void btnPick_Click(object sender, EventArgs e)
{
checkWinnaar();
if (intCalledNumbers >= intTotalCells)
{
lblCurrent.Text = "Game over";
return;
}
List<KeyValuePair<string, Label>> lstNotCalled;
lstNotCalled = (from kvp in dicCards
where (ActiveState)kvp.Value.Tag ==
ActiveState.InActive
select kvp).ToList();
if (lstNotCalled.Count > 0)
{
int idx = rndRand.Next(lstNotCalled.Count);
KeyValuePair<string, Label> foo = lstNotCalled[idx];
Populate(foo.Value);
}
}
private void btnReset_Click(object sender, EventArgs e)
{
foreach (KeyValuePair<string, Label> kvp in dicCards)
{
kvp.Value.BackColor =
Color.FromArgb((int)ActiveState.InActive);
kvp.Value.Tag = ActiveState.InActive;
}
intCalledNumbers = 0;
lblCurrent.Text = "Reset";
lblAllPicks.Text = "";
btnPick.Select();
}
private void frmBingo_Shown(object sender, EventArgs e)
{
btnPick.PerformClick();
btnPick.PerformClick();
btnPick.PerformClick();
btnPick.PerformClick();
btnPick.PerformClick();
btnPick.PerformClick();
btnPick.PerformClick();
btnPick.PerformClick();
}
}
}
Editor is loading...