Avatar billede j3ppah Novice
17. november 2008 - 11:39 Der er 3 kommentarer og
1 løsning

Snake c#

Goddag alle eksperter... jeg sidder med et mindre problem...
Skal til at igang med at lave snake i c#. Jeg har lavet et mindre "spil", som jeg vil videre bygge på...

Og nå skal jeg jo så igang med at lave mit snake... Problemet er at jeg ikke kan finde ud af om det skal være i en user controle form, som de andre levels i spillet, eller om det skal være en windowed form...

Det skal jo lavet så jeg kan oprette et array, og bruge system.drawing;

Men kan det lade sig gøre at oprette et array på en usercontrole from?... Kan ikke rigtigt få lortet til at virke... har undet et eksempel på nettet... men vil gerne have det til at kører i en user controle...

Er der eventuelt en der kan smide et eksempel op ? bare på hvordan arrayet skal oprettes, så jeg kan brynde at lave algoritmer og billeder... :)?..

Mange tak..

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Snake
{
public partial class Form1 : Form
{
//somewhat of a coordinate system for the game
bool[,] point = new bool[51, 51];
//sets the direction that the snake is supposed to move: 1:up, 2:down, 3:left, 4:right,
int direction = 4;

public Form1()
{
//This sets the starting snake
point[0, 0] = true;
}

private void Form1_Paint(object sender, PaintEventArgs e)
{
//according to the array point this displays the blocks of the snake and fruit
Graphics g = e.Graphics;
int x = 0; int y = 0;
while (y < 51)
{
bool skip = false;
if (point[x, y] == true)
{ g.FillRectangle(Brushes.GreenYellow, x * 10, y * 10, 10, 10);  }
if (x >= 50) { x = 0; y++; skip = true; }
if (x < 50 && skip == false) { x++; }
}

}

private void timer1_Tick(object sender, EventArgs e)
{
    try
    {
        int x = 0; int y = 0;
        while (y < 51)
        {
            bool skip = false;
            if (direction == 4)
            { if (point[x, y] == true) { point[x, y] = false; point[x + 1, y] = true; break; } }
            if (direction == 3)
            { if (point[x, y] == true) { point[x, y] = false; point[x - 1, y] = true; break; } }
            if (direction == 2)
            { if (point[x, y] == true) { point[x, y] = false; point[x, y + 1] = true; break; } }
            if (direction == 1)
            { if (point[x, y] == true) { point[x, y] = false; point[x, y - 1] = true; break; } }
            if (x >= 50) { x = 0; y++; skip = true; }
            if (x < 50 && skip == false) { x++; }
        }
        Invalidate();
    }
    catch { }
}

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
// Invalidate the Eater before moving it
string result = e.KeyData.ToString();
/* switch (result)
{
    case Left
        {
            direction = 3; break;
        }
    case Right
        {
            direction = 4; break;
        }
    case Up
        {
            direction = 1; break;
        }
    case Down
        {
            direction = 2; break;
        }
} */
}
}
}
Avatar billede j3ppah Novice
17. november 2008 - 13:36 #1
Hvis der er en der kan lægge et eksempel op ville jeg blive glad....
Avatar billede j3ppah Novice
18. november 2008 - 10:37 #2
lukket, fandt anden løsning.
Avatar billede b_ Nybegynder
02. december 2008 - 20:12 #3
Er lidt nysgerrig :) Hvordan løste du det? Evt. må jeg se hele koden?
Avatar billede j3ppah Novice
02. december 2008 - 20:30 #4
jo selvfølgelig, smider den lige op som en på rapidshare... Både den jeg selv nåede frem til og så den SYGE avancerede aaberg løsning :D.. damn den mand er genial!

Her er aabergs http://rapidshare.com/files/169597529/SimpleSnakekom.zip.html

Her er den vi nåede frem til, Vi nåede dog aldrig at blive fædig med det... da det var en skole opgave... men vi fik da lavet så lortet kunne bevæge sig :) : http://rapidshare.com/files/169597838/WindowsApplication1.rar.html

Håber du fik hvad du bad om :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester