顯示具有 [2015][Code Review]Team04 標籤的文章。 顯示所有文章
顯示具有 [2015][Code Review]Team04 標籤的文章。 顯示所有文章

2015年5月13日 星期三

[2015][Quiz][Week11]Quiz05 - Team04

Form1.cs為視窗設計
Shape3D.cs為基礎類別
Ball.cs、Cube.cs、Cylinder.cs、Pyramid.cs為衍生類別
Constant.cs為紀錄運算需要用到的常數,例如pi

2015年5月7日 星期四

[2015][Homework]Team04 - Hw07

Form1.cs為視窗設計
Shape3D.cs為基礎類別
Ball.cs、Cube.cs、Cylinder.cs、Pyramid.cs為衍生類別
Constant.cs為紀錄運算需要用到的常數,例如pi

2015年4月8日 星期三

[2015][Homework]Team04-Hw06

Program為進入程式點
Poker為類別,視窗設計
PokerCard為類別,轉換點數和花色
CardDeck為類別,產生Poker cards,依花色排列、亂數洗牌、依點數大小排列

[2015][Homework]Team04-Hw05

Program為進入程式點,輸入與輸出
Point為類別,計算兩點距離
PinBoard為類別,產生pinboard格點座標
Triangle為類別,產生triangle並計算周長、面積、外接圓半徑

2015年3月26日 星期四

[2015][Homework]Team04 - Hw04

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace JugPuzzle
{
    class Program
    {
        static void Main(string[] args)
        {
            int capacityA;
            int capacityB;
            int gcd;
            int target;

            Console.WriteLine("Jug Puzzle!");
            Console.WriteLine("Please input cylinderA capacity");      //key in
            capacityA = int.Parse(Console.ReadLine());
            Console.WriteLine("Please input cylinderB capacity");
            capacityB = int.Parse(Console.ReadLine());
            Console.WriteLine("Please input target capacity");
            target = int.Parse(Console.ReadLine());
            Console.WriteLine("*******************************************************");

            gcd = Program.gcd(capacityA, capacityB);      //find gcd

            if (target % gcd == 0)      //Is solvable?
            {
                if (capacityA + capacityB >= target)
                {
                    Program.jugPuzzle(capacityA, capacityB, target);
                }
                else
                {
                    Console.WriteLine("Not solvable!");
                }
            }
            else
            {
                Console.WriteLine("Not solvable!");
            }
            Console.Read();
        }

        static int gcd(int m, int n)      //最大公因數
        {
            int temp = 0;
            while (n != 0)
            {
                temp = m % n;
                m = n;
                n = temp;
            }
            return m;
        }

        static void jugPuzzle(int capacityA, int capacityB, int target)
        {
            int tem;
            int waterInA = 0;
            int waterInB = 0;

            if (capacityA > capacityB)      //if capacityA>B, exchange each other
            {
                tem = capacityA;
                capacityA = capacityB;
                capacityB = tem;
                Console.WriteLine("Capavity of B is smaller then capacity of A");
                Console.WriteLine("Exchange: capavity of A is {0}(smaller), and capacity of B is {1}(larger)", capacityA, capacityB);
            }
            else if (capacityA < capacityB)
            {
                Console.WriteLine("Capavity of A is smaller than capacity of B");
            }
            else
            {
                Console.WriteLine("Capavity of A and capacity of B are same");
            }
            Console.WriteLine("*******************************************************");

            while (true)
            {
                if (capacityA + capacityB == target)      //if capacity A + capacity B = target
                {
                    waterInA = capacityA;
                    waterInB = capacityB;
                    Console.WriteLine("Fill in cylinderA and cylinderB");
                    Console.WriteLine("cylinderA:({0}) cylinderB:({1})", waterInA, waterInB);
                    if (waterInA == target || waterInB == target || (waterInA + waterInB) == target)
                    {
                        break;
                    }
                }
                if (waterInA == 0)      //if A is empty
                {
                    waterInA = capacityA;
                    Console.WriteLine("Fill in cylinderA");
                    Console.WriteLine("cylinderA:({0}) cylinderB:({1})", waterInA, waterInB);
                    if (waterInA == target || waterInB == target || (waterInA + waterInB) == target)
                    {
                        break;
                    }
                }
                if (capacityB - waterInB > capacityA)      //if A pour into B
                {
                    waterInB = waterInB + waterInA;
                    waterInA = 0;
                    Console.WriteLine("CylinderA pour into cylinderB");
                    Console.WriteLine("cylinderA:({0}) cylinderB:({1})", waterInA, waterInB);
                    if (waterInA == target || waterInB == target || (waterInA + waterInB) == target)
                    {
                        break;
                    }
                }
                else
                {
                    waterInA = waterInA - (capacityB - waterInB);
                    waterInB = capacityB;
                    Console.WriteLine("CylinderA pour into cylinderB");
                    Console.WriteLine("cylinderA:({0}) cylinderB:({1})", waterInA, waterInB);
                    if (waterInA == target || waterInB == target || (waterInA + waterInB) == target)
                    {
                        break;
                    }
                }
                if (waterInB == capacityB)      //if B is full, pour out
                {
                    waterInB = 0;
                    waterInB = waterInA;
                    waterInA = 0;
                    Console.WriteLine("CylinderB is full, pour out");
                    Console.WriteLine("And cylinderA pour into cylinderB");
                    Console.WriteLine("cylinderA:({0}) cylinderB:({1})", waterInA, waterInB);
                    if (waterInA == target || waterInB == target || (waterInA + waterInB) == target)
                    {
                        break;
                    }
                }
            }
            Console.WriteLine("Done!");
        }
    }
}

2015年3月19日 星期四