PDA

View Full Version : سوال: پروژه Snake



Ryanblack
شنبه 24 دی 1390, 14:06 عصر
سلام دوستان؛

استاد عزیز ما لطف فرمودند، به‌مون گفتند که توی Console C# بازی Snake رو بسازید؛ می خواستم یه توضیحات کلی درباره مبحث بدید؛ با آرایه بسازم دیگه ؟ یکم درباره الگوریتم‌ها توضیح بدید.

با تشکر؛ :قلب:

maktoom
شنبه 24 دی 1390, 15:58 عصر
سلام
من این دو تا رو یه بار لازم داشتم پیدا کردم. با C++ هم هستن. اما بهت بگم اینا بدرد دادن به استاد نمی خوره. حرفه ای نوشته شده از پس دفاعش ممکنه برنیای. البته اگر بتونی سر در بیاری که خوب خیلی خوبه. سخت نیست.
موفق باشی

Ryanblack
شنبه 24 دی 1390, 17:22 عصر
اتفاقاً بد نبودند؛ ممنون. البته من خودم تا یه جاهایی نوشتم اما توی یه جایی گیر کردم، جایی که ماتریس رو منهای 1 می‌کنم می‌گه خارج از محدودست! حالا بعداً Source رو می‌گذارم که راه‌نمایی‌ام کنید.
و یک مشکل دیگه هم اینه که نمی‌دونم چطور؛ در سطر و ستون بنویسم‌ـشون

doostl
شنبه 24 دی 1390, 18:53 عصر
سلام

راستش من خودم یه اسنیک نوشتم ولی هرچی با خودم کلنجار رفتم اون حس خساست خاص اجازه نداد اپلودش کنم ولی

خودم این طوری نوشتم فک کنم هم قشنگ تره هم کمتر به مشکل می خوری:

کلیتشو با تایمر نوشتم تو سه level که از اسون به سختش اینترناله تایمرا کم میشه حالا این تایمرا چیکا مکینن :
من 7 8 تا لیبل ساختم که بدنه ی مارو تشکیل میده اون تایمر لحظه به لحظه طبق جهتی که کاربر داده سر مارو یه واحد تو مختصات حرکت میده بعد بقیه بدنه دونه دونه میان جای خونه قبلی بدنه رو پر میکنن
اینجوری وقتی ما دور میزه هم حرکت پله پله و قسنگ میشه .
باحاله اینطوری بنویس

Ryanblack
شنبه 24 دی 1390, 21:19 عصر
@doostl ؛ واسه چی؟ خساست؟
بدبختی اینه که گفته، توی Console بنویسید، اینطوری آدم خیلی بیشتر اذیت می‌شه!!

Ryanblack
یک شنبه 25 دی 1390, 10:42 صبح
دوستان عزیز من تا اینجای کد رو اینطوری نوشتم؛ اما توی بخش کلیدها مقدار y - 1 رو قبول نمی‌کنه چون، خارج از محدودست اصلاً این روش که رفتم جواب میده ؟



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
while (1 == 1)
{
start();
}
}
// Menu ************************************************** ********
static void start()
{
Menu();
string highscore1 = "No One";
char ch = Console.ReadKey().KeyChar;
switch (ch)
{
case '1':
Console.Clear();
startgame();
break;
case '2':
Console.Clear();
string yourname = Console.ReadLine();
break;
case '3':
Console.Clear();
break;
case '4':
Console.Clear();
Console.ReadLine();
break;
case '5': Environment.Exit(0); break;
}
}
// Menu ************************************************** ********
static void Menu()
{
Console.Clear();

}
//************************************************** *************
static void startgame()
{
ConsoleKeyInfo cki = new ConsoleKeyInfo();
bool[,] point = new bool[51, 51];
point[0, 0] = true;
int x = 50; int y = 50;
if (point[x, y] == true)
{
Console.Write("*");
}


while (Console.KeyAvailable == false)
{
Thread.Sleep(250); // Khabalood Mishavad
}
while (1 == 1)
{
cki = Console.ReadKey(false);
if (cki.Key == ConsoleKey.UpArrow)
{ if (point[x, y] == true) { point[x, y] = false; point[x, y + 1] = true; point[x,y] = point[x,y +1]; Console.Write("*"); } }
else if (cki.Key == ConsoleKey.DownArrow)
{ if (point[x, y] == true) { point[x, y] = false; point[x, y - 1] = true; point[x, y] = point[x, y - 1]; Console.Write("*"); } }
else if (cki.Key == ConsoleKey.RightArrow)
{ if (point[x, y] == true) { point[x, y] = false; point[x + 1, y] = true; point[x, y] = point[x + 1, y]; Console.Write("*"); } }
else if (cki.Key == ConsoleKey.LeftArrow)
{ if (point[x, y] == true) { point[x, y] = false; point[x - 1, y] = true; point[x, y] = point[x - 1, y]; Console.Write("*"); } }
}
}
}

}