Az alábbi feladatok megoldhatók Unity-n belül, de akár C# parancssori alkalmazásban is.
Szükséged van a megfelelő programkönyvtárra (névtérre).
Tehát a file elején mindenképp írd ki: using UnityEngine;
Ekkor a bemenő értékek beolvasását végezheted a [SerializeField] tagváltozókkal.
A kimenő adatokat pedig kiírathatod Debug.Log() metódus segítségével vagy felvehetsz erre a célra is [SerializeField] tagváltozókat.
A Unity matematikai könyvtárát Mathf néven éred el.
Ne feledd el, hogy megírt MonoBehaviour scripteket, hozzá kell adni egy GameObject-hez!
Szükséged van a megfelelő programkönyvtárra (névtérre).
Tehát a file elején mindenképp írd ki: using System;
Ekkor a bemenő értékek beolvasását végezheted a Console.ReadLine() metódussal.
A kimenő adatokat pedig kiírathatod Console.WriteLine() segítségével.
A C# matematikai könyvtárát Math néven éred el.
using UnityEngine;
OnValidate() Unity üzenetmetódust.Ehelyett használhatsz Start() metódust is, ami az objektum létrejöttekor fut le.
Vagy, olvasd el az OnValidate()-ről szóló elméleti leckét: Az OnValidate metódus.
Írj programot, ami, bemenete egy egész szám és az alapján elkészít egy string-et, ami szövegesen tartalmazza, hogy a bemeneti szám páros, vagy páratlan!
Írj programot, aminek a bemenete egy egész szám number néven! A program kiírja a számokat 1-től number-ig.
// Beolvasás:
Console.WriteLine("Insert an integer number!");
string line = Console.ReadLine();
int number = int.Parse(line);
// Kiíratás:
int i = 1;
while (i <= number)
{
Console.WriteLine(i);
i++;
}
// Ugyanez for ciklussal
for (int j = 1; j < number; j++)
{
Console.WriteLine(j);
}using UnityEngine;
class Counter : MonoBehaviour
{
[SerializeField] int number; // Bemeneti változó
void Start()
{
// While ciklussal:
int i = 1;
while (i <= number)
{
Console.WriteLine(i);
i++;
}
// For ciklussal
for (int j = 1; j < number; j++)
{
Debug.Log(j);
}
}
}Írj programot, aminek a bemenete egy egész szám number néven!
A program készít EGY string-et a számokból 1-től number-ig vesszővel elválasztva őket, majd kiírja ezt a string-et a konzolra.
Bemenet: 6
Kimenet: "1, 2, 3, 4, 5, 6"
Írj programot, ami addig olvas be egész számokat a konzolról, amíg a felhasználó be nem írja a
“vége” szót! Ekkor a program pontosan kiírja a beírt számok átlagát.
Írj programot, ami bemenete egy egész szám number néven. A program kiszámolja az első number darab pozitív egész szám összegét!
number= 3 eredmény = 1 + 2 + 3 = 6number= 6 eredmény = 1 + 2 + 3 + 4 + 5 + 6 = 21number= 10 eredmény = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55
using UnityEngine;
class SumOfNumbers: MonoBehaviour
{
[SerializeField] int number; // Bemenet
[SerializeField] int sum; // Kimenet
void OnValidate()
{
sum = 0; // Nulla értékkel kezdünk
for (int i = 1; i <= number; i++)
sum += i;
}
}// Beolvasás
Console.WriteLine("Insert the Number!");
string line = Console.ReadLine();
int number = int.Parse(line);
// Száítások elvégzése
int summa = 0; // Nulla értékkel kezdünk
for (int i = 1; i <= number; i++)
summa += i;
// Kiíratás
Console.WriteLine("Summa: " + summa);Írj programot, ami bemenete egy egész szám number néven és kiszámolja az első number darab páratlan szám összegét és átlagát!
number = 6
summa = 1 + 3 + 5 + 7 + 9 + 11 = 36
mean = 36 / 6 = 6
// Beolvasás
Console.WriteLine("Insert the Number!");
string line = Console.ReadLine();
int number = int.Parse(line);
// Száítások elvégzése
int summa = 0; // Nulla értékkel kezdünk
for (int i = 0; i < number; i++)
summa += i;
// Kiíratás
Console.WriteLine("Summa: " + summa);class SumOfEvens : MonoBehaviour
{
[SerializeField] int number; // Bemeneti változó
// Kimeneti változók:
[SerializeField] int summa;
[SerializeField] int mean;
void OnValidate()
{
summa = 0; // Nulla értékkel kezdünk
for (int i = 0; i < number; i++)
summa += 1 + (2 * i);
mean = summa / number;
}
}Írj programot ami 2 számot kér a bemenetről, majd kiírja a kisebbiket és a nagyobbikat.
class MinMax: MonoBehaviour
{
[SerializeField] int number1, number2; // Bemenet
[SerializeField] int min, max; // Kimenet
void OnValidate()
{
if (number1 > number2)
{
min = number2;
max = number1;
}
else
{
min = number1;
max = number2;
}
}
}Írj programot, aminek a bemenete 5 lebegőpontos szám, majd ezek közül kiszámolja a legnagyobbat és a legkisebbet!
Írj programot, aminek a bemenete egy egész szám number néven!
A programot kiírja a számokat a konzolra 1-től number-ig, de…
- Ha a szám 3 többszöröse, a szám helyett:
"Fizz"-t írjon! - Ha a szám 5 többszöröse, akkor
"Buzz"-t írjon! - Ha a szám 3 és 5 többszöröse is, akkor
"FizzBuzz"-t írjon! - Minden egyéb esetben a számot magát írja ki!
Írj programot, aminek két bemenete van! Mindkettő egész szám:
baseNumber(alap)exponent(kitevő)
A program számolja ki baseNumber szám exponent-edik hatványát!
Elég, ha a megoldás csak nem negatív egész kitevő (exponent) esetén működik.
⚠️ Ne használj egyéb metódust a megoldáshoz! ⚠️
baseNumber = 3
exponent = 4
végeredmény = 34=3∗3∗3∗3=81
class LeastCommonMultiple : MonoBehaviour
{
// Bemenetek
[SerializeField] int baseNumber = 1;
[SerializeField, Min(0)] int exponent = 1;
// Kimenet
[SerializeField] int power;
void OnValidate()
{
power = 1;
for (int i = 0; i < exponent; i++)
power *= baseNumber;
}
}Írj programot, aminek két bemenete van! Mindkettő egész szám:
baseNumber(alap)count(darabszám)
A program kiszámolja a baseNumber első count darab hatványának összegét a 0-dik hatványtól kezdve.
Elég, ha a megoldás csak nem negatív egész kitevő (exponent) esetén működik.
baseNumber = 3, exponent = 4
Végeredmény =30+31+32+33=1+3+9+27=40
Írj programot, ami egy bemeneti egész számról eldönti és kiírja, hogy prím-e.
Írj programot, ami a bemeneten kap egy egész számot kiírja a megadott szám szorzótábláját 1-től 10-ig.
Bemenet: 13
Konzolra kiírandó szöveg:
1 * 13 = 13 2 * 13 = 26 3 * 13 = 39 ... 10 * 13 = 130
class SimpleMultiplicationTable : MonoBehaviour
{
[SerializeField] int number; // Bemeneti változó
void Start()
{
for (int i = 1; i <= 10; i++)
Debug.Log($"{i} * {number} = {i * number}");
}
}// Beolvasás:
Console.WriteLine("Insert the Number!");
string line1 = Console.ReadLine();
int number = int.Parse(line1);
// Kiiratás
for (int i = 1; i <= 10; i++)
Console.WriteLine($"{i} * {number} = {i * number}");Írj programot, ami kiírja a szorzótáblát!
1 * 1 = 1 2 * 1 = 2 … 9 * 10 = 90 10 * 10 = 100
class MultiplicationTable: MonoBehaviour
{
void Start()
{
// Két egymásba ágyazott for ciklussal oldom meg a problémát.
for (int i = 1; i <= 10; i++)
{
for (int j = 1; j <= 10; j++)
{
Debug.Log($"{i} * {j} = {i * j}");
}
}
}
}// Két egymásba ágyazott for ciklussal oldom meg a problémát.
for (int i = 1; i <= 10; i++)
{
for (int j = 1; j <= 10; j++)
{
Console.WriteLine($"{i} * {j} = {i * j}");
}
}Írj programot, ami két bemeneti egész számnak kiszámolja a legkisebb közös többszörösét!
class LeastCommonMultiple : MonoBehaviour
{
[SerializeField, Min(1)] int a, b; // Bemenő adatok
[SerializeField] int leastCommonMultiple; // Kimenő adat
void OnValidate()
{
int min = Mathf.Min(a, b);
int max = Mathf.Max(a, b);
leastCommonMultiple = max * 2;
while (leastCommonMultiple % min != 0)
{
leastCommonMultiple += max;
}
}
}Írj Unity MonoBehaviour komponenst, ami egy fegyvert reprezentál!
A komponensnek 3 beállítása van:
- Betöltött lőszerek száma
- Meglévő tárak száma
- Töltények száma 1 tárban
A komponens működése: Ha megnyomjuk a lövés (space) gombot, akkor…
- Ha van lőszer ”betöltve”, akkor kiírja, hogy
“Bumm”és csökken a lőszerek száma. - Ha elfogy a betöltött lőszer, akkor kiírja, hogy
“Klikk”és megpróbál újratölteni: - Ha van szabad tár, akkor elhasznál belőle egyet és újratölti vele a fegyvert:
- Eggyel kevesebb tárunk lesz.
- A betöltött lőszerek száma annyi lesz, amennyi lőszer van egy tárban.
- Ha elfogyott a lőszer, és szabad tárunk sincs, akkor nem tudunk újratölteni.
Írj Unity MonoBehaviour komponenst, ami egy fegyvert reprezentál!
A komponensnek 5 beállítása van:
- Automata-e a fegyver? (Gépfegyver-e)
- Betöltött lőszerek száma
- Meglévő tárak száma
- Töltények száma 1 tárban
- Mennyi idő kell az utolsó lövés után, hogy újra tudjunk lőni. (Cooldown)
A komponens 2 inputra figyel:
- Bal egérgomb: Lövés
- Jobb egérgomb: Feltöltés
A komponens működése:
- Ha automata a fegyver, akkor a lövés gomb nyomva tartására folyamatosan lő.
- Ha NEM automata a fegyver, akkor a lövés gomb lenyomására egyszer lő.
- Csak akkor tudunk lőni, ha letelt a minimum idő az előző lövés után.
- Csak akkor tudunk lőni, ha van lőszer ”betöltve”
- Ha tudunk lőni, akkor kiírja, hogy
“Bumm”és eggyel csökken a betöltött lőszerek száma. - Ha nem tudunk lőni, kiírja, hogy
“Klikk”. - Ha lenyomjuk a feltöltés gombot és van szabad tár, akkor elhasznál belőle egyet és újra tölti vele a fegyvert:
- Eggyel kevesebb tárunk lesz.
- A betöltött lőszerek száma annyi lesz, amennyi lőszer van egy tárban.
- Kiírja, hogy
“Feltölt”. - Ha elfogyott a szabad tárunk sincs, akkor nem tudunk újra tölteni.
Írj programot, ami kiírja 1 és 100 közt az összes olyan számot, amire igaz, hogy osztható 3-mal vagy 7-tel.
class From1To100: MonoBehaviour
{
void Start()
{
for (int i = 1; i <= 100; i++) // 1-től 100-ig léptetjük i értékét
{
if (i % 3 == 0 || i % 7 == 0) // Ha találtunk egy helyes megoldást...
Debug.Log(i); // Kiírjuk a számot.
}
}
}Írj programoz, ami kiírja 1 és 200 közt az összes olyan számot, amire igaz, hogy osztható 3-mal.
class From1To100: MonoBehaviour
{
void Start()
{
// 3-től 200-ig léptetjük i értékét 3-anklént
for (int i = 3; i <= 200; i+=3)
{
Debug.Log(i); // Kiírjuk a számot.
}
}
}Írj programoz, ami kiírja az első 100 olyan pozitív egész számot, amire igaz, hogy osztható 3-mal vagy 7-tel.