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

l10

parent 84b8ae91
No related branches found
No related tags found
No related merge requests found
Showing
with 397 additions and 0 deletions
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/modules.xml
/projectSettingsUpdater.xml
/contentModel.xml
/.idea.demo4.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="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
using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;
/// @author Omanimi
/// @version 02.10.2023
/// <summary>
///
/// </summary>
public class Kasittele
{
/// <summary>
///
/// </summary>
public static void Main()
{
Console.WriteLine(IsoVaiPieni("kissa"));
}
public static string IsoVaiPieni(string mj)
{
// IsoVaiPieni(null)
if (mj.Length == 0) return "pieni";
/* Tämä aliohjelma oltava järjestyksessä 1., jotta testaus ei kaadu
siihen, että ohjelman ajo ei voi jatkua kun ei tunnisteta mitä tehdä
jos merkkijono onkin tyhjä eli ei ole edes mj[0]-kohtaa eli ei
yhtäkään kirjainta tai arvoa koko muuttujamäärityksessä! */
/* Vasta nyt kun ensin poissuljetaan tyhjät rivit, voidaan määrittää,
char mj[0], jos merkkijonossa on yhtään mitään sisältöä! */
if (Char.IsUpper(mj[0])) return "iso";
return "pieni";
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ExternalConsole>true</ExternalConsole>
</PropertyGroup>
</Project>
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
#endregion
namespace PalloPukkailu
{
/// <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 PalloPukkailu();
game.Run();
}
}
}
\ No newline at end of file
using Jypeli;
using Jypeli.Assets;
namespace PalloPukkailu;
/// @author Omanimi
/// @version 02.10.2023
/// <summary>
///
/// </summary>
public class PalloPukkailu : PhysicsGame
{
readonly Vector nopeusAlas = new Vector(0, -200);
/// <summary>
/// Reunat, zoomaus ja toistolause sekä aliohjelmakutsut.
/// </summary>
public override void Begin()
{
// Level.Size = Screen.Size;
// Level.Width = Screen.Width
// Level.Height = Screen.Height;
Camera.ZoomToLevel();
Level.CreateBorders();
Level.Background.Color = Color.Black;
Gravity = new Vector(0, -50);
for (int i = 0; i <= 30; i++)
{
PiirraPallo(this,
RandomGen.NextDouble(Level.Left, Level.Right), // Kentän vasen ja oikea reuna
RandomGen.NextDouble(Level.Bottom, Level.Top), // alareuna, yläreuna
RandomGen.NextDouble(5, 30),
RandomGen.NextDouble(5, 30)
);
}
PhysicsObject p1 = new PhysicsObject(2 * 20.0, 2 * 20.0, Shape.Circle);
p1.Y = Level.Bottom + 20.0;
p1.Color = Color.White;
p1.Restitution = 1.0;
Add(p1);
AddCollisionHandler(p1, "vihu", Tormays);
// p1.IgnoresPhysicsLogics = true;
p1.CanRotate = true;
double voima = 200;
Keyboard.Listen(Key.Up, ButtonState.Pressed, LyoPalloa, "Lyö palloa ylöspäin", p1, new Vector(0, voima));
Keyboard.Listen(Key.Down, ButtonState.Pressed, LyoPalloa, "Lyö palloa ylöspäin", p1, new Vector(0, -voima));
Keyboard.Listen(Key.Left, ButtonState.Pressed, LyoPalloa, "Lyö palloa ylöspäin", p1, new Vector(-voima, 0));
Keyboard.Listen(Key.Right, ButtonState.Pressed, LyoPalloa, "Lyö palloa ylöspäin", p1, new Vector(voima, 0));
Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, p1, Vector.Zero);
Timer t = new Timer();
t.Interval = 15.0;
t.Timeout += VaihdaPainovoimaa;
t.Start();
AsetaOhjaimet();
// Explosion();
}
private void Tormays(PhysicsObject pallo, PhysicsObject kuka)
{
Explosion rajahdys = new Explosion(50);
rajahdys.Position = kuka.Position;
rajahdys.Force = 1000;
rajahdys.ShockwaveColor = Color.Yellow;
rajahdys.UseShockWave = false;
this.Remove(kuka);
this.Add(rajahdys);
}
/// <summary>
/// Luodaan ja lisätään ruudulle annetun kokoinen
/// pallo annettuun paikkaan.
/// </summary>
/// <param name="peli">Peli, johon pallo piirretään</param>
/// <param name="x">Kappaleen keskipisteen x-koordinaatti</param>
/// <param name="y">Kappaleen keskipisteen y-koordinaatti</param>
/// <param name="w">Kappaleen leveys.</param>
/// <param name="h">Kappaleen korkeus.</param>
public static void PiirraPallo(Game peli, double x, double y, double w, double h)
{
PhysicsObject pallo = new PhysicsObject(w, h, Shape.Circle);
pallo.Position = new Vector(x, y);
pallo.Color = RandomGen.NextDarkColor();
pallo.Tag = "vihu";
peli.Add(pallo);
}
public static void LyoPalloa(PhysicsObject pallo, Vector suunta)
{
pallo.Hit(pallo.Mass * suunta);
}
public void VaihdaPainovoimaa()
{
Gravity = Vector.FromLengthAndAngle(Gravity.Magnitude, Gravity.Angle + Angle.FromDegrees(10.0));
}
public void AsetaOhjaimet()
{
Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä näppäinohjeet");
}
void AsetaNopeus(PhysicsObject pallo, Vector nopeus)
{
pallo.Velocity = nopeus;
}
public void Explosion() // ei toimi kunnolla tulisi räjäyttää kaikki pallot
{
Explosion rajahdys = new Explosion(50);
rajahdys.Position = rajahdys.Position;
rajahdys.Speed = 500.0;
rajahdys.Force = 1000;
rajahdys.ShockwaveColor = Color.Yellow;
Add(rajahdys);
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net7.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Jypeli.NET" Version="11.*"/>
<PackageReference Include="Jypeli.FarseerPhysics.NET" Version="2.*"/>
</ItemGroup>
</Project>

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kasittele", "Kasittele\Kasittele.csproj", "{39FE35B0-13E2-4BD4-AFA1-D9779D54EC71}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PalloPukkailu", "PalloPukkailu\PalloPukkailu.csproj", "{3D5585C5-55B9-4E11-A147-0667E606DC97}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{39FE35B0-13E2-4BD4-AFA1-D9779D54EC71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{39FE35B0-13E2-4BD4-AFA1-D9779D54EC71}.Debug|Any CPU.Build.0 = Debug|Any CPU
{39FE35B0-13E2-4BD4-AFA1-D9779D54EC71}.Release|Any CPU.ActiveCfg = Release|Any CPU
{39FE35B0-13E2-4BD4-AFA1-D9779D54EC71}.Release|Any CPU.Build.0 = Release|Any CPU
{3D5585C5-55B9-4E11-A147-0667E606DC97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3D5585C5-55B9-4E11-A147-0667E606DC97}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3D5585C5-55B9-4E11-A147-0667E606DC97}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3D5585C5-55B9-4E11-A147-0667E606DC97}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/projectSettingsUpdater.xml
/contentModel.xml
/.idea.live10.iml
/modules.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
using System;
using System.Text;
using kokonaisluku = System.Int32;
/// @author Vesa Lappalainen
/// @version 07.10.2012
/// <summary>
/// Esimerkkejä aliohjelminen kutsumisesta
/// </summary>
public class AliohjelmienKutsuminen
{
/// <summary>
/// Aliohjelmien kutsuesimerkkejä
/// </summary>
public static void Main()
{
StringBuilder sb = new StringBuilder("krokotiili");
PoistaAlkuLisaaLoppuun(sb, 't', "talo");
Console.WriteLine(sb);
}
/// <summary>
/// Etsii kirjaimen ja poistaa alun siihen asti ja lisää loppuun lisattavan jonon
/// </summary>
/// <param name="jono">muutettava jono</param>
/// <param name="kirjain">etsittävä kirjain</param>
/// <param name="lisattava">loppuun lisättävä jono</param>
/// <example>
/// <pre name="test">
/// StringBuilder jono = new StringBuilder("krokotiili");
/// PoistaAlkuLisaaLoppuun(jono,'t',"talo") =S= "tiilitalo";
/// PoistaAlkuLisaaLoppuun(jono,'r',"ko") =S= "tiilitaloko";
/// PoistaAlkuLisaaLoppuun(jono,'o',"") =S= "oko";
/// PoistaAlkuLisaaLoppuun(jono,'k',"") =S= "ko";
/// PoistaAlkuLisaaLoppuun(jono,'o',"") =S= "o";
/// </pre>
/// </example>
// BYCODEBEGIN
public static StringBuilder PoistaAlkuLisaaLoppuun(StringBuilder jono,char kirjain,string lisattava)
{
string s = jono.ToString();
int i = s.IndexOf(kirjain);
if (i >= 0) jono.Remove(0, i);
jono.Append(lisattava);
return jono;
}
// BYCODEEND
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ExternalConsole>true</ExternalConsole>
</PropertyGroup>
</Project>
using System;
using System.Text;
using kokonaisluku = System.Int32;
using NUnit.Framework;
using static AliohjelmienKutsuminen;
[TestFixture]
[DefaultFloatingPointTolerance(0.000001)]
public class TestAliohjelmienKutsuminen
{
[Test]
public void TestPoistaAlkuLisaaLoppuun27()
{
StringBuilder jono = new StringBuilder("krokotiili");
Assert.AreEqual(( "tiilitalo").ToString(), (PoistaAlkuLisaaLoppuun(jono,'t',"talo") ).ToString(), "in method PoistaAlkuLisaaLoppuun, line 29");
Assert.AreEqual(( "tiilitaloko").ToString(), (PoistaAlkuLisaaLoppuun(jono,'r',"ko") ).ToString(), "in method PoistaAlkuLisaaLoppuun, line 30");
Assert.AreEqual(( "oko").ToString(), (PoistaAlkuLisaaLoppuun(jono,'o',"") ).ToString(), "in method PoistaAlkuLisaaLoppuun, line 31");
Assert.AreEqual(( "ko").ToString(), (PoistaAlkuLisaaLoppuun(jono,'k',"") ).ToString(), "in method PoistaAlkuLisaaLoppuun, line 32");
Assert.AreEqual(( "o").ToString(), (PoistaAlkuLisaaLoppuun(jono,'o',"") ).ToString(), "in method PoistaAlkuLisaaLoppuun, line 33");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.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="..\AliohjelmienKutsuminen\AliohjelmienKutsuminen.csproj"/>
</ItemGroup>
</Project>
luennot/live10/MontaPalloa/Content/Baby.png

19.4 KiB

luennot/live10/MontaPalloa/Content/Chell.png

23.9 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