Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • tmruisma/ohj1ht
  • eljuarha/ohj1ht
  • alvejmsu/ohj1ht
  • tuvoo/ohj1ht
  • annelinu/ohj1ht
  • malonen/ohj1ht
  • jphkauxs/ohj1ht
  • rarouvin/vaiskin-kauppapeli
  • ansovalk/ohj1ht
  • tkleinon/ohj1ht
  • tmraassy/ohj1ht
  • fmksepps/ohj1ht
  • kosksaka/ohj1ht
  • aatjarvs/ohj1ht
  • segersls/ohj1ht
  • peropami/ohj1ht
  • jylhasmy/ohj1ht
  • suomiejs/ohj1ht
  • ojanpele/ohj1ht
  • oeppulkk/ohj1ht
  • pulliami/ohj1ht
  • lemakinn/ohj1ht
  • lappkvuu/ohjelmointi-1-ht-1
  • misutuom/ohj1ht
  • vivclaje/harkkatyo
  • kohelasa/ohj1ht
  • tulehtol/ohj-1-ht-2023
  • otoskinn/ohj1ht
  • karossi/ohj1ht
  • anttlaol/ohj1ht
  • autioans/ohj1ht
  • vjokine/ohjelmointi-1-kurssin-harkkapeli
  • viempaas/ohj1ht
  • jjikouyz/ohj1ht
  • pejuuso/ohj1ht
  • ideljako/ohj1ht
  • juutirls/ohj1ht
  • nivagadd/ohj1ht
  • elvivihe/ohj1ht
  • tie/ohj1/2023k/ohj1ht
  • aruokane/ohj1ht
  • nimirich/ohj1ht
  • alarnika/ohj1ht
  • viheijo/ohj1ht
  • esshelkr/ohj1ht
  • tttkanka/ohjelmointi-1-harjoitustyo
  • jmporras/ohj1ht
  • sernopet/ohj1ht
  • alnikupa/ohj1ht
  • kamarama/ohj1ht
  • pakakata/ohj1ht
  • sorjonmi/ohj1ht
  • silimapa/ohj1ht
  • jatirkko/ohj1ht
  • jsundelu/ohj1ht
  • maerlepo/ohj1ht
  • korhoovy/ohj1ht
  • partanji/ohj1ht
  • amheikkz/ohj1ht
  • koskinnm/ohj1ht
  • pehaline/ohj1ht
  • svhyvaos/ohj1ht
  • tetutaim/ohj1ht
  • alaluuop/ohj1ht
  • veijhrxz/ohj1ht
  • anmatala/ohjelmointi-1-harjoitustyo
  • anidmapo/ohj1ht
  • ttipoiko/ohj1ht
  • pyhalavh/ohj1ht
  • jemaijal/ohj1ht
  • joanurmi/ohj1ht
  • eemaelsa/ohj1ht
  • mijoutri/ohj1ht
  • ijsalmin/ohj1ht
  • saimaahu/ohj1ht
  • annkriau/ohj1ht
  • mkhirvon/ohj1ht
  • uttija/ohj1ht
  • mikkolto/ohj1ht
  • meakorho/ohj1ht
  • laaksoel/ohj1ht
  • mholammi/ohj1ht
  • krrekahk/ohj1ht
  • wistnest/ohj1ht
  • arhesant/arttu-s-ohj-1-peli
  • ihakalel/ohj1ht
  • ijaslaii/ohj1ht
  • veosvuol/ohj1ht
  • saarelee/ohj-1-ht-o
  • aevantti/ohj1ht
  • akruth/ohj1ht
  • idjupirh/ohj1ht
  • cgmlilja/ohj1ht
  • pojujoen/ohj1ht
  • ssfrom/ohj1ht
  • heinonpe/ohj1ht
  • viitanti/ohj1ht
  • lehtolts/ohj1ht
  • galetas/ohj1ht
  • dikogalu/ohj1ht
  • wahesale/ohj1ht
  • tepesimo/ohj1ht
  • ssapakys/ohj1ht
  • vestmine/ohj1ht
  • dooleyy/ohj1ht
  • vicdavfa/ohj1ht
  • kalloupe/ohj1ht
  • katajaam/ohj1ht
  • aransjos/ohj1ht
  • kaahyton/ohj1ht
  • jarvluee/ohj1ht
  • joaframi/ohj1ht
  • saiannka/ohj1ht
  • sasumyrs/ohj-1-ht-2023
  • jumavehi/ohj-1-ht-k-23
  • juhahuov/ohj1ht
  • immoneth/ohj-1-ht-thomas-immonen
  • rimijarv/ohj1ht
  • ponkayy/ohj1ht
  • tiainess/ohj1ht
  • setkinnu/ohj1ht
  • vvkeinan/ohj1ht
  • jelavonv/ohj1ht
  • haukjohe/ohj1ht
  • jumavais/ohj1ht
  • esmajoki/ohj1ht
  • minkjmzy/ohj1ht
  • jaahwiih/ohj1ht
  • maalvirt/ohj1ht
  • tttikkan/ohj1ht
  • kihedema/ohj1ht
  • nipeniem/ohj1ht
  • saaraijm/ohj1ht
  • roalsuvi/ohj1ht
  • sjkoskel/ohj1ht
  • hsjkulma/hannelen-harjoitustyo-ohj-1
  • mitaniem/ohj1ht
  • ahiekkan/ohj1ht
  • nmpuskzv/ohj-1-ht
  • wwwmolqo/ohj1ht
  • juntjuii/ohj1ht
  • santurun/ohj1ht
  • ettalaes/ohj-1-ht
  • hairjarv/ohj1ht
  • jjbergfo/ohj1ht
  • lehtikmi/ohj1ht
  • sianpapa/ohj1ht
  • aaperttu/tipitsi
  • tie/ohj1/2024k/ohj1ht
  • hesalmuu/ohj1ht
  • erkkaoxs/ohj1ht
  • temhints/ohj1ht
  • bekrnybe/ohj-1-ht-beata-otto
  • sawakorp/ohj1ht
  • saarinan/ohj1ht
  • kronjoma/ohj1ht
  • otjolyyt/ohj1ht-otjolyyt
  • tiantaha/ohj1ht
  • krislima/ohj1ht
  • rauhulil/suunnitelma
  • jutasier/ohj1ht
  • areeheki/ohj1ht
  • lausofla/ohj-1-ht
  • vemahaka/ohj1ht
  • suurnaat/ohj1ht
  • jakaraut/ohj1ht
  • jesupalo/ohj1ht
  • ferin/ohj1ht
  • annpauko/ohj1ht
  • npfriman/ohj1ht
  • kauppmsx/ohj1ht
  • vilaleka/ohj1ht
  • rohekokk/ohj1ht
  • roiirera/ohj1ht
  • jakinnun/ohj1ht
  • tormsu/titanic
  • saukkota/ohj1ht
  • iinpitka/ohj1ht
  • samalauk/ohj1ht
  • neemjaak/ohj1ht
  • mikkonhm/ohj1ht
  • hietmaem/ohj1ht
  • skytasuz/skytta-harjoitustyo-ohj-1-kevat
  • ylonmami/ohj1ht
  • rojunatu/ohj1ht
  • niemkeys/ohj1ht
  • korhoajx/ohj1ht
  • jjrsavol/ohj1ht
  • jowinoke/ohj1ht
  • hasemajo/ohj1ht
  • pinsofhe/ohj1ht
  • peltonla/ohj1ht
  • hamaot/ohj1ht
  • kettunko/ohj1ht
  • ansammal/ohj1ht
  • lxcevrhh/ohj1ht
  • niemhizz/ohj1ht
  • jumakemp/ohj1ht
  • vmahonen/ohj-1-ht-veeti-ahonen
  • mamahank/ohj1ht
  • ajehepol/ohj1ht
  • sisverve/ohj1ht
  • samapeke/ohj1ht
  • mejniemi/ohj-1-peli
  • janjuhni/ohj1ht
  • poyhontj/ohj1ht
  • valimasj/orginal-matopeli
  • adaoliro/ohj1ht
  • ejlahti/ohj1ht
  • iileskys/ohj1ht
  • juuariju/ohj-1-ht
  • eetuoril/ohj1ht
  • ebkaariv/ohj1ht
  • mnarhi/ohj1ht
  • peltsaxs/ohj1ht
  • tkoivisx/ohj1ht
  • eovvaris/ohj-1-ht-1
  • heilauma/ohj1ht
  • mmuhonen/ohj1ht
  • leevilha/ohj1ht
  • jurvidan/ohj1ht
  • iuteitti/ilonan-harjoitustyo
  • sinkkoja/ohj1ht
  • koivuaam/ohj1ht
  • jimsaixv/salimake
  • ihalaiv/ohj1ht
  • sellmmv/projekti
  • mimatasi/ohj1ht
  • sakapusa/harkkatyo
  • annkerki/ohj1ht
  • sabevaha/ohjelmointi-1-kurssin-peli
  • alnelima/ohj1ht
  • kijoperk/ohj1ht
  • tlelakan/ohj1ht
  • ojtorppa/ohj1ht
  • sutinele/ohj1ht
  • mhjlauyy/ohj1ht
  • tidentou/ohj-1-ht
  • akpameka/ohj1ht
  • nielraut/ohj1ht
  • jomimati/ohj1ht
  • alopaate/ohj1ht
  • niptunwu/ohj1ht
  • lihiauka/ohj1ht
  • kekuvaja/ohj1ht
  • salolase/bossikasi
  • venipiil/ohj1ht
  • rantalvo/ohj1ht
  • joveheko/raekuuro
  • vivakork/ohj1ht
  • nikoskhy/ohj1ht
  • jermatkr/suunnitelmamdks
  • jaempelt/ohj1ht
  • jjhonkuu/ohj1ht
  • rautpmxt/ohj1ht
  • mmoraru/escape-from-hell
  • espakolh/ohj1ht
  • kaotkurj/ohj1ht
  • niemeiws/ohj-1-ht
  • sisavart/ohj1ht
  • sivejukl/ohj1ht
  • panjuhle/ohj1ht
  • rtaalikk/ohj1ht
  • hesalone/ohj1ht
  • topeliku/ohj1ht
  • konttijm/ohj1ht
  • llaung/ohj1ht
  • jsnikkin/ohj1ht
  • spicjrxz/ohj1ht
  • kiikriha/ohj1ht
  • juhyytin/ohj1ht
  • jajuruti/jajuruti
  • vejovile/ohj1ht
  • jjoensyu/ohj1ht
  • hjnirhax/ohj1ht
  • nobekail/ohj1ht
  • wendjkvt/ohj1ht
  • aapotska/platformer
  • lamminm/ohj1ht
  • garammtu/platformerpeli
  • apeshhhh/ohj1ht
  • tototuru/ohj1ht
  • tejupasa/ohj1ht
  • amelhadd/ohj1ht
  • heminyrh/ohj1ht
  • rehirvel/ohj1ht
  • ilfrjohe/ohj1ht
  • vkarppaz/scrape-poster
  • rikantos/ohj1ht
  • jenjulha/ohj1ht
  • miimatpa/ohj1ht
  • julsadka/ohj1ht
  • gozavoro/ohj1ht
  • viljanta/ohj1ht
  • kostamol/ohj1ht
  • ylivezu/ohj1ht
  • pjsydanm/ohj1ht
  • suvleean/ohj1ht
  • diivysei/ohjelmointi-1-harjoitustyo
  • tapiopp/ohj1ht
  • kkpyykko/ohj1ht
  • summanwe/ohj1ht
  • lpuraney/ohj1ht
  • serimaai/ohj1ht
  • tarkkael/ohj1ht
  • eljoholt/ohj1ht
  • olenkail/ohj1ht
  • alkarant/harjoitustyo
  • sajovann/ohj1ht
  • vivestma/ohj1ht
  • sodenrzt/ohj1ht
  • sssuonyy/ohj1ht
  • salmiene/ohj1ht
  • vepsanew/ohj1ht
  • aslimma/ohj1ht
  • vvimmone/ohjelmointi-1-harjoitustyo
  • hejohyde/ohjelmointi-1-harjoitustyo-hh
  • phjhaapa/ohj1ht
  • makyolaa/ohj1ht
  • mipaflin/harjoitustyo
  • juutijos/ohj1ht
  • jaaronur/harjoitustyo
  • tie/ohj1/2025k/ohj1ht
  • teamakin/ohj1ht
  • jylhali/ohj1ht
  • ollilaas/ohj1ht
  • jkasper/ohj1ht
  • kimakiiv/ohj1ht
  • hevianes/ohj-1-ht-1
  • xwusxjid/harjoitustyo-ohj-1
  • miiseppa/ohj1ht
  • miolnauk/ohj1ht
  • karjulto/ohj1ht
  • leeaable/ohj1ht
  • emraiha/ohj1ht
  • idriemla/ohj1ht
  • mkpsoini/ohj1ht
  • lewejoen/ohj1ht
  • blanilad/ohj1ht
  • matusora/ohj1ht
  • olsonasu/ohj1ht
  • puustipa/ohj-1-reaktiopeli
  • moishe/ohj1ht
  • keleppal/ohj1ht
  • aiesmati/ohj1ht
  • misajuha/ohj1ht
  • aaelriih/ohj1ht
  • misokopo/ohj1ht
  • iblagode/ohj1ht
  • kaaelmke/ohj1ht
  • iihuuton/ohj-1-ht
  • elmapurs/ohj-1-peli
  • hankssxs/ohj1ht
  • aisoantt/ohj1ht
  • jjsaukks/ohj1ht
  • emmidaka/ohj1ht
  • lohisajo/ohj1ht
  • jlahdeww/ohj1ht
  • tepekyla/ohj1ht
  • alaxgroe/ohj1ht
  • mkrajazz/ohj1ht
  • hihehuis/ohj1ht
  • sasisiti/ohj1ht
  • tshalme/ohj1ht
  • eskrelry/ohj1ht
  • haleriak/ohj1ht
  • kerakoju/ohj1ht
  • elainnas/peli
  • sinsushi/ohj1ht
  • otemhann/ohj1ht
  • eepetaka/ohj1ht
  • ieepirzy/ohj-1-ht
  • onmahela/ohj1ht
  • jupakraa/ohj1ht
  • rajatota/ohj1ht
  • sasaable/ohj1ht
  • jupakraa/harjoitustyo-1
  • jahalmtv/ohj1ht
  • joalvihe/ohj1ht
  • joeehimm/ohj1ht
  • anvasavi/ohj1ht
  • mhmniskx/ohj1ht
  • rintalsa/ohj1ht
  • veetoivo/ohj1ht
  • rtmatilt/Swatteri
  • maukotos/blackjack
  • karppir/ohj1ht
  • tammtu/ohj1ht
388 results
Show changes
Commits on Source (6)
Showing
with 765 additions and 0 deletions
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/contentModel.xml
/.idea.DebugKoe.iml
/modules.xml
/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

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DebugKoe", "DebugKoe\DebugKoe.csproj", "{8EC97E31-5CF6-4C37-872D-D993F323A841}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8EC97E31-5CF6-4C37-872D-D993F323A841}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8EC97E31-5CF6-4C37-872D-D993F323A841}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8EC97E31-5CF6-4C37-872D-D993F323A841}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8EC97E31-5CF6-4C37-872D-D993F323A841}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
using Tarkistaja;
public class DebugKoe : IDebugKoe
{
// ***** Debug-koe *****
// Debug-kokeessa Tarkistaja.dll kutsuu PalautaTrue- ja
// HaeSuurimmanLuvunPaikka -funktioita.
// Sinun tehtävänäsi on asettaa näihin funktioihin keskeytyskohdat oikeisin
// kohtiin ja vain keskeytyskohtien sekä debuggerin avulla muuttaa funktioiden
// käyttäytymistä siten, että ne palauttavat halutut arvot.
// Itse koodia ei saa muokata.
// Läpäistyäsi kokeen ilmoita ohjaajalle, jolloin ohjaaja käy kokeen vielä
// läpi kanssasi.
/// <summary>
/// Tehtävä 1.
///
/// Muuta funktion paluuarvoa ohjelman suorituksen aikana
/// käyttäen debuggeria siten, että funktio palauttaa true.
/// </summary>
public bool PalautaTrue()
{
// Seuraava bool pitää muuttaa trueksi käyttäen debuggeria.
bool lapaistaanko = false;
return lapaistaanko;
}
/// <summary>
/// Tehtävä 2.
///
/// Funktiolle annetaan parametrina taulukko lukuja, joka sisältää 999 samaa
/// yhtä sattumanvaraista lukua.
/// Lisäksi jossain kohdassa taulukkoa on yksi, muita lukuja suurempi luku.
/// Funktion tarkoituksena on palauttaa tämän yhden, muita suuremman luvun paikka,
/// mutta funktion koodissa onkin vika, minkä takia funktio palauttaa aina vain -1.
///
/// Tehtävänäsi on löytää tämän yhden, kaikkia muita lukuja suuremman, luvun
/// paikka parametrina annetusta taulukosta käyttäen ehdollista keskeytyskohtaa.
/// Sitten korvaat debuggeria käyttäen luvunPaikka-muuttujan arvon suuremman
/// luvun oikealla paikalla (toteutuksessa luvunPaikka on aina vain -1),
/// jotta funktio palauttaa oikean arvon.
///
/// Tehtävässä täytyy käyttää ehdollista keskeytyskohtaa. Pelkkä taulukon
/// selaaminen läpi ei riitä vastaukseksi.
///
/// </summary>
/// <param name="taulukko">Läpikäytävä kokonaislukutaulukko</param>
/// <returns>Indeksi, jossa erilainen kohta oli</returns>
public int HaeSuuremmanLuvunPaikka(int[] taulukko)
{
int luvunPaikka = -1;
int luku = taulukko[0];
int edellinenLuku = luku;
for (int i = 1; i < taulukko.Length; i++)
{
edellinenLuku = luku;
luku = taulukko[i];
}
return luvunPaikka;
}
/// <summary>
/// Pääohjelma. Voit jättää tämän huomiotta.
/// </summary>
public static void Main()
{
new Tarkistaja.Tarkistaja(new DebugKoe(), DebugExamLanguage.FINNISH).Aloita();
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<Reference Include="Tarkistaja">
<HintPath>..\..\..\..\Users\konst\Downloads\Tarkistaja.dll</HintPath>
</Reference>
</ItemGroup>
</Project>
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/projectSettingsUpdater.xml
/modules.xml
/contentModel.xml
/.idea.Harjoitustyö.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

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OilSaber", "OilSaber\OilSaber.csproj", "{F2CAD9E0-0B32-4B1C-94C4-91F13D77E00A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F2CAD9E0-0B32-4B1C-94C4-91F13D77E00A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F2CAD9E0-0B32-4B1C-94C4-91F13D77E00A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F2CAD9E0-0B32-4B1C-94C4-91F13D77E00A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F2CAD9E0-0B32-4B1C-94C4-91F13D77E00A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
#endregion
namespace OilSaber
{
/// <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 OilSaber();
game.Run();
}
}
}
\ No newline at end of file
using System.Collections.Generic;
using Jypeli;
namespace OilSaber;
/// @author konst
/// @version 16.02.2025
/// <summary>
///
/// </summary>
public class OilSaber : PhysicsGame
{
/// <summary>
/// Määritellään lista pelaajan painikkeille
/// </summary>
private HashSet<Key> _painikkeet = new HashSet<Key>();
/// <summary>
/// laskuri pelaajan Hp:lle
/// </summary>
private int _pelaajaHp = 3;
/// <summary>
/// Lista möröille
/// </summary>
private List<PhysicsObject> _morkot = new List<PhysicsObject>();
/// <summary>
/// Lista Morko2:llie
/// </summary>
private List<PhysicsObject> _morkot2 = new List<PhysicsObject>();
/// <summary>
/// tehdään vihollisista globaaleja muuttujia, jotta niitä voidaan käyttää aliohjelmissa
/// </summary>
private PhysicsObject _morko2;
/// <summary>
/// Tehdään pelaajasta globaali muuttuja, jotta sitä voidaan käyttää aliohjelmissa
/// </summary>
private PhysicsObject _pelaaja;
/// <summary>
/// Tehdään pisteistä globaali muuttuja, jotta sitä voidaan käyttää aliohjelmissa
/// </summary>
private int _pisteet;
private Label _pistelaskuri;
private Label _pelaajaHpLaskuri;
public override void Begin()
{
Level.Background.Color = Color.Black;
LisaaPelaaja();
Pistelaskuri();
_Tarkistamorot();
MorkoSuunnistus();
UpdateLiike();
_kuuntelepainikkeet();
//Pelaajan hp laskuri
_pelaajaHpLaskuri = new Label();
_pelaajaHpLaskuri.TextColor = Color.White;
_pelaajaHpLaskuri.BorderColor = Color.Black;
_pelaajaHpLaskuri.Position = new Vector(Screen.Right -100, Screen.Top - 50);
_pelaajaHpLaskuri.Text = "Hp:" + _pelaajaHp;
Add(_pelaajaHpLaskuri);
//ajastin tarkistaa joka 1,5s välein onko mörköjä jäljellä ja kutsuu tarvittaessa "tarkistamorot"
Timer onkoVihollista = new Timer();
onkoVihollista.Interval = 1.5;
onkoVihollista.Timeout += _Tarkistamorot;
onkoVihollista.Start();
}
/// <summary>
/// Pelin painikkeiden määrrittely
/// </summary>
private void _kuuntelepainikkeet()
{
Keyboard.Listen(Key.Up, ButtonState.Pressed, Lisaasuunta, "liikuta pelaaja ylös", Key.Up);
Keyboard.Listen(Key.Up, ButtonState.Released, Poistasuunta, "pysäytä pelaaja", Key.Up);
Keyboard.Listen(Key.Down, ButtonState.Pressed, Lisaasuunta, "liikuta pelaaja alas", Key.Down);
Keyboard.Listen(Key.Down, ButtonState.Released, Poistasuunta, "pysäytä pelaaja", Key.Down);
Keyboard.Listen(Key.Left, ButtonState.Pressed, Lisaasuunta, "liikuta pelaaja vasemmalle", Key.Left);
Keyboard.Listen(Key.Left, ButtonState.Released, Poistasuunta, "pyäytä pelaaja", Key.Left);
Keyboard.Listen(Key.Right, ButtonState.Pressed, Lisaasuunta, "liikuta pelaaja oikealle", Key.Right);
Keyboard.Listen(Key.Right, ButtonState.Released, Poistasuunta, "pyäytä pelaaja", Key.Right);
//ampumisen painikkeen määrrittely
Keyboard.Listen(Key.Space, ButtonState.Pressed, PelaajaAmmu, "pelaaja ampuu");
// pelistä poistuminen
Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
}
/// <summary>
/// ajastin mörköjen suunnan vaihteluun
/// </summary>
private void MorkoSuunnistus()
{
Timer morkoSuunta = new Timer();
morkoSuunta.Interval = 3;
morkoSuunta.Timeout += VaihdaMorkojenSuunta;
morkoSuunta.Start();
}
/// <summary>
/// Pistelaskuri
/// </summary>
private void Pistelaskuri()
{
_pistelaskuri = new Label();
_pistelaskuri.TextColor = Color.LightYellow;
_pistelaskuri.BorderColor = Color.Black;
_pistelaskuri.Position = new Vector(Screen.Left + 100, Screen.Top - 50);
_pistelaskuri.Text = "Pisteet:0";
Add(_pistelaskuri);
}
/// <summary>
/// pelaaja
/// </summary>
private void LisaaPelaaja()
{
_pelaaja = new PhysicsObject(45, 45, Shape.Rectangle);
_pelaaja.Color = Color.Blue;
_pelaaja.Tag = "pelaaja";
Add(_pelaaja);
_pelaaja.MaxVelocity = 400;
}
/// <summary>
/// pelaajan hp joka tyhjentyessään tuhoaa pelaajan(Morko2)
/// </summary>
/// <param name="morko2"></param>
/// <param name="toinen"></param>
private void _TarkistaHp2(PhysicsObject morko2, PhysicsObject toinen)
{
if (toinen.Tag.ToString() == "pelaaja")
{
_pelaajaHp--;
if (_pelaajaHp <= 0)
{
Remove(_pelaaja);
MessageDisplay.Add("Tuhouduit!");
}
else
{
MessageDisplay.Add(_pelaajaHp + "/3 HP");
}
}
}
/// <summary>
/// pelaajan hp joka tyhjentyessään tuhoaa pelaajan
/// </summary>
/// <param name="morko"></param>
/// <param name="toinen"></param>
private void _TarkistaHp(PhysicsObject morko, PhysicsObject toinen)
{
if (toinen.Tag.ToString()== "pelaaja")
{
_pelaajaHp--;
if (_pelaajaHp <= 0)
{
Remove(_pelaaja);
MessageDisplay.Add("Tuhouduit!");
ConfirmExit();
}
else
{
MessageDisplay.Add(_pelaajaHp + "/3 HP");
}
_pelaajaHpLaskuri.Text = "HP:" + _pelaajaHp;
}
}
/// <summary>
/// funktio jolla mörkö2 tuhotaan
/// </summary>
/// <param name="morko2"></param>
/// <param name="toinen"></param>
private void Morkotuhoa2(PhysicsObject morko2, PhysicsObject toinen)
{
if (toinen.Tag.ToString() == "luoti")
{
Remove(morko2);
_morkot2.Remove(morko2);
Remove(toinen);
}
MessageDisplay.Clear();
MessageDisplay.Add("+10p");
_pisteet += 15;
_pistelaskuri.Text = "Pisteet:" + _pisteet;
}
/// <summary>
/// funktio jolla möröt tuhotaan
/// </summary>
/// <param name="morko"></param>
/// <param name="toinen"></param>
private void Morkotuhoa(PhysicsObject morko, PhysicsObject toinen)
{
if (toinen.Tag.ToString()== "luoti")
{
Remove(morko);
_morkot.Remove(morko);
Remove(toinen);
}
MessageDisplay.Clear();
MessageDisplay.Add("+10p");
_pisteet += 10;
_pistelaskuri.Text = "Pisteet:" + _pisteet;
}
/// <summary>
/// pelaajan hp joka tyhjentyessään tuhoaa pelaajan(Morko2ampuu)
/// </summary>
/// <param name="uusiLuoti2"></param>
/// <param name="toinen"></param>
private void _TarkistaHP3(PhysicsObject uusiLuoti2, PhysicsObject toinen)
{
if (toinen.Tag.ToString() == "pelaaja")
{
_pelaajaHp--;
if (_pelaajaHp <= 0)
{
Remove(_pelaaja);
MessageDisplay.Add("Tuhouduit!");
ConfirmExit();
}
else
{
MessageDisplay.Add(_pelaajaHp + "/3 HP");
}
_pelaajaHpLaskuri.Text = "HP:" + _pelaajaHp;
}
}
/// <summary>
/// määritellään Mörkö2 ampuminen pelaajaa kohti
/// </summary>
/// <param name="morko2"></param>
private void Ammu2(PhysicsObject morko2)
{
PhysicsObject uusiLuoti2 = new PhysicsObject(10, 10, Shape.Diamond);
uusiLuoti2.Color = Color.Pink;
Vector suunta = (_pelaaja.Position - morko2.Position).Normalize(); //laskee pelaajan vektorin
uusiLuoti2.Position = morko2.Position + suunta;
uusiLuoti2.Velocity = suunta * 700;
uusiLuoti2.CollisionIgnoreGroup = 2; // Estetään törmäykset Mörköjen kanssa kanssa
uusiLuoti2.Tag = "luoti2"; //tunniste törmäystä varten
AddCollisionHandler(uusiLuoti2, _TarkistaHP3);// mahdollistetaan pelaajan vahingoittaminen
Add(uusiLuoti2);
Timer.SingleShot(3.0, () => Remove(uusiLuoti2)); // Poistetaan luoti kun se menee liian pitkälle
}
/// <summary>
/// Kutsutaan Ammu2 jokaiselle morko2:lle
/// </summary>
private void _Morko2ampuu()
{
foreach(var morko2 in _morkot2)
{
Ammu2(morko2);
}
}
/// <summary>
/// määritellään luoti ja sen liikkuminen
/// </summary>
private void Ammu()
{
PhysicsObject uusiLuoti = new PhysicsObject(5, 10, Shape.Diamond);
uusiLuoti.Color = Color.Red;
uusiLuoti.Position = _pelaaja.Position + new Vector(0, 20);
uusiLuoti.Velocity = new Vector(0, 700);
uusiLuoti.CollisionIgnoreGroup = 1; // Estetään törmäykset pelaajan kanssa
uusiLuoti.Tag = "luoti"; //tunniste törmäystä varten
Add(uusiLuoti);
Timer.SingleShot(3.0, () => Remove(uusiLuoti)); // Poistetaan luoti kun se menee liian korkealle
}
/// <summary>
/// pelaaja ampuu
/// </summary>
private void PelaajaAmmu()
{
Ammu();
}
/// <summary>
/// Päivittää painettujen painikkeiden listan ja määrittelee miten pelaaja liikkuu
/// </summary>
private void UpdateLiike()
{
Vector liike = new Vector();
if (_painikkeet.Contains(Key.Up)) liike += new Vector(0, 300);
if (_painikkeet.Contains(Key.Down)) liike += new Vector(0, -300);
if (_painikkeet.Contains(Key.Left)) liike += new Vector(-300, 0);
if (_painikkeet.Contains(Key.Right)) liike += new Vector(300, 0);
_pelaaja.Velocity = liike;
}
/// <summary>
/// lista johon lisätään painetut painikkeet ja päivitetään tilanne
/// </summary>
/// <param name="painike"></param>
private void Lisaasuunta(Key painike)
{
_painikkeet.Add(painike);
UpdateLiike();
}
/// <summary>
/// lista josta poistetaan vapautetu painikkeet ja päivitetään tilanne
/// </summary>
/// <param name="painike"></param>
private void Poistasuunta(Key painike)
{
_painikkeet.Remove(painike);
UpdateLiike();
}
/// <summary>
/// funktio tarkistaa onko mörköjä jäljellä. Jos ei ole, niin se lisää niitä
/// </summary>
private void _Tarkistamorot()
{
if (_morkot.Count == 00)
{
LisaaMorko(5);
if (_morkot2.Count == 00)
{
}
{
LisaaMorko2(3);
}
}
}
/// <summary>
/// funktio mörköjen suunnan vaihtamiselle
/// </summary>
private void VaihdaMorkojenSuunta()
{
foreach (var morko in _morkot)
{
if (morko.Left < Level.Left ||
morko.Right > Level.Right) //jos möröt ovat ruudun reunalla, niin ne kääntyvät
{
morko.Velocity = -morko.Velocity;
}
if (morko.Top > Level.Top ||
morko.Bottom < Level.Bottom) //jos möröt ovat ruudun reunalla, niin ne kääntyvät
{
morko.Velocity = -morko.Velocity;
}
if (_pelaaja != null)
{
Vector suunta = (_pelaaja.Position - morko.Position).Normalize(); //laskee pelaajan vektorin
morko.Move(suunta * 200); //lähettää möröt pelaajaa kohti
}
}
foreach (var morko2 in _morkot2)
{
if (morko2.Left < Level.Left ||
morko2.Right > Level.Right) //jos möröt ovat ruudun reunalla, niin ne kääntyvät
{
morko2.Velocity = -morko2.Velocity;
}
if (morko2.Top > Level.Top ||
morko2.Bottom < Level.Bottom) //jos möröt ovat ruudun reunalla, niin ne kääntyvät
{
morko2.Velocity = -morko2.Velocity;
}
if (_pelaaja != null)
{
Vector suunta = (_pelaaja.Position - morko2.Position).Normalize(); //laskee pelaajan vektorin
morko2.Move(suunta * 200); //lähettää möröt pelaajaa kohti
}
}
}
/// <summary>
/// Morko2
/// </summary>
/// <param name="maara"></param>
private void LisaaMorko2(int maara)
{
for (int i = 0; i < maara; i++)
{
_morko2 = new PhysicsObject(70, 70, Shape.Circle);
_morko2.Color = Color.OrangeRed;
_morko2.Tag = "Morko2";
double x = RandomGen.NextDouble(Level.Left, Level.Right);
double y = Level.Top;
_morko2.CollisionIgnoreGroup = 2;
_morko2.Position = new Vector(x, y); // Aseta satunnainen sijainti
_morko2.Velocity = new Vector(0, -200);
AddCollisionHandler(_morko2, Morkotuhoa2); //törmäyskäsittelijä jolla pelaaja voi tuhota mörköjä
AddCollisionHandler(_morko2, _TarkistaHp2); //törmäyskäsittelijä, jolla pelaaja voidaan tuhota
Add(_morko2);
_morkot2.Add(_morko2);
//ajastin ampumiselle
Timer morko2AmpumisAika = new Timer();
morko2AmpumisAika.Interval = 3;
if (_pelaaja != null || _morko2 != null)
{
morko2AmpumisAika.Timeout += _Morko2ampuu;
}
morko2AmpumisAika.Start();
}
}
/// <summary>
/// Mörkö
/// </summary>
/// <param name="maara"></param>
private void LisaaMorko(int maara)
{
for (int i = 0; i < maara; i++)
{
PhysicsObject morko = new PhysicsObject(30, 30, Shape.Circle);
morko.Color = Color.Green;
morko.Tag = "Morko";
double x = RandomGen.NextDouble(Level.Left, Level.Right);
double y = Level.Top;
morko.CollisionIgnoreGroup = 2;
morko.Position = new Vector(x, y); // Aseta satunnainen sijainti
morko.Velocity = new Vector(0, -100);
AddCollisionHandler(morko, Morkotuhoa); //törmäyskäsittelijä jolla pelaaja voi tuhota mörköjä
AddCollisionHandler(morko, _TarkistaHp); //törmäyskäsittelijä, jolla pelaaja voidaan tuhota
Add(morko);
_morkot.Add(morko);
}
}
}
<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>
</Project>
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/.idea.demo 7 t 2.iml
/contentModel.xml
/modules.xml
/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

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "demo 7 t 2", "demo 7 t 2\demo 7 t 2.csproj", "{CC8AFAEB-7623-4CA9-94AC-3EF1CE01554B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{CC8AFAEB-7623-4CA9-94AC-3EF1CE01554B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CC8AFAEB-7623-4CA9-94AC-3EF1CE01554B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CC8AFAEB-7623-4CA9-94AC-3EF1CE01554B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CC8AFAEB-7623-4CA9-94AC-3EF1CE01554B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal