我的任務是在C#中爲我的最終項目創建BlackJack。 C#對我來說相當陌生,所以我無法將圖像分配到我的卡片上。現在我有一個卡類:添加卡片圖片C#
public class Card
{
private string face;
private string suit;
public Card(string cardFace, string cardSuit)
{
face = cardFace;
suit = cardSuit;
}
public override string ToString()
{
return face + " of " + suit;
}
}
而且我有甲板類:
public class Deck
{
private Card[] deck;
private int currentCard;
private const int NUMBER_OF_CARDS = 52;
private Random ranNum;
public Deck()
{
string[] faces = { "Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King" };
string[] suits = { "Hearts", "Clubs", "Diamonds", "Spades" };
deck = new Card[NUMBER_OF_CARDS];
currentCard = 0;
ranNum = new Random();
for (int count = 0; count < deck.Length; count++)
deck[count] = new Card(faces[count % 13], suits[count/13]);
}
public void Shuffle()
{
currentCard = 0;
for (int first = 0; first < deck.Length; first++)
{
int second = ranNum.Next(NUMBER_OF_CARDS);
Card temp = deck[first];
deck[first] = deck[second];
deck[second] = temp;
}
}
public Card DealCard()
{
if (currentCard < deck.Length)
return deck[currentCard++];
else
return null;
}
}
最後,我有兩個按鈕,只需交易卡和洗牌甲板用一個簡單的Windows窗體這表明,在處理當前卡的字符串標籤:
public partial class Form1 : Form
{
Deck deck = new Deck();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void buttonDeal_Click(object sender, EventArgs e)
{
Card card = deck.DealCard();
labelOutput.Text = card.ToString();
}
private void buttonShuffle_Click(object sender, EventArgs e)
{
deck.Shuffle();
}
}
現在,我只是需要一些方法來分配圖像到我的卡,我不知道該如何..任何幫助將是不勝感激。
編輯:這是我一直試圖在我的卡類。
public static Image FromFile()
{
fileName = face + "_" + "of" + "_" +suit+".png";
Image image = Image.FromFile(fileName);
return image;
}
我有一個錯誤,說資源沒有fileName的定義。
我已經將所有圖像作爲資源添加到項目中,並將約定爲simliar的所有文件命名爲「Eight_of_Clubs」。
編輯:我已經在我的Windows窗體改變了這個:
private void buttonDeal_Click(object sender, EventArgs e)
{
Card card = deck.DealCard();
string fileName = card.getFace() + "_" + "of" + "_" + card.getSuit() + ".png";
Image image = Image.FromFile(fileName);
pictureBox1.Image = image;
labelOutput.Text = card.ToString();
}
但是當我運行該程序,並單擊按鈕交易我得到的錯誤: File does not exist exception
哪個是假的,因爲有是一個用此項目名爲King_of_Spades.png的資源加載的文件
字面上有一個名爲'Image'的類。你有谷歌搜索* C#窗體窗體圖像*或類似的東西?數以百萬計的結果...爲什麼要打擾? –
因爲我需要根據什麼卡畫出來生成圖像。是的,我看到如何手動添加圖片到圖片框,但這不會有幫助。 – JoeRamDo
當你說生成,你真的想自己構建圖像,還是你想從文件中拉它? –