Miny - Zajímavosti a poznámky

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);

 

  Aktivity (1)

Článek pro vás napsal David Jančík [sczdavos]
Avatar
Autor je vášnivý programátor v .NET C# a PHP. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.

Jak se ti líbí článek?
Celkem (1 hlasů) :
55555


 



 

 

Komentáře

Avatar
KlimiCZ
Člen
Avatar
KlimiCZ:

zajmavé

Odpovědět 4.5.2013 13:54
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.