Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Miny - Zajímavosti a poznámky

Tento článek je součástí porovnání programovacích jazyků C#, Java a GameMaker při tvorbě klasických Min (MineSweeper) viz: -> Miny aneb porovnání programovacích jazyků C#, Java, GM

V C#

Vypnutí, programu v konstruktoru Formu

Pokud chcete vypnout program aniž by ještě skončil konstruktor okna -> aplikace neběží (v našem případě nepovede se nastavit rozměry či počet min).

Použijte:

Environment.Exit(-1);

Znovu vygenerování pole

V C# při použití tablelayoutu se celá aplikace nehorázně zaseká proto jsem použil Application.Res­tart(); jako nejjednoduší volbu. Nedoporučuji používat tablelayoutu k podobným účelům a při tvorbě her využít XNA FrameWork.

Čas

Klasicky timerem po 1000ms a v metodě se přičítá proměnná a ta se vypisuje v titlebaru. Kód v designeru (timer kalsicky přidáte jako komponentu na form a nastavíte mu vlastnosti v property záložce.

public System.Windows.Forms.Timer timer1;
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.timer1.Interval = 1000;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);

private void timer1_Tick(object sender, EventArgs e)
{
     this.Text = "Hledač min " + ++this.time + "s";
}

Input dialog

Je volán s VisualBasicu.

using Microsoft.VisualBasic;

int.Parse(Interaction.InputBox("Počet min? (menší než " + (x_length * y_length) + ")", "Hledač min", "5"));

V Javě

Čas

Použití swingového timeru.

Timer timer1 = new Timer(1000, this);

timer1.start();

// při implementování u třídy ActionListeneru můžete metodu napsat takto.
@Override
public void actionPerformed(ActionEvent e)
{
    this.setTitle("Hledač min " + ++GUI.time + "s");
}

Vytvoření nového pole min

V Javě jednoduše smažeme komeponenty, přidáme je znovu a překreslíme. GridLayout je rychlý a není problém s resizováním.

// smaže staré pole vytvoří nové a překreslí
public void reloadMinesField(GUI gui)
{
    gui.remove(mines_field);
    gui.addComponents();
    gui.repaint();
    gui.validate();

    GUI.time = 0;
}

Input dialog

Integer.valueOf(JOptionPane.showInputDialog(null, "Počet min? (menší než " + (x_length * y_length) + ")", "5"));

V GameMaker

Čas

Využijeme alarmu a budeme nastavovat room_caption.

V create inicalizujeme proměnnou time = 0 a nastavíme alarm[0] na room_speed (1x za vteřinu se spustí)

// alarm[0]
time += 1;

room_caption = "Hledač min " + string(time) + "s";

alarm[0] = room_speed;

Input dialog

get_integer("Šířka pole (max. 50)", 10);

 

Článek pro vás napsal David Jančík
Avatar
Uživatelské hodnocení:
1 hlasů
Autor je vášnivý programátor. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.
Aktivity