Skip to content
Snippets Groups Projects
Commit e123554a authored by Vesa Lappalainen's avatar Vesa Lappalainen :bicyclist:
Browse files

live13alku

parent 5d2b249d
No related branches found
No related tags found
No related merge requests found
Showing
with 404 additions and 31 deletions
......@@ -26,10 +26,17 @@ public class Olioviitteet
int i1 = 11;
int i2 = 10 + 1;
Console.WriteLine(i1 == i2); // true
if (i1 < s2.Length) ;
{
i1 = i2 + 3;
}
int[] it1 = new int[]{3};
int[] it2 = { 3 };
{
Console.WriteLine(i1);
}
int[] it1 = new int[]{3,4,5};
int[] it2 = {3,4,5};
Console.WriteLine(it1 == it2); // false
Console.WriteLine(it1.Equals(it2)); // false
......@@ -44,16 +51,10 @@ public class Olioviitteet
string st1 = "eka";
string st2 = s1.ToString();
Console.WriteLine(Object.ReferenceEquals(st1, st2)); // false
Console.WriteLine(ReferenceEquals(st1, st2)); // false
Console.WriteLine(st1 == st2); // true
Console.WriteLine(st1.Equals(st2)); // true
Console.WriteLine(object.ReferenceEquals(st1, st2)); // false
st2 = null;
Console.WriteLine(st2 == null); // true
Console.WriteLine(object.ReferenceEquals(st1, st2)); // false
st1 = null;
Console.WriteLine(object.ReferenceEquals(st1, st2)); // true
Console.WriteLine(ReferenceEquals(st1, st2)); // false
}
}
\ No newline at end of file
......@@ -83,21 +83,39 @@ public class Kutsuminen
/// </pre>
/// </example>
public static void VaihdaSuurin(int[] t, int korvaavaArvo)
{
int paikka = SuurimmanPaikka(t);
if (paikka < 0) return;
t[paikka] = korvaavaArvo;
}
/// <summary>
/// Etsiin
/// </summary>
/// <param name="t">taulukko josta etsitään</param>
/// <returns>suurimman indeksi tai -1 jos ei löydy</returns>
/// <example>
/// <pre name="test">
/// int[] t = {1,2,3,4};
/// SuurimmanPaikka(t) === 3;
/// SuurimmanPaikka(new int[]{6,7,4}) === 1;
/// SuurimmanPaikka([4,2,8,5]) === 2;
/// </pre>
/// </example>
public static int SuurimmanPaikka(int[] t)
{
int paikka = -1;
int suurin = int.MinValue;
for (int i = 0; i < t.Length; i++)
{
int luku = t[i];
if (luku > suurin)
{
suurin = luku;
paikka = i;
}
if (luku <= suurin) continue;
suurin = luku;
paikka = i;
}
if (paikka < 0) return;
t[paikka] = korvaavaArvo;
return paikka;
}
}
\ No newline at end of file
// ReSharper disable all
using System;
using NUnit.Framework;
using static Kutsuminen;
[TestFixture]
[DefaultFloatingPointTolerance(0.000001)]
public class TestKutsuminen
{
[Test]
public void TestSuurempi45()
{
Assert.AreEqual( 4, Suurempi(3,4) , "in method Suurempi, line 46");
Assert.AreEqual( 4, Suurempi(-3,4) , "in method Suurempi, line 47");
Assert.AreEqual( -3, Suurempi(-3,-4) , "in method Suurempi, line 48");
Assert.AreEqual( 2, Suurempi(2,2) , "in method Suurempi, line 49");
}
[Test]
public void TestVaihdaSuurin65()
{
int[] luvut = {2,5,4,3};
VaihdaSuurin(luvut,1);
Assert.AreEqual( "2 1 4 3", String.Join(" ",luvut) , "in method VaihdaSuurin, line 68");
VaihdaSuurin(luvut,1);
Assert.AreEqual( "2 1 1 3", String.Join(" ",luvut) , "in method VaihdaSuurin, line 70");
VaihdaSuurin(luvut,9);
Assert.AreEqual( "2 1 1 9", String.Join(" ",luvut) , "in method VaihdaSuurin, line 72");
VaihdaSuurin(luvut,1);
Assert.AreEqual( "2 1 1 1", String.Join(" ",luvut) , "in method VaihdaSuurin, line 74");
VaihdaSuurin(luvut,-1);
Assert.AreEqual( "-1 1 1 1", String.Join(" ",luvut) , "in method VaihdaSuurin, line 76");
luvut = new int[]{5};
VaihdaSuurin(luvut,2);
Assert.AreEqual( "2", String.Join(" ",luvut) , "in method VaihdaSuurin, line 79");
luvut = new int[0];
VaihdaSuurin(luvut,2);
Assert.AreEqual( "", String.Join(" ",luvut) , "in method VaihdaSuurin, line 82");
}
[Test]
public void TestSuurimmanPaikka100()
{
int[] t = {1,2,3,4};
Assert.AreEqual( 3, SuurimmanPaikka(t) , "in method SuurimmanPaikka, line 102");
Assert.AreEqual( 1, SuurimmanPaikka(new int[]{6,7,4}) , "in method SuurimmanPaikka, line 103");
Assert.AreEqual( 2, SuurimmanPaikka([4,2,8,5]) , "in method SuurimmanPaikka, line 104");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NUnit" Version="3.13.1"/>
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Kutsuminen\Kutsuminen.csproj"/>
</ItemGroup>
</Project>
using System;
using System.Text;
/// @author Vesa Lappalainen
/// @version 10.10.2011
///
/// <summary>
/// Esimerkkejä matriisista
/// </summary>
public class Matriisit
{
/// <summary>
/// Esimerkkejä matriiseista
/// </summary>
/// <param name="args">ei käytössä</param>
public static void Main(string[] args)
{
// int[] luvut = int[3];
int[] luvut = { 3, 5, 1, 9 };
int[,] matriisi1 = new int[23, 5];
int[,] matriisi = {
{1,2,3}, // 0
{4,5,6}, // 1
{7,8,9}, // 2
{10,11,12} // 3
};
// Tulosta(matriisi);
Console.WriteLine("Dimensio: " + matriisi.Rank);
Console.WriteLine("Rivejä: " + matriisi.GetLength(0));
Console.WriteLine("Sarakkeita: " + matriisi.GetLength(1));
Console.WriteLine("Paikassa 2,1: " + matriisi[2, 1]);
int rivi = MiltaRiviltaLoytyy(matriisi, 8);
matriisi1[6, 2] = 99;
// Tulosta(matriisi1);
}
/// <summary>
///
/// </summary>
/// <param name="mat"></param>
/// <param name="etsittava"></param>
/// <returns></returns>
/// <example>
/// <pre name="test">
/// int[,] matriisi = {
/// {1,2,3}, // 0
/// {4,5,6}, // 1
/// {7,8,9}, // 2
/// {10,11,12} // 3
/// };
/// MiltaRiviltaLoytyy(matriisi, 8) === 2;
/// MiltaRiviltaLoytyy(matriisi, 1) === 0;
/// MiltaRiviltaLoytyy(matriisi, 12) === 3;
/// MiltaRiviltaLoytyy(matriisi, 15) === -1;
///
/// </pre>
/// </example>
public static int MiltaRiviltaLoytyy(int[,] mat, int etsittava)
{
int riveja = mat.GetLength(0);
int sarkkeita = mat.GetLength(1);
for (int iy = 0; iy < riveja; iy++)
{
for (int ix = 0; ix < sarkkeita; ix++)
{
int luku = mat[iy, ix];
if (luku == etsittava) return iy;
}
}
return -1;
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ExternalConsole>true</ExternalConsole>
</PropertyGroup>
</Project>
// ReSharper disable all
using System;
using System.Text;
using NUnit.Framework;
using static Matriisit;
[TestFixture]
[DefaultFloatingPointTolerance(0.000001)]
public class TestMatriisit
{
[Test]
public void TestMiltaRiviltaLoytyy51()
{
int[,] matriisi = {
{1,2,3},
{4,5,6},
{7,8,9},
{10,11,12}
};
Assert.AreEqual( 2, MiltaRiviltaLoytyy(matriisi, 8) , "in method MiltaRiviltaLoytyy, line 58");
Assert.AreEqual( 0, MiltaRiviltaLoytyy(matriisi, 1) , "in method MiltaRiviltaLoytyy, line 59");
Assert.AreEqual( 3, MiltaRiviltaLoytyy(matriisi, 12) , "in method MiltaRiviltaLoytyy, line 60");
Assert.AreEqual( -1, MiltaRiviltaLoytyy(matriisi, 15) , "in method MiltaRiviltaLoytyy, line 61");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NUnit" Version="3.13.1"/>
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Matriisit\Matriisit.csproj"/>
</ItemGroup>
</Project>

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kutsuminen", "Kutsuminen\Kutsuminen.csproj", "{78974B2C-1805-4FD3-A46D-5B1DFDEAC102}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KutsuminenTest", "KutsuminenTest\KutsuminenTest.csproj", "{2869479C-C99D-488D-B431-C3DF739542F6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Matriisit", "Matriisit\Matriisit.csproj", "{54A402CF-6AFE-4DB0-92AB-5B51BB1F1706}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MatriisitTest", "MatriisitTest\MatriisitTest.csproj", "{487FAE69-06F2-4D5B-8BDE-D721D7E9578C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{78974B2C-1805-4FD3-A46D-5B1DFDEAC102}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{78974B2C-1805-4FD3-A46D-5B1DFDEAC102}.Debug|Any CPU.Build.0 = Debug|Any CPU
{78974B2C-1805-4FD3-A46D-5B1DFDEAC102}.Release|Any CPU.ActiveCfg = Release|Any CPU
{78974B2C-1805-4FD3-A46D-5B1DFDEAC102}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{78974B2C-1805-4FD3-A46D-5B1DFDEAC102}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{78974B2C-1805-4FD3-A46D-5B1DFDEAC102}.Debug|Any CPU.Build.0 = Debug|Any CPU
{78974B2C-1805-4FD3-A46D-5B1DFDEAC102}.Release|Any CPU.ActiveCfg = Release|Any CPU
{78974B2C-1805-4FD3-A46D-5B1DFDEAC102}.Release|Any CPU.Build.0 = Release|Any CPU
{2869479C-C99D-488D-B431-C3DF739542F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2869479C-C99D-488D-B431-C3DF739542F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2869479C-C99D-488D-B431-C3DF739542F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2869479C-C99D-488D-B431-C3DF739542F6}.Release|Any CPU.Build.0 = Release|Any CPU
{54A402CF-6AFE-4DB0-92AB-5B51BB1F1706}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{54A402CF-6AFE-4DB0-92AB-5B51BB1F1706}.Debug|Any CPU.Build.0 = Debug|Any CPU
{54A402CF-6AFE-4DB0-92AB-5B51BB1F1706}.Release|Any CPU.ActiveCfg = Release|Any CPU
{54A402CF-6AFE-4DB0-92AB-5B51BB1F1706}.Release|Any CPU.Build.0 = Release|Any CPU
{487FAE69-06F2-4D5B-8BDE-D721D7E9578C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{487FAE69-06F2-4D5B-8BDE-D721D7E9578C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{487FAE69-06F2-4D5B-8BDE-D721D7E9578C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{487FAE69-06F2-4D5B-8BDE-D721D7E9578C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kutsuminen", "Kutsuminen\Kutsuminen.csproj", "{78974B2C-1805-4FD3-A46D-5B1DFDEAC102}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{78974B2C-1805-4FD3-A46D-5B1DFDEAC102}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{78974B2C-1805-4FD3-A46D-5B1DFDEAC102}.Debug|Any CPU.Build.0 = Debug|Any CPU
{78974B2C-1805-4FD3-A46D-5B1DFDEAC102}.Release|Any CPU.ActiveCfg = Release|Any CPU
{78974B2C-1805-4FD3-A46D-5B1DFDEAC102}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/modules.xml
/contentModel.xml
/projectSettingsUpdater.xml
/.idea.live13.iml
# 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="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
using System;
using System.Collections.Generic;
using Jypeli;
using Jypeli.Assets;
using Jypeli.Controls;
using Jypeli.Widgets;
namespace AngryLego;
/// @author vesal
/// @version 14.10.2024
/// <summary>
///
/// </summary>
public class AngryLego : PhysicsGame
{
public override void Begin()
{
// Kirjoita ohjelmakoodisi tähän
PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Jypeli.NET" Version="11.*"/>
<PackageReference Include="Jypeli.FarseerPhysics.NET" Version="2.*"/>
</ItemGroup>
<ItemGroup>
<None Update="Content\Baby.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\Chell.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\Cigur.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\Igor.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\Infant.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\Jango.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\King.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\Knive.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\Leader.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\maila3.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\Mum.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\Ron.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\symbian.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\tiili.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\tiili1.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\tiili2.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\tiili3.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\Ven.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\Yar.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
luennot/live13/AngryLego/Content/Baby.png

19.4 KiB

luennot/live13/AngryLego/Content/Chell.png

23.9 KiB

luennot/live13/AngryLego/Content/Cigur.png

64 KiB

luennot/live13/AngryLego/Content/Igor.png

43.4 KiB

luennot/live13/AngryLego/Content/Infant.png

21.8 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