π― μ€λμ μμΉ¨μ μ½λ© μκ³ λ¦¬μ¦μ νλ² λ ν΄μν΄λ³΄κ³ , κ°μΈ κ³Όμ λ₯Ό 본격μ μΌλ‘ μμνλ€.
μ¬ν κ³Όμ λ€ λ³΄λ λ΄μ©μ΄ μ’ μ΄λ €μμ μ°μ κΈ°λ° μμ
μ μ§ννλ©΄μ μ‘°κΈμ© μΆκ°νλ λλμΌλ‘ νλ€.
β νΌλΌλ―Έλ*
void main() { int rows = 5; // κ°μ for (var i = 1; i <= rows; i++) { var space = " "*(rows-i); var star = "*"*(i*2-1); print(space + star); } }π λ€λ₯Έ μ½λ
pyramidOne() { int rows = 5; // νΌλΌλ―Έλ ν μ for (int i = 1; i <= rows; i++) { String spaces = ''; String stars = ''; // for (int j = 1; j <= rows - i; j++) { spaces += ' '; } for (int k = 1; k <= 2 * i - 1; k++) { stars += '*'; } print('$spaces$stars'); } }
β 2μ°¨μ λ°°μ΄μ λκ°μ ν© κ΅¬νκΈ°
void main() { List<List<int>> matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; matrixsquare(matrix); } void matrixSquare(List<List<int>> matrix) { int sumLeft = 0; // μΌμͺ½ λκ°μ int sumRight = 0; // μ€λ₯Έμͺ½ λκ°μ // μΌμͺ½ λκ°μ : (0,0), (1,1), (2,2) // μ€λ₯Έμͺ½ λκ°μ : (0,2), (1,1), (2,0) int n = matrix.length; for (int i = 0; i < n; i++) { sumLeft += matrix[i][i]; // μΌμͺ½ λκ°μ sumRight += matrix[i][n - i - 1]; // μ€λ₯Έμͺ½ λκ°μ } print('μΌμͺ½ λκ°μ ν©: $sumLeft'); print('μ€λ₯Έμͺ½ λκ°μ ν©: $sumRight'); }π λ€λ₯Έ μ½λ
matrixSquare() { List<List<int>> matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ]; // int sumLeft = 0; int sumRight = 0; // for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix.length; j++) { if (i == j) { sumLeft += matrix[i][j]; } // if (i+j == 2) { sumRight += matrix[i][j]; } } } print('Left: $sumLeft , Right: $sumRight'); }
test ν΄λ ꡬ쑰 λ³κ²½test/ βββ character_test.dart βββ monster_test.dart βββ battle_test.dart βββ data_test.dartπ¬ μ΄λ κ² μΈλΆννλκ² ν μ€νΈνκΈ° μ’λ€κ³ νλ¨ν΄μ λλ μ ν΄λ³Ό μμ μΈλ° νμμμΌλ©΄ μμ λ° ν΅ν©ν κ²
π
utils.dartabstract class Utils { String name = ""; int hp = 0; int attack = 0; int defense = 0; // Utils μμ±μ Utils({ required this.name, required this.hp, required this.attack, required this.defense, }); // μνμ°½ μΆλ ₯ void showStatus(); }π¬
characterμmonsterμ 곡ν΅λ μμ±κ³Ό λ©μλλ₯Ό μμλ°μ μ¬μ©νκΈ° μν΄abstractμΆμ ν΄λμ€λ₯Ό μμ±νλ€.
κ°μ λ°μμμ μ¬μ©ν κ±°κΈ° λλ¬Έμrequiredλ₯Ό μ¬μ©νμΌλ©°,thisλ‘ μ¬μ©μ λͺ ννκ² νλ€.
characterμ monsterμ statusλ₯Ό 보μ¬μ£ΌλshowStatus()λ λΉμλμ΄ μμ ν΄λμ€μμ μ¬μ μνκΈ°λ‘ νλ€.
π
character.dartclass Character extends Utils { Character({ required super.name, required super.hp, required super.attack, required super.defense, }); void attackMonster(Monster monster) { //print("${monster.hp} - ${attack}"); } // λ°©μ΄ void defend() {} // void showStatus() { print("$name - 체λ ₯ : $hp, 곡격λ ₯ : $attack, λ°©μ΄λ ₯ : $defense"); } }π¬
Utilsν΄λμ€λ₯Ό μμ λ°κ² νκ³ , λμΌν μμ±μ μ§λλ€.
attackMonsterλΆλΆλ μΆμν΄λμ€λ‘ λΊ μ μμ§λ§ λ°λ‘ λ©μλλͺ μ΄ λͺ μλμ΄ μκΈ° λλ¬Έμ λΉΌμ§λ μμλ€.
π
monster.dartclass Monster extends Utils { Monster({ required super.name, required super.hp, required super.attack, required super.defense, }); // void attackCharacter(Character character) {} // void showStatus() { print("$name - 체λ ₯ : $hp, 곡격λ ₯ : $attack"); } }π¬ λμΌνκ² μμ νμΌλ©°,
showStatus()λ§ μ¬μ μ ν΄μ£Όμλ€.
π
game.dartclass Game { Character character; List<Monster> monster; int defeatedCount; // Game(this.character, this.monster, this.defeatedCount); // κ²μ μμ void startGame() { print("μΊλ¦ν°μ μ΄λ¦μ μ λ ₯νμΈμ : "); // κ°μ΄ μ λλ‘ λ€μ΄μ€λμ§ κ²μ¦ print("κ²μμ μμν©λλ€!"); character.showStatus(); // while (true) { // λλ€ λͺ¬μ€ν° μΆν var randomMonster = getRandomMonster(); monster.remove(randomMonster); // μ ν¬ μ§ν var result = battle(randomMonster); if (!result) { print("μ¬λ§"); break; } // μ ν¬ μ±κ³΅ print("λ€μ λͺ¬μ€ν°μ λκ²°νμκ² μ΅λκΉ?"); // if (N) { // break; // } } // save(); } // μ ν¬ μ§ν λ‘μ§ bool battle(Monster monster) { while (true) { // μΊλ¦ν° ν΄ print("${character.name}μ ν΄"); print("νλμ μ ννμΈμ (1: 곡격, 2: λ°©μ΄) : "); // νλ λΆκΈ° //if (1μ λ ₯) print( "${character.name}μ΄(κ°) ${monster.name}μκ² ${character.attack}μ λ°λ―Έμ§λ₯Ό μ νμ΅λλ€."); //else (2μ λ ₯) print("${character.name}μ΄(κ°) λ°©μ΄νμΈλ₯Ό μ·¨νμ¬ 0 λ§νΌ 체λ ₯μ μ»μμ΅λλ€."); // if (hp <= 0) { // return false; // } // μν μΆλ ₯ character.showStatus(); // return true; // λͺ¬μ€ν° ν΄ print("${monster.name}μ ν΄"); print( "${monster.name}μ΄(κ°) ${character.name}μκ² ${monster.attack}μ λ°λ―Έμ§λ₯Ό μ νμ΅λλ€."); } } // λλ€μΌλ‘ λͺ¬μ€ν° μμ± Monster getRandomMonster() { print("μλ‘μ΄ λͺ¬μ€ν°κ° λνλ¬μ΅λλ€!"); monster[0].showStatus(); // Random() return monster[0]; } }π¬ μ°μ ν λ μμ μ μ°μ μΌλ‘ νκ³ , μ΄λ€ ν¨μλ₯Ό μΈμ§, μ΄λ€ λ©μλλ₯Ό νΈμΆν μ§ μ΄κ²μ κ² μ¨λ΄μ μ£ΌμμΌλ‘ μ’ μ½λκ° λ³΅μ‘νκΈ΄ νλ€.
μ΄κ±΄ λ΄μΌ μμ νλ©΄μ λ€ μμ΄μ§κ±°λ μμ λ μμ μ΄λ€.
π¬
battleμ΄ λ°λ³΅λκΈ° λλ¬ΈμstartGameμμκ° μλbattleμμ λ°λ³΅νκ² λ§λ€ κ²μ΄κ³ ,whileμ μ¬μ©ν μμ μ΄λ€.
boolνμ μ μ¬μ©νμ¬ true, falseλ₯Ό 리ν΄νμ¬ λ‘μ§μ΄ νλ¨ν κΈ°μ€μΌλ‘ μΈμ΄λ€.
π¬ λλ€ λͺ¬μ€ν°λ ꡬλΆνκ³ , ν΄μΉμ΄ λͺ¬μ€ν°κ° λνλμ§ μλλ‘ ν΄μΌνλ€.
κ·Έλ¦¬κ³ κ°μ’ κ²μμ’ λ£ μν©μ ꡬνν΄μΌνκ³ , λ°μ΄ν° μ½κΈ°μ μ°κΈ°λ κΈ°λ₯μ μΆκ°ν΄μΌλλ€.
λλ€ ν¨μ μ¬μ©νλ λ²λ μ²μμ΄λΌ νμ΅μ΄ νμνκΈ° λλ¬Έμ μ€λ₯κ° λ°μν κ²μ μμν΄μΌ ν κ² κ°λ€.
π
main.dartvoid main(List<String> arguments) { var char = Character(name: "μ¬κΈ°λ€λ£μΌμ ", hp: 0, attack: 0, defense: 0); var game = Game(char, [Monster(name: "b", hp: 0, attack: 0, defense: 0)], 0); game.startGame(); }π¬ μ κΉ ν μ€νΈνκΈ° μν μ½λλ‘ μ΅μ’ μμ λ¬Όμμλ ν¨μλ₯Ό νΈμΆνλ μ λλ§ ν κ²μ΄λ€.
π data.dart
class Data { // Map Load() { // ('chatet.text'); // ('monster.text'); // return { // 'char' : { // 'hp' : 5, // 'dd' : 2 // }, // 'monster' : { // 'hp' : 5 // } // }; // } // void save(dynamic result) { // File.write() // result // } } class Save { // 'hp' : '0', }π¬ λ°μ΄ν° μ½κΈ°, μ°κΈ°μ μ μ₯νκΈ° κΈ°λ₯μ΄ νμνκΈ° λλ¬Έμ λμΆ© νλ¦μ νμ νλ €κ³ .. μ¨μ κ·Έλ₯ μ£ΌμλΏμ΄λ€.
μ€μ λ‘ λ§λ ν¨μλ μλκ³ , κ·Έλ₯ μ΄λ€ κΈ°λ₯μ ν΄μΌμ§ μμ±ν΄λ κ²
β κ²μ κΈ°λ° μμ
βοΈ ν΄λμ€ λ° λ©μλ μμ±
βοΈ λ‘μ§ ν λ μμ
π± μ΄ ν λ μμ μ΄ μκ°λ³΄λ€ λ무... μ΄λ ΅λ€? μ€λκ±Έλ¦°λ€?
ꡬμμ νμ§λ§ μ΄κ±Έ μ½λλ‘ κ·Έλ €λ΄λ κ², κ·Έλ¦¬κ³ μΆμ ν΄λμ€ μ¬μ©λ², λ°μ΄ν°λ₯Ό λ°μμ€λ €λ©΄ μ΄λ€ μ½λλ₯Ό μ¨μΌνλμ§ λ± μ κ²½μΈκ² λ§μλ€.
κ·Έλ¦¬κ³ λ§₯μ μ¬μ©νλκΉ μ½κ° κ°μ§λ§ λ€λ₯Έ λλμ΄... μμ μ μ’ κ±Έλ Έλ κ² κ°κΈ°λ νκ³ μ무λλ λ ΈνΈλΆμ΄λκΉ νλ©΄μ΄ μμμ λΆνΈν κ°μ μμλλ° μ’ λ μ μ°ν νκ²½μμ μμ ν μ μμΌλ μ’μλ€.
νμ΅νλλ° μλΉν μκ°μ΄ κ±Έλ Έλλ°, μ μλλμ§λ μ€λ₯κ° μ μκΈ°μ§ κ·Όλ° νλ² μκ³ λλκΉ μ΄ TILμ μΈ λ΄μ©μ΄ λ³λ‘ μμμ λλ‘? λ λͺ°λλμ§ μκ°μ΄ μλ μ λλ‘ μ΄ν΄λ₯Ό ν΄μ κ·Έλ₯ κ°λ¨νκ² μ μ΄λ κ² κ΅¬ννλμ§λ§ μμ±νλ€.
π μ§μ§ λ무.. λ§λ§νλλ° μ°¨κ·Όμ°¨κ·Ό νμ΅νλκΉ λλ κ² κ°κΈ°λ νκ³ ... μμ§ κΈ°λ₯ ꡬνμ μ λλ‘ λμ§ μμκΈ° λλ¬Έμ λ΄μΌ λ μ΄μ¬ν ν΄λ΄μΌκ² λ€.
μ¨λ λ‘μ§λ§ κ·Έλλ‘ μνν μ μλ€λ©΄ λ΄μΌ κ±°μ μμ±μ νκ³ , λͺ©μμΌμ λμ κ³Όμ λ₯Ό μλν΄λ³Ό μ μμ§ μμκΉ μΆλ€.
λμ κ³Όμ μ¬μ© λ³Έκ²λ§μΌλ‘λ μΆκ°νκ±°λ κ³ μΉκ±°λ ν κ²μ΄ μ’ λλ κ² κ°μμ λ²μ¨ κ±±μ μ΄μ§λ§ μμ§ νμ κ³Όμ λ λͺ»νκΈ° λλ¬Έμ κ±±μ μ λμ€μΌλ‘ λ―Έλ€μΌμ§.