Skip to content
Snippets Groups Projects
Commit 778bfb94 authored by Antti-Jussi Lakanen's avatar Antti-Jussi Lakanen :field_hockey:
Browse files

Demo 10

parent 7706b84d
No related branches found
No related tags found
No related merge requests found
Showing
with 782 additions and 0 deletions
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/modules.xml
/contentModel.xml
/.idea.Demo10.iml
/projectSettingsUpdater.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>
\ No newline at end of file
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/modules.xml
/.idea.demo10-uusi.iml
/projectSettingsUpdater.xml
/contentModel.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
demo10-uusi
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFrameworks>net5.0</TargetFrameworks>
<PublishReadyToRun>false</PublishReadyToRun>
<TieredCompilation>false</TieredCompilation>
<RootNamespace>T12-Pallopuu</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Jypeli.NET" Version="10.*" />
<PackageReference Include="Jypeli.FarseerPhysics.NET" Version="1.0.*" />
</ItemGroup>
</Project>
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
#endregion
namespace Program
{
/// <summary>
/// The main class.
/// </summary>
public static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
using (var game = new T12_Pallopuu())
game.Run();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Jypeli;
using Jypeli.Widgets;
/// @author Antti-Jussi Lakanen
/// @version 2025
///
/// <summary>
/// Tehtävä Bonus 1-2. Palloja rekursiivisesti.
/// </summary>
public class T12_Pallopuu : Game
{
const double PIENIN_SADE = 4.0;
/// <summary>
/// Kutsutaan rekursiivista aliohejlmaa.
/// </summary>
public override void Begin()
{
bool lisahienoudet = true;
if (!lisahienoudet)
{
Pallo(0, 150, 100, Math.PI / 2);
}
else
{
List<GameObject> pallot = new List<GameObject>();
Pallo(0, 0, 100, 0.5, Math.PI / 2, Math.PI / 8, pallot);
DoubleMeter kulmaMeter = new DoubleMeter(Math.PI / 8, 0, Math.PI);
DoubleMeter suuntaMeter = new DoubleMeter(Math.PI / 2, 0, Math.PI);
DoubleMeter kokoMeter = new DoubleMeter(0.5, 0.05, 0.7);
kulmaMeter.Changed += PiirraUudestaan;
suuntaMeter.Changed += PiirraUudestaan;
kokoMeter.Changed += PiirraUudestaan;
void PiirraUudestaan(double vanhaArvo, double uusiArvo)
{
pallot.ForEach(x => x.Destroy());
pallot.Clear();
Pallo(0, 0, 100, kokoMeter.Value, suuntaMeter.Value, kulmaMeter.Value, pallot);
};
Slider kulmaSlider = new Slider(150, 15)
{
Position = new Vector(0, -100),
Color = Color.Black
};
kulmaSlider.BindTo(kulmaMeter);
Add(kulmaSlider);
Label kulmaLabel = new Label
{
DoubleFormatString = "Kulma: +/- {0:N2}",
Color = Color.Black,
TextColor = Color.White,
Position = new Vector(kulmaSlider.X, kulmaSlider.Top + 15)
};
kulmaLabel.BindTo(kulmaSlider.Meter);
Add(kulmaLabel);
Slider suuntaSlider = new Slider(150, 15)
{
Left = kulmaSlider.Left,
Color = Color.Black
};
suuntaSlider.Bottom = kulmaLabel.Top + suuntaSlider.Height * 2;
Add(suuntaSlider);
suuntaSlider.BindTo(suuntaMeter);
Label suuntaLabel = new Label
{
TextColor = Color.White,
Color = Color.Black,
Position = new Vector(suuntaSlider.X, suuntaSlider.Top + 15),
DoubleFormatString = "Suunta: {0:N2}"
};
suuntaLabel.BindTo(suuntaSlider.Meter);
Add(suuntaLabel);
Slider kokoSlider = new Slider(150, 15)
{
Left = suuntaSlider.Left,
Top = kulmaSlider.Bottom - 60,
Color = Color.Black
};
kokoSlider.BindTo(kokoMeter);
Add(kokoSlider);
Label kokoLabel = new Label
{
Color = Color.Black,
TextColor = Color.White,
Position = new Vector(kokoSlider.X, kokoSlider.Top + 15),
DoubleFormatString = "Kokokerroin: {0:N2}"
};
kokoLabel.BindTo(kokoSlider.Meter);
Add(kokoLabel);
}
Mouse.IsCursorVisible = true;
Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, null);
SetWindowSize(800, 600);
Level.BackgroundColor = Color.DarkBlue;
Camera.ZoomToAllObjects(100);
}
/// <summary>
/// Tehdaan pallo, ja sen ylapuolelle kaksi muuta palloa
/// rekursiivisesti.
/// </summary>
/// <param name="x">Pallon kp x-koordinaatti</param>
/// <param name="y">Pallon kp y-koordinaatti</param>
/// <param name="sade">Pallon sade</param>
/// <param name="suunta">Suunta radiaaneina</param>
public void Pallo(double x, double y, double sade, double suunta)
{
//jos pallon koko < 4 lopeta
if (sade < PIENIN_SADE) return;
//pallo pisteeseen (x,y)
GameObject pallo = new GameObject(sade * 2, sade * 2, Shape.Circle);
pallo.Position = new Vector(x, y);
pallo.Color = RandomGen.NextColor();
Add(pallo);
// määrittele uusikoko itse ...
double r = sade * 0.5;
// määrittele suunnat itse ...
double vasenSuunta = suunta + Math.PI / 8;
double oikeaSuunta = suunta - Math.PI / 8;
Pallo(x + Math.Cos(vasenSuunta) * sade + Math.Cos(vasenSuunta)
* r, y + Math.Sin(vasenSuunta) * sade + Math.Sin(vasenSuunta)
* r, r, vasenSuunta);
Pallo(x + Math.Cos(oikeaSuunta) * sade + Math.Cos(oikeaSuunta)
* r, y + Math.Sin(oikeaSuunta) * sade + Math.Sin(oikeaSuunta)
* r, r, oikeaSuunta);
}
/// <summary>
/// Tehdaan pallo, ja sen ylapuolelle kaksi muuta palloa
/// rekursiivisesti.
/// </summary>
/// <param name="x">Pallon kp x-koordinaatti</param>
/// <param name="y">Pallon kp y-koordinaatti</param>
/// <param name="sade">Pallon sade</param>
/// <param name="sadeKerroin">Sädekerroin</param>
/// <param name="suunta">Suunta radiaaneina</param>
/// <param name="kulma">Kulma</param>
/// <param name="pallot">Pallot-lista</param>
public void Pallo(double x, double y, double sade, double sadeKerroin, double suunta, double kulma, List<GameObject> pallot)
{
//pallo pisteeseen (x,y)
GameObject pallo = new GameObject(sade * 2, sade * 2, Shape.Circle);
pallo.Position = new Vector(x, y);
Add(pallo);
pallot.Add(pallo);
if (sade < PIENIN_SADE) return;
if (pallot.Count > 500) return;
//jos pallon koko < 4 lopeta
// määrittele uusikoko itse ...
double r = sade * sadeKerroin;
// määrittele suunnat itse ...
double vasenSuunta = suunta + kulma;
double oikeaSuunta = suunta - kulma;
Pallo(x + Math.Cos(vasenSuunta) * sade + Math.Cos(vasenSuunta)
* r, y + Math.Sin(vasenSuunta) * sade + Math.Sin(vasenSuunta)
* r, r, sadeKerroin, vasenSuunta, kulma, pallot);
Pallo(x + Math.Cos(oikeaSuunta) * sade + Math.Cos(oikeaSuunta)
* r, y + Math.Sin(oikeaSuunta) * sade + Math.Sin(oikeaSuunta)
* r, r, sadeKerroin, oikeaSuunta, kulma, pallot);
}
}
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text;
/// <summary>
/// Bonus 3-4. Ohjelmassa luetaan valuuttakursseja tiedostosta ja tulostetaan
/// niista kayttajan antama valuutta.
/// </summary>
public class B12_Valuutat
{
/// <summary>
/// Luetaan valuutat-tiedosto ja
/// pyydetään käyttäjältä syöte ja tulostellaan
/// tuloksia sen mukaan.
/// </summary>
/// <param name="args">ei käytössä</param>
public static void Main(string[] args)
{
string[] valuuttalista;
try
{
valuuttalista = File.ReadAllLines("valuutat.xls");
}
catch (IOException ex)
{
Console.Error.WriteLine("Virhe: " + ex.Message);
return;
}
KyseleValuuttoja(valuuttalista);
}
/// <summary>
/// Kysellään käyttäjältä valuuttoja kunnes annetaan tyhjä rivi
/// </summary>
/// <param name="valuuttalista">Lista josta valuuttoja etsitään</param>
public static void KyseleValuuttoja(IList<string> valuuttalista)
{
while (true)
{
Console.Write("Anna valuutta >");
string valuutta = Console.ReadLine();
if (valuutta.Length == 0) break;
TulostaValuutta(valuuttalista, valuutta);
}
}
/// <summary>
/// Tulostetaan valuutta, joka vastaa hakujonoa valuutta
/// </summary>
/// <param name="valuuttalista">Valuutat</param>
/// <param name="valuutta">etsittävä valuutta</param>
public static void TulostaValuutta(IList<string> valuuttalista, string valuutta)
{
string isolla = valuutta.ToUpper();
foreach (string v in valuuttalista)
{
// huomaa, etta valuutta voi olla
// muukin kuin valuuttatunnuksen.
if (v.Contains(isolla))
{
string[] tiedot = v.Split(',');
// Erottelun jälkeen tiedot ovat järjestyksessä:
// 0: Valuuttatunnus
// 1: Keskikurssi
// 2: Myynti
// 3: Osto
// 4: Ajankohta
Console.WriteLine($"{tiedot[0]}: Keskikurssi {double.Parse(tiedot[1])}. Myynti {double.Parse(tiedot[2])}. Osto {double.Parse(tiedot[3])}. ({tiedot[4]})");
}
}
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<ExternalConsole>true</ExternalConsole>
<RootNamespace>B1_2-Valuutat</RootNamespace>
</PropertyGroup>
<ItemGroup>
<None Update="valuutat.xls">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
EUR,000001.000000,000001.000000,000001.000000,23/03/2023,08:00
USD,000001.090550,000001.067100,000001.114000,23/03/2023,08:00
JPY,000142.624000,000139.552000,000145.696000,23/03/2023,08:00
GBP,000000.884815,000000.865230,000000.904400,23/03/2023,08:00
SEK,000011.177250,000010.934000,000011.420500,23/03/2023,08:00
NOK,000011.333555,000011.072420,000011.594690,23/03/2023,08:00
DKK,000007.446300,000007.287300,000007.605300,23/03/2023,08:00
CHF,000000.998500,000000.976900,000001.020100,23/03/2023,08:00
CAD,000001.490650,000001.458400,000001.522900,23/03/2023,08:00
HKD,000008.559845,000008.316290,000008.803400,23/03/2023,08:00
AUD,000001.619025,000001.583570,000001.654480,23/03/2023,08:00
NZD,000001.736275,000001.696510,000001.776040,23/03/2023,08:00
ZAR,000019.796325,000019.213050,000020.379600,23/03/2023,08:00
SAR,000004.096650,000003.965300,000004.228000,23/03/2023,08:00
MAD,000011.144900,000010.759700,000011.530100,23/03/2023,08:00
KWD,000000.333630,000000.324100,000000.343160,23/03/2023,08:00
AED,000003.963250,000003.849700,000004.076800,23/03/2023,08:00
SGD,000001.444425,000001.406140,000001.482710,23/03/2023,08:00
INR,000089.630000,000086.550000,000092.710000,23/03/2023,08:00
CZK,000023.686700,000023.047700,000024.325700,23/03/2023,08:00
PLN,000004.682775,000004.554480,000004.811070,23/03/2023,08:00
HUF,000387.014000,000376.131000,000397.897000,23/03/2023,08:00
THB,000037.177000,000036.086000,000038.268000,23/03/2023,08:00
BGN,000001.955850,000001.906800,000002.004900,23/03/2023,08:00
CNH,000007.439300,000007.439300,000007.439300,23/03/2023,08:00
ILS,000003.941365,000003.817480,000004.065250,23/03/2023,08:00
MXN,000020.179350,000019.596300,000020.762400,23/03/2023,08:00
RON,000004.918880,000004.772550,000005.065210,23/03/2023,08:00
RSD,000117.300000,000113.900000,000120.700000,23/03/2023,08:00
TRY,000020.794350,000020.002570,000021.586130,23/03/2023,08:00
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<ExternalConsole>true</ExternalConsole>
</PropertyGroup>
</Project>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Numerics;
/// <summary>
/// Tehtävä 4-5. Lasketaan n yli k eli k-kombinaatioita.
/// </summary>
public class T45_NYliK
{
/// <summary>
/// Aliohjelmakutsuja ja tulostusta.
/// </summary>
/// <param name="args">Ei kaytossa.</param>
public static void Main(string[] args)
{
long l = NYliK(40, 7);
Console.WriteLine(l);
BigInteger b = BigNYliK(40, 7);
Console.WriteLine(b);
// Esimerkki lukualueen ylityksestä.
int a = int.MaxValue;
Console.WriteLine(a);
a++; // lukualueen ylitys. Huom! Ei käännösvirhe eikä ajonaikainen virhe.
Console.WriteLine(a);
// 40! käyttäen BigIntegeriä.
// BigInteger bi = new BigInteger(1);
// for (int i = 1; i <= 40; i++)
// {
// bi *= i;
// }
// Console.WriteLine(bi.ToString());
}
/// <summary>
/// Antaa n yli k:n, ts. C(n, k).
/// Ks. http://fi.wikipedia.org/wiki/Kombinaatio
/// Esim. kuinka monta erilaista 7 luvun ryhmää voidaan
/// muodostaa 40 luvun joukosta:
/// 40 40! 34*35*36*37*38*39*40
/// ( ) = ------------ = -------------------- = 18643560
/// 7 7! * (40-7)! 1*2*3*4*5*6*7
///
/// Aliohjelma laskee tuloksen käyttäen viimeistä
/// muotoa.
/// </summary>
/// <param name="n">n</param>
/// <param name="k">k</param>
/// <returns>n yli k:n</returns>
/// <example>
/// <pre name="test">
/// Kombinaatio.NYliK(40, 7) === 18643560;
/// Kombinaatio.NYliK(39, 7) === 15380937;
/// Kombinaatio.NYliK(1, 1) === 1;
/// Kombinaatio.NYliK(1, 0) === 1;
/// Kombinaatio.NYliK(1, 0) === 1;
/// </pre>
/// </example>
public static long NYliK(int n, int k)
{
long osoittaja = Kerro(n - k + 1, n);
long nimittaja = Kerro(1, k);
return osoittaja / nimittaja;
}
/// <summary>
/// Kerrotaan keskenään luvut alku, alku+1, ..., loppu.
/// Jos loppu > alku, palautetaan 1. Lukujen ollessa
/// yhtä suuria palautetaan alku.
/// </summary>
/// <param name="alku">Mistä luvusta aloitetaan.</param>
/// <param name="loppu">Mihin lukuun lopetetaan.</param>
/// <returns>Lukujen tulo.</returns>
/// <example>
/// <pre name="test">
/// Kerro(1, 1) === 1;
/// Kerro(1, 5) === 120;
/// Kerro(7, 10) === 5040;
/// Kerro(0, 5) === 0;
/// Kerro(3, 1) === 1;
/// Kerro(5, 2) === 1;
/// Kerro(5, 5) === 5;
/// </pre>
/// </example>
public static long Kerro(int alku, int loppu)
{
long tulos = 1;
for (int i = alku; i <= loppu; i++)
{
tulos *= i; // Esimerkiksi osoittaja meidän esimerkissämme: 34 * 35 * ... * 40
// (Tai nimittäjä meidän esimerkissämme: 1 * 2 * ... * 7)
}
return tulos;
}
/// <summary>
/// Kerrotaan keskenään luvut alku, alku+1, ..., loppu.
/// Jos loppu > alku, palautetaan 1. Lukujen ollessa
/// yhtä suuria palautetaan alku.
/// http://msdn.microsoft.com/en-us/library/system.numerics.biginteger.aspx
/// </summary>
/// <param name="alku">Mistä luvusta aloitetaan.</param>
/// <param name="loppu">Mihin lukuun lopetetaan.</param>
/// <returns>Lukujen tulo.</returns>
/// <example>
/// <pre name="test">
/// Kerro(1, 1) === (BigInteger) 1;
/// Kerro(1, 5) === (BigInteger) 120;
/// Kerro(7, 10) === (BigInteger) 5040;
/// Kerro(0, 5) === (BigInteger) 0;
/// Kerro(1, 0) === (BigInteger) 1;
/// Kerro(3, 1) === (BigInteger) 1;
/// Kerro(5, 2) === (BigInteger) 1;
/// Kerro(5, 5) === (BigInteger) 5;
/// </pre>
/// </example>
public static BigInteger BigKerro(int alku, int loppu)
{
BigInteger tulos = 1;
for (int i = alku; i <= loppu; i++)
{
tulos *= i;
}
return tulos;
}
/// <summary>
/// Antaa n yli k:n, ts. C(n, k).
/// Ks. http://fi.wikipedia.org/wiki/Kombinaatio
/// Esim. kuinka monta erilaista 7 luvun ryhmää voidaan
/// muodostaa 40 luvun joukosta:
/// 40 40! 34*35*36*37*38*39*40
/// ( ) = ------------ = -------------------- = 18643560
/// 7 7! * (40-7)! 1*2*3*4*5*6*7
///
/// Aliohjelma laskee tuloksen käyttäen viimeistä
/// muotoa.
/// </summary>
/// <param name="n">n</param>
/// <param name="k">k</param>
/// <returns>n yli k:n</returns>
/// <example>
/// <pre name="test">
/// NYliK(40, 7) === (BigInteger) 18643560;
/// NYliK(39, 7) === (BigInteger) 15380937;
/// NYliK(1, 1) === (BigInteger) 1;
/// NYliK(1, 0) === (BigInteger) 1;
/// NYliK(0, 1) === (BigInteger) 0;
/// </pre>
/// </example>
public static BigInteger BigNYliK(int n, int k)
{
BigInteger osoittaja = BigKerro(n - k + 1, n);
BigInteger nimittaja = BigKerro(1, k);
return osoittaja / nimittaja;
}
}

Microsoft Visual Studio Solution File, Format Version 12.00
VisualStudioVersion = 16.0.31112.23
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "B12-Pallopuu", "B12-Pallopuu\B12-Pallopuu.csproj", "{9B166249-598D-4343-AA57-310F5496995A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "T4-Lotto", "T4-Lotto\T4-Lotto.csproj", "{C25EE25B-38A0-4CBD-9D85-E0758D7496A7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "B3_4-NYliK", "B3_4-NYliK\B3_4-NYliK.csproj", "{FC7EFF4E-342F-4A20-8EE4-E62DF51B9B1F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "T6-Poikkeukset", "T6-Poikkeukset\T6-Poikkeukset.csproj", "{BD39176B-B594-4C80-AD9E-3BE4C6E88CF9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "B34-Valuutat", "B34-Valuutat\B34-Valuutat.csproj", "{65E1CAC4-DEB2-40C5-B6C2-3E7BB05C9EE5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "G34-PNS", "G34-PNS\G34-PNS.csproj", "{04F88C7C-6CB7-40A2-84C6-3763313FBBB6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "G56-Euler67", "G56-Euler67\G56-Euler67.csproj", "{0D9BC479-A1A9-4FEA-8FDF-E412C6A40617}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "G10-Salakirjoitus", "G10-Salakirjoitus\G10-Salakirjoitus.csproj", "{16945866-8792-4BD7-8AE1-5C18BAEE5BB4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "T4-T5_Salasana", "T4-T5_Salasana\T4-T5_Salasana.csproj", "{3CB53C8A-0B53-4220-828D-71AA7F326CC3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "G1_2-ValuutatNetista", "G1_2-ValuutatNetista\G1_2-ValuutatNetista.csproj", "{A890A5E7-77F2-496D-BE3D-33C0EBC6B024}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "T1-Rekursio1", "T1-Rekursio1\T1-Rekursio1.csproj", "{2479BA10-6AD3-4B42-923B-FF3ADB1DA625}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "T2-Rekursio2", "T2-Rekursio2\T2-Rekursio2.csproj", "{FB24F259-31D8-46FF-B4B2-786F33C37101}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "T3-Rekursio3", "T3-Rekursio3\T3-Rekursio3.csproj", "{2220FE70-35A0-4ABD-9983-02C1F93C1ADB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9B166249-598D-4343-AA57-310F5496995A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9B166249-598D-4343-AA57-310F5496995A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9B166249-598D-4343-AA57-310F5496995A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9B166249-598D-4343-AA57-310F5496995A}.Release|Any CPU.Build.0 = Release|Any CPU
{C25EE25B-38A0-4CBD-9D85-E0758D7496A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C25EE25B-38A0-4CBD-9D85-E0758D7496A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C25EE25B-38A0-4CBD-9D85-E0758D7496A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C25EE25B-38A0-4CBD-9D85-E0758D7496A7}.Release|Any CPU.Build.0 = Release|Any CPU
{FC7EFF4E-342F-4A20-8EE4-E62DF51B9B1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FC7EFF4E-342F-4A20-8EE4-E62DF51B9B1F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FC7EFF4E-342F-4A20-8EE4-E62DF51B9B1F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FC7EFF4E-342F-4A20-8EE4-E62DF51B9B1F}.Release|Any CPU.Build.0 = Release|Any CPU
{BD39176B-B594-4C80-AD9E-3BE4C6E88CF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BD39176B-B594-4C80-AD9E-3BE4C6E88CF9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BD39176B-B594-4C80-AD9E-3BE4C6E88CF9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BD39176B-B594-4C80-AD9E-3BE4C6E88CF9}.Release|Any CPU.Build.0 = Release|Any CPU
{65E1CAC4-DEB2-40C5-B6C2-3E7BB05C9EE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{65E1CAC4-DEB2-40C5-B6C2-3E7BB05C9EE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65E1CAC4-DEB2-40C5-B6C2-3E7BB05C9EE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{65E1CAC4-DEB2-40C5-B6C2-3E7BB05C9EE5}.Release|Any CPU.Build.0 = Release|Any CPU
{04F88C7C-6CB7-40A2-84C6-3763313FBBB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{04F88C7C-6CB7-40A2-84C6-3763313FBBB6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{04F88C7C-6CB7-40A2-84C6-3763313FBBB6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{04F88C7C-6CB7-40A2-84C6-3763313FBBB6}.Release|Any CPU.Build.0 = Release|Any CPU
{0D9BC479-A1A9-4FEA-8FDF-E412C6A40617}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0D9BC479-A1A9-4FEA-8FDF-E412C6A40617}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0D9BC479-A1A9-4FEA-8FDF-E412C6A40617}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0D9BC479-A1A9-4FEA-8FDF-E412C6A40617}.Release|Any CPU.Build.0 = Release|Any CPU
{16945866-8792-4BD7-8AE1-5C18BAEE5BB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{16945866-8792-4BD7-8AE1-5C18BAEE5BB4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{16945866-8792-4BD7-8AE1-5C18BAEE5BB4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{16945866-8792-4BD7-8AE1-5C18BAEE5BB4}.Release|Any CPU.Build.0 = Release|Any CPU
{3CB53C8A-0B53-4220-828D-71AA7F326CC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3CB53C8A-0B53-4220-828D-71AA7F326CC3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3CB53C8A-0B53-4220-828D-71AA7F326CC3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3CB53C8A-0B53-4220-828D-71AA7F326CC3}.Release|Any CPU.Build.0 = Release|Any CPU
{A890A5E7-77F2-496D-BE3D-33C0EBC6B024}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A890A5E7-77F2-496D-BE3D-33C0EBC6B024}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A890A5E7-77F2-496D-BE3D-33C0EBC6B024}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A890A5E7-77F2-496D-BE3D-33C0EBC6B024}.Release|Any CPU.Build.0 = Release|Any CPU
{2479BA10-6AD3-4B42-923B-FF3ADB1DA625}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2479BA10-6AD3-4B42-923B-FF3ADB1DA625}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2479BA10-6AD3-4B42-923B-FF3ADB1DA625}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2479BA10-6AD3-4B42-923B-FF3ADB1DA625}.Release|Any CPU.Build.0 = Release|Any CPU
{FB24F259-31D8-46FF-B4B2-786F33C37101}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FB24F259-31D8-46FF-B4B2-786F33C37101}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB24F259-31D8-46FF-B4B2-786F33C37101}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB24F259-31D8-46FF-B4B2-786F33C37101}.Release|Any CPU.Build.0 = Release|Any CPU
{2220FE70-35A0-4ABD-9983-02C1F93C1ADB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2220FE70-35A0-4ABD-9983-02C1F93C1ADB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2220FE70-35A0-4ABD-9983-02C1F93C1ADB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2220FE70-35A0-4ABD-9983-02C1F93C1ADB}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {15F97554-870E-4701-9998-02C177600A1A}
EndGlobalSection
EndGlobal

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31112.23
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "T12-Pallopuu", "T12-Pallopuu\T12-Pallopuu.csproj", "{9B166249-598D-4343-AA57-310F5496995A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "T3-Lotto", "T3-Lotto\T3-Lotto.csproj", "{C25EE25B-38A0-4CBD-9D85-E0758D7496A7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "B3_4-NYliK", "B3_4-NYliK\B3_4-NYliK.csproj", "{FC7EFF4E-342F-4A20-8EE4-E62DF51B9B1F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "T6-Poikkeukset", "T6-Poikkeukset\T6-Poikkeukset.csproj", "{BD39176B-B594-4C80-AD9E-3BE4C6E88CF9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "B1_2-Valuutat", "B1_2-Valuutat\B1_2-Valuutat.csproj", "{65E1CAC4-DEB2-40C5-B6C2-3E7BB05C9EE5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "G34-PNS", "G34-PNS\G34-PNS.csproj", "{04F88C7C-6CB7-40A2-84C6-3763313FBBB6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "G56-Euler67", "G56-Euler67\G56-Euler67.csproj", "{0D9BC479-A1A9-4FEA-8FDF-E412C6A40617}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "G10-Salakirjoitus", "G10-Salakirjoitus\G10-Salakirjoitus.csproj", "{16945866-8792-4BD7-8AE1-5C18BAEE5BB4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "T4-T5_Salasana", "T4-T5_Salasana\T4-T5_Salasana.csproj", "{3CB53C8A-0B53-4220-828D-71AA7F326CC3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "G1_2-ValuutatNetista", "G1_2-ValuutatNetista\G1_2-ValuutatNetista.csproj", "{A890A5E7-77F2-496D-BE3D-33C0EBC6B024}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "T1-Rekursio1", "T1-Rekursio1\T1-Rekursio1.csproj", "{2479BA10-6AD3-4B42-923B-FF3ADB1DA625}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "T2-Rekursio2", "T2-Rekursio2\T2-Rekursio2.csproj", "{FB24F259-31D8-46FF-B4B2-786F33C37101}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "T3-Rekursio3", "T3-Rekursio3\T3-Rekursio3.csproj", "{2220FE70-35A0-4ABD-9983-02C1F93C1ADB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9B166249-598D-4343-AA57-310F5496995A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9B166249-598D-4343-AA57-310F5496995A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9B166249-598D-4343-AA57-310F5496995A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9B166249-598D-4343-AA57-310F5496995A}.Release|Any CPU.Build.0 = Release|Any CPU
{C25EE25B-38A0-4CBD-9D85-E0758D7496A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C25EE25B-38A0-4CBD-9D85-E0758D7496A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C25EE25B-38A0-4CBD-9D85-E0758D7496A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C25EE25B-38A0-4CBD-9D85-E0758D7496A7}.Release|Any CPU.Build.0 = Release|Any CPU
{FC7EFF4E-342F-4A20-8EE4-E62DF51B9B1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FC7EFF4E-342F-4A20-8EE4-E62DF51B9B1F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FC7EFF4E-342F-4A20-8EE4-E62DF51B9B1F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FC7EFF4E-342F-4A20-8EE4-E62DF51B9B1F}.Release|Any CPU.Build.0 = Release|Any CPU
{BD39176B-B594-4C80-AD9E-3BE4C6E88CF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BD39176B-B594-4C80-AD9E-3BE4C6E88CF9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BD39176B-B594-4C80-AD9E-3BE4C6E88CF9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BD39176B-B594-4C80-AD9E-3BE4C6E88CF9}.Release|Any CPU.Build.0 = Release|Any CPU
{65E1CAC4-DEB2-40C5-B6C2-3E7BB05C9EE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{65E1CAC4-DEB2-40C5-B6C2-3E7BB05C9EE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65E1CAC4-DEB2-40C5-B6C2-3E7BB05C9EE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{65E1CAC4-DEB2-40C5-B6C2-3E7BB05C9EE5}.Release|Any CPU.Build.0 = Release|Any CPU
{04F88C7C-6CB7-40A2-84C6-3763313FBBB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{04F88C7C-6CB7-40A2-84C6-3763313FBBB6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{04F88C7C-6CB7-40A2-84C6-3763313FBBB6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{04F88C7C-6CB7-40A2-84C6-3763313FBBB6}.Release|Any CPU.Build.0 = Release|Any CPU
{0D9BC479-A1A9-4FEA-8FDF-E412C6A40617}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0D9BC479-A1A9-4FEA-8FDF-E412C6A40617}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0D9BC479-A1A9-4FEA-8FDF-E412C6A40617}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0D9BC479-A1A9-4FEA-8FDF-E412C6A40617}.Release|Any CPU.Build.0 = Release|Any CPU
{16945866-8792-4BD7-8AE1-5C18BAEE5BB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{16945866-8792-4BD7-8AE1-5C18BAEE5BB4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{16945866-8792-4BD7-8AE1-5C18BAEE5BB4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{16945866-8792-4BD7-8AE1-5C18BAEE5BB4}.Release|Any CPU.Build.0 = Release|Any CPU
{3CB53C8A-0B53-4220-828D-71AA7F326CC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3CB53C8A-0B53-4220-828D-71AA7F326CC3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3CB53C8A-0B53-4220-828D-71AA7F326CC3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3CB53C8A-0B53-4220-828D-71AA7F326CC3}.Release|Any CPU.Build.0 = Release|Any CPU
{A890A5E7-77F2-496D-BE3D-33C0EBC6B024}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A890A5E7-77F2-496D-BE3D-33C0EBC6B024}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A890A5E7-77F2-496D-BE3D-33C0EBC6B024}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A890A5E7-77F2-496D-BE3D-33C0EBC6B024}.Release|Any CPU.Build.0 = Release|Any CPU
{2479BA10-6AD3-4B42-923B-FF3ADB1DA625}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2479BA10-6AD3-4B42-923B-FF3ADB1DA625}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2479BA10-6AD3-4B42-923B-FF3ADB1DA625}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2479BA10-6AD3-4B42-923B-FF3ADB1DA625}.Release|Any CPU.Build.0 = Release|Any CPU
{FB24F259-31D8-46FF-B4B2-786F33C37101}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FB24F259-31D8-46FF-B4B2-786F33C37101}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB24F259-31D8-46FF-B4B2-786F33C37101}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB24F259-31D8-46FF-B4B2-786F33C37101}.Release|Any CPU.Build.0 = Release|Any CPU
{2220FE70-35A0-4ABD-9983-02C1F93C1ADB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2220FE70-35A0-4ABD-9983-02C1F93C1ADB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2220FE70-35A0-4ABD-9983-02C1F93C1ADB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2220FE70-35A0-4ABD-9983-02C1F93C1ADB}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {15F97554-870E-4701-9998-02C177600A1A}
EndGlobalSection
EndGlobal
Demo10/G10-Salakirjoitus/Content/soodaaja.png

75.3 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment