Dzień dobry. Zacznę od tego, że trochę głupio mi tu pisać ale po prostu bardzo mi zależy na tym żeby nauczyć się programować. Próbuję właśnie zrobić przykład z książki Head First C#. Edycja polska - Helion - dzień na wyścigach. http://www.headfirstlabs.com/books//hfcsharp/lab01.php - tutaj jest napisane o co chodzi. Powiem szczerze, że idzie mi okropnie, tzn czuję się kompletnie zagubiony. Czy ktoś kto ma cierpliwość i chęć pomocy mógłby mnie trochę naprowadzić? Wklejam to co naskrobałem, zdaję sobie sprawę, że wygląda to dość żałośnie ale będę bardzo wdzięczny za wskazówki i pomoc. Pozdrawiam
BET.CS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public class Bet
{
public int Amount; // ilość postawionych pieniędzy
public int Dog; // numer obstawionego psa
public Guy Bettor; // osoba która złożyła zakład
public string GetDescription() //metoda która ustawia tekst kto obstawił, ile pieniędzy i numer psa
{
string description = string.Format(Bettor.Name + "postawił" + Amount + "na psa numer" + Dog);
return description;
}
public int Payout(int Winner) //jeśli pies wygrał zwróć wartość postawioną, w przeciwnym razie zabierz wartość postawioną
{
if (Dog == Winner)
return Amount;
else
return -Amount;
}
}
}
GUY.CS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public class Guy
{
public string Name; //imie
public Bet MyBet; // instancja klasy bet przechowująca informacje o zakładzie
public int Cash; //pieniądze która posiada
public RadioButton MyRadioButton; // pole wyboru
public Label MyLabel; //etykieta
public void UpdateLabels() // uaktualnij tabele
{
MyRadioButton.Text = String.Format(Name + " ma " + Cash + " złotych");
MyLabel.Text = String.Format(Name + " nie postawił jeszcze");
}
public void ClearBet() // skopiowałem to, nie wiem dokładnie co to robi...
{
this.MyLabel.Text = Name + " nie obstawił jeszcze";
this.MyRadioButton.Text = Name + " ma " + Cash + " złotych";
}
public bool PlaceBet(int Amount, int Dog) //ustal nowy zakład, ilosc pieniedzy, numer psa
{
MyBet = new Bet();
return (this.Cash >= Amount ); // ???
}
public void Collect(int Winner) // ???
{
}
}
}
GREYHOUND.CS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
namespace WindowsFormsApplication1
{
public class Greyhound
{
public int StartingPosition; // pozycja startowa
public int RaceTrackLenght; // długość wyscigu
public PictureBox MyPictureBox = null; // obiekt picturebox
public int Location = 0; // lokacja na torze
public Random MyRandom; // instancja klasy random
public bool Run() //metoda run
{
int move = MyRandom.Next(1, 4); // przesun do przodu o losowo 1,2,3,4
Point p = MyPictureBox.Location;
p.X += move;
MyPictureBox.Location = p;
if (p.X >= RaceTrackLenght) // jesli przekroczyl mete zwroc true
return true;
else
return false;
}
public void TakeStartPosition()
{
StartingPosition = 0; // ??
}
}
}
FORM1.CS
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;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
Guy[] guys = new Guy [3];
Greyhound[] dogs = new Greyhound[4];
Random MyRandom = new Random();
public Form1()
{
InitializeComponent();
guys[0] = new Guy() { Name = "Janek", Cash = 50, MyRadioButton = this.janekRadioButton, MyLabel = this.janekBetLabel };
guys[1] = new Guy() { Name = "Bartek", Cash = 75, MyRadioButton = this.bartekRadioButton, MyLabel = this.bartekBetLabel };
guys[2] = new Guy() { Name = "Arek", Cash = 100, MyRadioButton = this.arekRadioButton, MyLabel = this.bartekBetLabel };
dogs[0] = new Greyhound() { MyPictureBox = pictureBox2, StartingPosition = pictureBox2.Location.X, RaceTrackLenght = pictureBox1.Width};
dogs[1] = new Greyhound() { MyPictureBox = pictureBox3, StartingPosition = pictureBox3.Location.X, RaceTrackLenght = pictureBox1.Width};
dogs[2] = new Greyhound() { MyPictureBox = pictureBox4, StartingPosition = pictureBox4.Location.X, RaceTrackLenght = pictureBox1.Width};
dogs[3] = new Greyhound() { MyPictureBox = pictureBox5, StartingPosition = pictureBox5.Location.X, RaceTrackLenght = pictureBox1.Width};
}
private void button1_Click(object sender, EventArgs e) // tutaj chcialem zeby w labelach po prawej stronie w labelach wpisywane byly zaklady ale nie dziala
{
foreach (Guy guy in guys)
{
if (Guy.MyRadioButton.Checked)
{
if (Guy.PlaceBet ((int)numericUpDownBetSize.Value, (int)numericUpDownDogNumber.Value))
{
Guy.MyLabel.Text = Guy.MyBet.GetDescription();
}
}
}
}
}
}