C# interface

interface IPoint
{
int Px
{
get; set;
}
int Py
{
get; set;
}
}

class ReversePoint : IPoint
{
int x;
int y;

public ReversePoint(int x, int y)
{
    this.x = x;
    this.y = y;
}

public int Px
{
    get { return -x; }
    set { x = value; }
}

// Implementing Py similarly to Px
public int Py
{
    get { return -y; } // Return the negative of y
    set { y = value; } // Set y directly
}

}

class MainClass
{
public static void DisplayPoint( IPoint point)
{
Console.WriteLine(“x={0},y={1}”, point.Px, point.Py);
}

static void Main()
{
    ReversePoint p1 = new ReversePoint(-12, -300);

    Console.WriteLine(p1.Px);
    Console.WriteLine(p1.Py);

    ReversePoint p2 = new ReversePoint(12, 300);

    //プロパティの参照
    DisplayPoint(p2);
}

}

ポケモン

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
public float moveSpeed;
public LayerMask solidObjectsLayer;
public LayerMask grassLayer;

private bool isMoving;
private Vector2 input;

private Animator animator;

private void Awake()
{
    animator = GetComponent<Animator>();
}
private void Update()
{
       if (!isMoving)
        {
        input.x = Input.GetAxisRaw("Horizontal");
        input.y = Input.GetAxisRaw("Vertical");

        //remove diagonal movement
        if (input.x != 0) input.y = 0;

        if(input != Vector2.zero)
        {
            animator.SetFloat("moveX", input.x);
            animator.SetFloat("moveY", input.y);
            var targetPos = transform.position;
            targetPos.x += input.x;
            targetPos.y += input.y;

            if(IsWalkable(targetPos))
            StartCoroutine(Move(targetPos));
        }
    }

    animator.SetBool("isMoving", isMoving);
}
IEnumerator Move(Vector3 targetPos)
{
    isMoving = true;

    while ((targetPos - transform.position).sqrMagnitude > Mathf.Epsilon)
    {
        transform.position = Vector3.MoveTowards(transform.position, targetPos, moveSpeed * Time.deltaTime);
        yield return null;
    }
    transform.position = targetPos; // 目標位置に合わせて最終位置を設定

    isMoving = false;

    CheckForEncounters();
}

private bool IsWalkable(Vector3 tagetPos)
{
    if(Physics2D.OverlapCircle(tagetPos, 0.2f, solidObjectsLayer) != null)
    {
        return false;
    }

    return true;
}

private void CheckForEncounters()
{
    if(Physics2D.OverlapCircle(transform.position, 0.2f, grassLayer) != null)
    {
        if(Random.Range(1, 101) <= 10)
        {
            Debug.Log("野生のポケモンに遭遇した");
        }
   
}

}

PlayerController.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[CreateAssetMenu(fileName = “ポケモン”, menuName = “ポケモン/新しいポケモンを作成する”)]
public class PokemonBase : ScriptableObject
{
[SerializeField] string name;

[TextArea]
[SerializeField] string description;

[SerializeField] Sprite frontSprite;
[SerializeField] Sprite backSprite;

[SerializeField] PokemonType type1;
[SerializeField] PokemonType type2;

//Base Stats
[SerializeField] int maxHp;
[SerializeField] int attack;
[SerializeField] int defense;
[SerializeField] int spAttack;
[SerializeField] int spDefense;
[SerializeField] int speed;

}

public enum PokemonType
{
None,
Normal,
Fire,
Water,
Electric,
Grass,
Ice,
Fighting,
Poison,
Ground,
Flying,
Psychic,
Bug,
Rock,
Ghost,
Dragon
}

PokemonBase

C# オーバーライド

using System;

//基本クラス
class Music
{
public virtual void BaseInfo()
{
Console.WriteLine(“Music”);
}
}

//派生クラス
class Song : Music
{
public override void BaseInfo()
{
Console.WriteLine(“Song”);
}
}

//派生クラス
class Music2 : Music
{
new public void BaseInfo()
{
Console.WriteLine(“Music2”);
}
}

class MainClass
{
static void Main()
{
Song s = new Song();
s.BaseInfo();

    Music2 m2 = new Music2();
    m2.BaseInfo();

    Music m = new Music();
    m.BaseInfo();
}

}

PHPの魅力とは?

PHPのシンタックスのシンプルさ

PHPは、C言語に似たシンタックスを持つプログラミング言語であり、初心者にも扱いやすい特徴があります。変数の宣言や条件分岐、ループなど、基本的なプログラミングの要素が直感的に理解しやすくなっています。また、PHPはウェブ開発に特化した言語として広く使われており、ウェブページの動的な生成やデータベースへのアクセスなど、さまざまなウェブアプリケーション開発に使用されます。さらに、PHPはオープンソースとして開発されており、多くの開発者から支持を受けています。多くのフレームワークやライブラリが存在し、効率的なウェブ開発が可能です。PHPはコンパイル型言語ではなく、インタープリタ型言語ですが、高速な実行が可能です。サーバーサイドで動作するため、処理速度に優れており、大規模なウェブサイトでもスムーズな動作が期待できます。また、PHPはさまざまなプラグインやモジュールを利用することができ、拡張性が高いです。ユーザー定義関数やカスタムライブラリの作成も容易であり、自分好みの開発環境を構築することができます。

PHPの広範な用途

PHPは、Web開発に特化した言語として広く使われています。ウェブページの動的な生成やデータベースへのアクセスなど、さまざまなウェブアプリケーション開発に使用されます。PHPには多くのフレームワークやライブラリが存在し、効率的なウェブ開発が可能です。また、PHPはインタープリタ型言語でありながら高速な実行が可能です。サーバーサイドで動作するため、処理速度に優れており、大規模なウェブサイトでもスムーズな動作が期待できます。さらに、PHPは拡張性も高く、さまざまなプラグインやモジュールを利用することができます。ユーザー定義関数やカスタムライブラリの作成も容易であり、自分好みの開発環境を構築することができます。PHPは広範な用途があるだけでなく、シンタックスのシンプルさや巨大なコミュニティのサポートなど、多くの魅力を持っています。

PHPの巨大なコミュニティ

PHPは、オープンソースとして開発されており、多くの開発者から支持を受けています。多くのフレームワークやライブラリが存在し、効率的なウェブ開発が可能です。また、PHPは、サーバーサイドで動作するため、処理速度に優れており、大規模なウェブサイトでもスムーズな動作が期待できます。さらに、PHPは拡張性が高く、さまざまなプラグインやモジュールを利用することができます。ユーザー定義関数やカスタムライブラリの作成も容易であり、自分好みの開発環境を構築することができます。PHPのこれらの特徴により、多くの開発者がPHPを選択し、広範な用途に活用しています。

PHPの高速な実行速度

PHPはインタープリタ型言語でありながら高速な処理速度を誇っています。サーバーサイドで動作するため、大規模なウェブサイトでもスムーズな動作が期待できます。また、PHPはコンパイル型言語ではないため、実行にかかる時間を短縮することができます。これにより、ユーザーからのリクエストに対し、迅速に応答することが可能です。PHPの高速な実行速度は、ウェブアプリケーションのパフォーマンスを向上させるためには欠かせない要素です。

PHPの拡張性と柔軟性

PHPは、さまざまなプラグインやモジュールを利用することができ、拡張性が高いです。ユーザー定義関数やカスタムライブラリの作成も容易であり、自分好みの開発環境を構築することができます。PHPの柔軟性は、開発者が独自の要件に合わせてカスタマイズすることができるため、幅広い用途に対応することが可能です。また、PHPの拡張性によって、他のプログラミング言語やフレームワークとの連携も容易に行うことができます。これによって、既存のシステムにPHPを組み込むことができるため、互換性のある開発環境を構築することができます。

PHP

‘Mark’, ‘Age’ => 15, ‘Weight’ => 46), array(‘Name’ => ‘John’, ‘Age’ => 13, ‘Weight’ => 65), array(‘Name’ => ‘Tom’, ‘Age’ => 14, ‘Weight’ => 56) ); foreach ($students as $student) { echo $student[‘Name’] . ‘ ‘ . $student[‘Age’] . ‘ ‘ . $student[‘Weight’] . ‘
‘; } ?>

UNIX コマンド

dotinstall:~ $ echo ‘data’
data
dotinstall:~ $ echo ‘date’ > commands.txt
dotinstall:~ $ cat commands.txt
date
dotinstall:~ $ echo ‘cal’ > commands.txt
dotinstall:~ $ cat commands.txt
cal
dotinstall:~ $ echo ‘date’ >> commands.txt
dotinstall:~ $ cat commands.txt
cal
date
dotinstall:~ $ /bin/ash < commands.txt
September 2023
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Tue Sep 12 06:18:41 JST 2023
dotinstall:~ $ /bin/ash < commands.txt > results.txt
dotinstall:~ $ cat results.txt
September 2023
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Tue Sep 12 06:19:05 JST 2023
dotinstall:~ $ rm *
dotinstall:~ $