摘要:C# 小瑪莉程式
利用c#實作一個介面的小遊戲,同時也運用了物件導向的概念,算是有了解到OO的類別實作,從C語言跳到C#的實作方式,有蠻大的不同,然而要設計一個好類別更是需要不少的經驗,學習寫介面算是不錯的興趣,比較有個實體的感覺。也想問問有人會寫讓圖片振動的效果嗎??
執行畫面
開始後圖片會以輪流消失的方式來增加動態的感覺,也可以學習一些C# IDE上的工具來設計介面
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 Little_Mary
{
public partial class Form1 : Form
{
private Player player;
private Game[] game;
private int betmoney;
public int number = 1;
public bool gamestart = true;
public Form1()
{
InitializeComponent();
Random myRandomizer = new Random();
game = new Game[7]{
new Game() {MyRandom = myRandomizer, MyPictureBox = pictureBox1, MyTextBox = odds1, Odd = 0},
new Game() {MyRandom = myRandomizer, MyPictureBox = pictureBox2, MyTextBox = odds2, Odd = 0},
new Game() {MyRandom = myRandomizer, MyPictureBox = pictureBox3, MyTextBox = odds3, Odd = 0},
new Game() {MyRandom = myRandomizer, MyPictureBox = pictureBox4, MyTextBox = odds4, Odd = 0},
new Game() {MyRandom = myRandomizer, MyPictureBox = pictureBox5, MyTextBox = odds5, Odd = 0},
new Game() {MyRandom = myRandomizer, MyPictureBox = pictureBox6, MyTextBox = odds6, Odd = 0},
new Game() {MyRandom = myRandomizer, MyPictureBox = pictureBox7, MyTextBox = odds7, Odd = 0},
};
player = new Player() { Cash = 300 };
OddProduct();
int Playmoney = 0;
playmoney.Text = "$" + Playmoney;
cash.Text = "$" + player.Cash;
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
/*賭注單位*/
{
betmoney = (int)numericUpDown1.Value;
}
private void bet_Click(object sender, EventArgs e)/*下注資訊*/
{
betmoney = (int)numericUpDown1.Value;
gamestart = false;
UpdateGame(gamestart);
if (player.Cash >= betmoney * 10)
{
playmoney.Text = "$" + betmoney * 10;
player.Cash -= betmoney * 10;
cash.Text = "$" + player.Cash;
}
else
{
MessageBox.Show("You have not enough money!!!");
start.Enabled = false;
}
}
private void rb_CheckedChanged(object sender, EventArgs e)/*判斷玩家選幾號*/
{
for (int i = 1; i < 7; i++)
{
if (radioButton1.Checked == true)
{
number = 1;
}
else if (radioButton2.Checked == true)
{
number = 2;
}
else if (radioButton3.Checked == true)
{
number = 3;
}
else if (radioButton4.Checked == true)
{
number = 4;
}
else if (radioButton5.Checked == true)
{
number = 5;
}
else if (radioButton6.Checked == true)
{
number = 6;
}
else if (radioButton7.Checked == true)
{
number = 7;
}
}
}
private void start_Click(object sender, EventArgs e)/*開始*/
{
int count = 2;
while (count != 0)
{
for (int i = 0; i < 7; i++)
{
game[i].MyPictureBox.Visible = false;
System.Threading.Thread.Sleep(125);
Application.DoEvents();
}
for (int i = 0; i < 7; i++)
{
game[i].MyPictureBox.Visible = true;
System.Threading.Thread.Sleep(125);
Application.DoEvents();
}
count--;
}
int winner = player.MyGame.Run();
MessageBox.Show("The winner number is " + winner);
if (winner == number)
{
player.Cash += betmoney * 10 * game[number - 1].Odd;
MessageBox.Show("You win " + betmoney * 10 * game[number - 1].Odd + " dollars");
}
else
{
MessageBox.Show("You are lost");
}
gamestart = true;
UpdateGame(gamestart);
OddProduct();
cash.Text = "$" + player.Cash;
playmoney.Text = "$";
}
private void UpdateGame(bool gamestart)
{
bet.Enabled = gamestart;
radioButton1.Enabled = gamestart;
radioButton2.Enabled = gamestart;
radioButton3.Enabled = gamestart;
radioButton4.Enabled = gamestart;
radioButton5.Enabled = gamestart;
radioButton6.Enabled = gamestart;
radioButton7.Enabled = gamestart;
}
private void OddProduct()
{
for (int i = 0; i < 7; i++)
{
game[i].Odd = player.MyGame.Odds();
game[i].MyTextBox.Text = game[i].Odd.ToString();
}
}
}
}
Game.cs
namespace Little_Mary
{
public class Game
{
public Random MyRandom;
public PictureBox MyPictureBox = null;
public TextBox MyTextBox = null;
public int Odd;
public Game()
{
MyRandom = new Random();
MyPictureBox = new PictureBox();
MyTextBox = new TextBox();
}
public int Odds()
{
int odds = MyRandom.Next(2, 6);
MyTextBox.Text = odds.ToString();
return odds;
}
public int Run()
{
int winNumber = MyRandom.Next(1, 8);
return winNumber;
}
}
}
Play.cs
namespace Little_Mary
{
public class Player
{
public int Cash;
public Game MyGame;
public Random MyRandom;
public Player()
{
MyGame = new Game();
MyRandom = new Random();
}
}
}