Well I'm back again to pick brains! We've written this code in class and i was wondering if im stuck in an endless loop somewhere. i cant get the application to load, when it does i just find it sitting in my task manager doing nothing but taking up CPU %. can some one help me here? its also due tonight by 11:59 pm :( i hate my timing its crummy i say!
Code:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace HighCard
{
public partial class FrmHighCard : Form
{
//fields
private int rankPlayer; //2-14 w/ A high
private int suitPlayer; //1-4 c,d,h,s
private Random r;
public FrmHighCard()
{
InitializeComponent();
rankPlayer = 0;
suitPlayer = 0;
r = new Random();
}
private void btnDealCards_Click(object sender, EventArgs e)
{
// declarations
string rankStr, suitStr;
string card1 = "", card2 = "";
int i = 0;
int player1Rank = 0;
bool cardsDelt = false;
StreamWriter writer;
while (!cardsDelt)
{
// input
rankPlayer = r.Next(2, 4); // generates value of 2-14 since max is exclusive***
suitPlayer = r.Next(1, 2);
// process
switch (rankPlayer)
{
case 11:
rankStr = "Jack";
break;
case 12:
rankStr = "Queen";
break;
case 13:
rankStr = "King";
break;
case 14:
rankStr = "Ace";
break;
default:
rankStr = rankPlayer.ToString();
break;
}
switch (suitPlayer)
{
case 1:
suitStr = "Clubs";
break;
case 2:
suitStr = "Diamonds";
break;
case 3:
suitStr = "Hearts";
break;
default:
suitStr = "Spades";
break;
}//end of switch suit
if (i == 0) //first iteration
{
i++;
player1Rank = rankPlayer;
card1 = rankStr + " of " + suitStr;
}
else// second itteration
{
card2 = rankStr + " of " + suitStr;
if (card1 != card2)
cardsDelt = true;
else if (card1 == card2)
i = 0;
}
}//end of for loop
//output
lstplayer1.Items.Add(card1);
lstplayer2.Items.Add(card2);
lstplayer1.SelectedIndex = lstplayer1.Items.Count - 1;
lstplayer2.SelectedIndex = lstplayer2.Items.Count - 1;
if (player1Rank > rankPlayer)
MessageBox.Show(cboxPlayer1.SelectedItem + " Wins High Card");
else if (rankPlayer > player1Rank)
MessageBox.Show(cboxPlayer1.SelectedItem + " Wins High Card");
else
//MessageBox.Show(cboxPlayer1.SelectedItem + " and " + cboxPlayer2.SelectedItem + " Tie Highcard");
try
{
writer = new StreamWriter("carddeck.dat", true);
writer.WriteLine(card1);
writer.WriteLine(card2);
writer.Close();
}
catch
{
MessageBox.Show("file output error");
}
}
private void FrmHighCard_Load(object sender, EventArgs e)
{
StreamReader reader;
string player;
try
{
reader = new StreamReader("players.dat");
player = reader.ReadLine();
while (player != null)
{
cboxPlayer1.Items.Add(player);
}
reader.Close();
}
catch
{
MessageBox.Show("File Read Error");
}
}
private void cboxPlayer1_SelectedIndexChanged(object sender, EventArgs e)
{
StreamReader reader;
string player;
cboxPlayer2.Items.Clear();
try
{
reader = new StreamReader("players.dat");
player = reader.ReadLine();
while (player != null)
{
if (cboxPlayer1.SelectedItem.ToString() != player)
cboxPlayer2.Items.Add(player);
player = reader.ReadLine();
}
reader.Close();
}
catch
{
MessageBox.Show("File Read Error");
}
}
}
}

