Last active
April 16, 2016 22:13
-
-
Save adam-phillipps/070e81d07ccb67886a2cda5ec5226f00 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
using System.Threading; | |
using System.IO; | |
namespace Lottery_program | |
{ | |
public partial class Form1 : Form | |
{ | |
// pending line trackbarnumberofnumbers fix for magic number fix | |
private int numberOfNumbers = 6; | |
private int numberOfTries; | |
public Form1() | |
{ | |
//Thread t = new Thread(new ThreadStart(SplashStart)); | |
//t.Start(); | |
//Thread.Sleep(2500); | |
InitializeComponent(); | |
addPrizeTable(); | |
//t.Abort(); | |
} | |
private void addPrizeTable() | |
{ | |
string[] words = | |
{ | |
" 1 of 6 Numbers matched = 1XBet\n", | |
"2 of 6 Numbers matched = 10XBet\n", | |
"3 of 6 Numbers matched = 100XBet\n", | |
"4 of 6 Numbers matched = 1000XBet\n", | |
"5 of 6 Numbers matched = 10000XBet\n", | |
"6 of 6 Numbers matched = Jackpot**\n\n\n", | |
"**You have a 1 in 1192052400 chance of getting the JackPot via 6 of 6 numbers." | |
// ((=((FACT(100))/(FACT(100-6)*FACT(6))))) | |
// ***used to calculate combinations from picking 6 out of 100 numbers. | |
}; | |
for (int i = 0; i < words.Length; i++) | |
{ | |
string word = words[i]; | |
{ | |
prizeTable.AppendText(word); | |
prizeTable.AppendText(" "); | |
} | |
} | |
} | |
private void Drawnumbers_click(object sender, EventArgs e) | |
{ | |
// Bet.PlayLotto(); | |
int numberOfLottoNumbers; | |
int.TryParse(Numberofnumbers.Text, out numberOfLottoNumbers); | |
LottoCard actualNumbers = new LottoCard( | |
countOfNumbersInCard: numberOfLottoNumbers, turns: numberOfTries); | |
Func<LottoCard, bool> isWin = tempCard => | |
tempCard.IsSuccess(actualNumbers) && tempCard.TurnsRemaining > 0; | |
if (isWin(GetUserGuess())) | |
{ | |
// Bet.WinLotto(); | |
// i need the name of the fields that show the | |
// computer generated numbers | |
ResultsandPrizeWon.AppendText("you win "); | |
Thread.Sleep(1000); | |
} | |
else | |
{ | |
ResultsandPrizeWon.AppendText("you loose "); | |
Thread.Sleep(1000); | |
ClearUserGuessFields(); | |
ClearActualNumbers(); | |
} | |
} | |
private LottoCard GetUserGuess() | |
{ | |
int[] tempUserCard = new int[numberOfNumbers]; | |
string[] nums = | |
{ num1.Text, num2.Text, num3.Text, num4.Text, num5.Text, num6.Text }; | |
for (int i = 0; i < this.numberOfNumbers; i++) | |
int.TryParse(nums[i], out tempUserCard[i]); | |
return new LottoCard( | |
numbers: tempUserCard, countOfNumbersInCard: numberOfNumbers, turns: numberOfTries); | |
} | |
private void Resetbutton_click(object sender, EventArgs e) | |
{ | |
JackPotbox.Text = "100000000"; | |
Fundsbox.Text = "1000"; | |
Totalwinningsbox.Text = ""; | |
trackBarnumberofdraws.Value = 1; | |
trackBarnumberofnumbers.Value = 1; | |
Numberofnumbers.Text = "1"; | |
numofdraws.Text = "1"; | |
Betamount.Text = "1"; | |
num1.Clear(); | |
num2.Clear(); | |
num3.Clear(); | |
num4.Clear(); | |
num5.Clear(); | |
num6.Clear(); | |
// BetRest(); | |
} | |
private void ClearUserGuessFields() | |
{ | |
num1.Clear(); | |
num2.Clear(); | |
num3.Clear(); | |
num4.Clear(); | |
num5.Clear(); | |
num6.Clear(); | |
} | |
private void ClearActualNumbers() | |
{ | |
// what are the TextBox'es called? | |
} | |
private void trackBarnumberofnumbers_Scroll(object sender, EventArgs e) | |
{ | |
// this needs to rework the GUI so the correcy number | |
// of fields appears | |
// numberOfNumbers = trackBarnumberofnumbers.Value; | |
Numberofnumbers.Text = numberOfNumbers.ToString(); | |
} | |
private void trackBarnumberofdraws_Scroll(object sender, EventArgs e) | |
{ | |
numberOfTries = trackBarnumberofdraws.Value; | |
numofdraws.Text = numberOfTries.ToString(); | |
} | |
//public void SplashStart() | |
//{ | |
// Application.Run(new loadingScreen()); | |
//} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Text; | |
using System.Threading.Tasks; | |
namespace Lottery_program | |
{ | |
class LottoCard | |
{ | |
private const int lottoDigitMaxValue = 99; | |
private int digitsInLottoNumber; | |
private int[] lottoNumber; | |
public int[] LottoNumber | |
{ | |
get { return lottoNumber; } | |
private set { lottoNumber = value; } | |
} | |
public bool IsWin { get; private set; } | |
private int tR; | |
public int TurnsRemaining | |
{ | |
get { return tR--; } | |
private set { tR = value; } | |
} | |
public LottoCard(int countOfNumbersInCard, int turns = 5) | |
{ | |
digitsInLottoNumber = countOfNumbersInCard; | |
tR = turns; | |
LottoNumber = GenerateRandomLottoNumber(); | |
} | |
public LottoCard(int[] numbers, int countOfNumbersInCard, int turns = 5) | |
{ | |
digitsInLottoNumber = countOfNumbersInCard; | |
tR = turns; | |
LottoNumber = numbers; | |
} | |
public bool IsSuccess(LottoCard otherCard) | |
{ | |
int correctGuesses = 0; | |
Func<int, int, int> percent = | |
(int num, int denom) => Convert.ToInt16(100.0 * ((1.0 * num) / (1.0 * denom))); | |
for (int i = 0; i < digitsInLottoNumber; i++) | |
correctGuesses += LottoNumber[i] == otherCard.LottoNumber[i] ? 1 : 0; | |
IsWin = 50 <= percent(correctGuesses, digitsInLottoNumber); // better than 50% right | |
return IsWin; | |
} | |
private int[] GenerateRandomLottoNumber() | |
{ | |
Random rnd = new Random(); | |
int[] workingRandomNumbers = new int[digitsInLottoNumber]; | |
for (int i = 0; i < digitsInLottoNumber; i++) | |
workingRandomNumbers[i] = rnd.Next(lottoDigitMaxValue); | |
return workingRandomNumbers; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment