четвер, 27 грудня 2007 р.

Візуалізація матричних даних з допомогою Gnuplot

Нещодавно займаючись своїми науковими справами я стикнувся з необхідністю наглядної візуалізації даних заданих у матричній формі. Ну наприклад у нас є двовимірний масив з даними згенерованими після якихось обчислень, тобто звичайнісінька матриця, досить великих розмірів. Значення елементів масиву записано у зивчайний текстовий файл input.dat де елементи різних стовпців відокремлюються один від одного пробілами, ну а рядки відповідно записані як є.

1.0000 0.9982 0.9825 0.9624 0.9583 .......
0.9982 1.0000 0.9918 0.9768 0.9735 .......
0.9825 0.9918 1.0000 0.9962 0.9948 .......
.......


Тепер запускаємо gnuplot у інтерактивному режимі

bum@impress:~/Projects/RelMatAn/1$ gnuplot

G N U P L O T
Version 4.2 patchlevel 0
last modified March 2007
System: Linux 2.6.22-14-generic

Copyright (C) 1986 - 1993, 1998, 2004, 2007
Thomas Williams, Colin Kelley and many others

Type `help` to access the on-line reference manual.
The gnuplot FAQ is available from
http://www.gnuplot.info/faq/

Send comments and help requests to
Send bug reports and suggestions to


Terminal type set to 'x11'
gnuplot>


Отже, gnuplot чекає на команду. Ну, що ж, почнемо з простого:
splot "input.dat" matrix with lines

У результаті відкриється вікно з нашим графіком:



У моєму випадку я використав для побудови графіка згенеровану моєю програмою на FreePascal кореляційну матрицю, яка використовується при дослідженні надійності елементів будівельних конструкцій. Але звичайно ж дані можуть бути будь-якими, зверніть лише увагу на параметр matrix, він є дуже важливим оскільки дані у вхідному файлі задані саме у вигляді матриці.

А тепер розфарбуємо наш графік:

set pm3d
splot "input.dat" matrix with pm3d


Ось, що ми тепер отримаємо:



Можна також сумістити графік намальований лініями та кольорову карту таким чином:

set pm3d at b
splot "input.dat" matrix with lines




Звичайно 3D графік будучи вставлений у звіт чи статтю завжди виглядає досить ефектно, проте часто зручніше використовувати звичайні плоскі кольорові карти:

set pm3d map
splot "input.dat" matrix with pm3d




Часто буває потрібно виділити на графіку лише значення нижчі або вищі за якийсь критерій (якусь площину перерізу), а інші відкинути. Для цього можна використати можливість задавання діапазону відображення по осям. Наприклад:

set pm3d
set zrange [0.8:0.97]
splot "input.dat" matrix with pm3d




Звісно ж для того щоб мати змогу використовувати побудовані графіки у власних документах, потрібно ці графіки зберегти у файл. Для цього на початку потрібно дати команди:

set term postscript eps enhanced
set output "output.eps"


Після цього результат буде не виводитися на екран безпосередньо, а писатися у файл. Само собою зрозуміло, що всі вищенаведені команди можна згрупувати у один файл і передаючи його gnuplot використовувати останній у пакетному режимі. Це дуже зручно.

Ось наразі і все, що я хотів написати. Багато додадткової інформації про gnuplot можна знайти ось на цьому чудовому сайті японця Kawano:
http://t16web.lanl.gov/Kawano/gnuplot/index-e.html

Реклама

создание сайта, бесплатный сервис.,офисный переезд, переезды любой сложности по Москве и области.,строительство деревянных домов и коттеджей.,запчасти Chery,pergo,

Реклама

создание сайта, бесплатный сервис.,офисный переезд, переезды любой сложности по Москве и области.,строительство деревянных домов и коттеджей.,запчасти Chery,pergo,

суботу, 22 грудня 2007 р.

Огляд автомобільного симулятора Racer

У даній статті я приведу невеличкий огляд одного з найкращих, як на мій погляд, кросплатформенних вільних автомобільних симуляторів - Racer. Проект орієнтується на досягнення максимального реалізму, а також завдяки відкритості дозволяє гравцям створювати власні моделі автомобілів та трас. На сьогоднішній день в Інтернеті можна знайти більше сотні моделей автомобілів створених ентузіастами, те ж саме стосується і трас.

Офіційний сайт проекту - http://www.racer.nl/ . Гра підтримує платформи Windows, Linux та MacOS X. Проте часто з появою нової версії якась одна з платформ виривається уперед. На сьогоднішній день останньою версією є 0.5.3 beta 8 наявна у версіях для Windows та MacOS X. Восьма бета для Linux ще поки не вийшла (присутня лише beta 6), але якщо у вас встановлено Wine, то це не є проблемою. Насправді, Windows-версія Racer чудово працює у Wine, тому у крайньому разі її можна використовувати і в Linux. Встановлюється гра дуже просто - достатньо розпакувати завантажений архів у будь-яку папку і запустити файл racer.

Запустивши гру ми попадаємо у головне меню:



Присутні декілька варіантів гри:
Free Driving - вільна їзда, можете просто оглядати околиці і знайомитися з трасою;
Quick Race - можете позмагатися на трасі з ботами;
Multiplayer - можете влаштовувати гонки з друзями, або у локальній мережі або через Інтернет.

Racer - чистокровний симулятор. Це означає, що прописувати повороти на 300км/год у стилі NFS або штампувати кола на трасі у Спа швидше за Шумахера вам навряд чи вдастся. Для гри бажано звичайно мати руль, а також повноцінний трипедальний блок (у грі підтримується керування зчепленням). У крайньому разі після певного тренування згодиться мишка, а от про клавіатуру можете забути одразу. Хоча вона і підтримується грою у якості контролеру, проте керувати нею автомобілем просто неможливо, найменша помилка з роботою акселератором чи гальмами, найменша помилка у роботі кермом і ви вже ковтаєте пилюку на узбіччі. Потужні автомобілі помилок не вибачають.



Звісно ж кожен автомобіль має власний характер. Прийоми керування потужним задньопривідним авто та передньопривідною малолітражкою зовсім різні. Грає роль також і розташування двигуна (впливає на розподіл ваги по осям), жорсткість підвісок та ін. Нервовий задньомоторний Ruf CTR "Yellowbird" дуже жорстко реагує на нерівності дорожнього полотна і при найменшій помилці з роботою акселератором у повороті миттю стає упоперек дороги. А старенька Dacia 1310 зі свистом покришок і вражаючими кренами, зносом передньої осі демонструє класичну поведінку передньопривідного автомобіля. Так, геймплея у звичному розумінні, як у тому ж NFS тут немає (як і крутих заставок з дівчатами та ефектних поліцейських погонь), хіба з друзями гонки влаштовувати, але для справжніх автомобільних фанатів саме така безкомпромісна фізична модель і є тим, що не дає довгий час просто відірватися від комп'ютеру. Єдиний на мій погляд недолік - це відсутність моделі пошкоджень. Можливо у наступних версіях автомобілі і навчать розбиватися, проте на даний момент вони ще цього не вміють.



Щойно встановивши гру у ній можна знайти лише спорткар Lamborghini Murciellago та трасу Carlswood. Проте за наведеними нижче адресами ви зможете завантажити величезну кількість додаткових автомобілів та трас:
http://www.xtremeracers.net/nuke/index.php
http://forum.rscnet.org/forumdisplay.php?f=111
http://www.racer-xtreme.com/car_index.php

Це одна з переваг даного симулятора - кожен бажаючий може створювати власні моделі. Якщо ви маєте хоча б мінімальний досвід роботи з 3D графікою, то цілком можете зробити модель і вашого власного автомобіля. Завантаживши ж уже готову модель достатньо лише розпакувати вміст архіву у папку data/cars і вона відразу ж стає доступною у симуляторі. Причому серед доступних моделей є не лише суперкари по типу Chevrolet Corvette, Aston Martin DB9 чи Porsche 911, класичні Bugatti Typ 57 чи Ferrari Dino, але й набагато більш звичні автомобілі як BMW 3-ї серії, Dacia Solenza чи навіть Волга ГАЗ-3102.









Аналогічна ж ситуація і з трасами. Можна знайти як копії величезної кількості реально існуючих гоночних трас (Спа, Монца, Лагуна Сека, Нюрбунгринг, Ле-Ман та ін.) так і траси, що моделюють звичайні дороги на яких можна просто покататися в своє задоволення. Потрібно сказати, що для того щоб мати змогу ганятися на вибраній вами трасі з ботами, потрібно щоб у папці з треком була папка ai з файлами, що описують їх поведінку (існують не для всіх трас і не для всіх автомобілів), інакше боти будуть їхати зі швидкістю 50км/год і гальмуючи перед кожним поворотом майже до нуля. AI-файли для різних автомобілів на різних трасах можна також знайти в Інтернеті, а можна і створити самому (див. офіційний форум).

Що стосується графіки, то вона цілком пристойна. Звичайно проробка автомобілів та трас сильно залежить від того скільки праці вклав автор у конкретну модель, трапляються як дуже детально пророблені моделі так і не зовсім (те ж саме до речі стосується і фізичної моделі). Автомобілі залишають чорні сліди від гуми на асфальті, при пробуксовках гума горить піднімаючи у повітря білий дим, а на великій швидкості дерева обабіч дороги зливаються у зелену стіну. Досить гарно змодельовано траву на узбіччях, та й небо і сліпуче сонце схожі на справжні.

Взагалі, рекомендую цю іграшку всім хто не байдужий до автомобілів. Вона дійсно варта того щоб звернути на неї увагу.

На додачу приводжу коротку пам'ятку про управляючі клавіші:
Мишка угору/вниз - акселератор/гальма
Мишка ліворуч/праворуч - рульове колесо ліворуч/праворуч
Ліва/права кнопка мишки - передача вгору/вниз
Середня кнопка мишки - зчеплення
Керування ручними гальмами та обмежувачем обертів встановлюється у опціях
S - стартер
L - фари
P - пауза
C - режим камери
1-0 - позиція камери
` - показати/сховати консоль
F2 - показати повтор
F3/Shift-F3 - ввімкнути/вимкнути телеметрію
F4 - дзеркало заднього виду
F5 - ABS та ін. допоміжні системи
F6 - карта
F9 - чат у мультиплеєрі
F12 - зробити скріншот
Більш глибоку інформацію можна отримати тут: http://www.racer.nl/documentation.htm

Ну і ще потрібно згадати про проекти з допомогою яких ви можете брати участь у перегонах з реальними людьми:
http://www.racerworld.co.nr/ - RacerWorld
http://www.racer500.co.nr/ - Racer500

понеділок, 17 грудня 2007 р.

SimpleBasic: Робимо навчання програмуванню простим

Я довгий час писав тут про досить немалу кількість різноманітних програм які написані іншими людьми. Але я не говорив про те, що одне з моїх улюблених хобі - це програмування. Мені завжди подобалося щось придумувати, розробляти алгоритми та ін. Проте довгий час мої проекти не виходили за межі досить обмеженого кола людей. Сьогодні я вирішив порушити традицію і нарешті викласти в Інтернет одну зі своїх розробок. Не знаю, чи буде вона комусь корисна, тим більше, що це лише початок, версія 0.1. Але все ж таки я вирішив спробувати.

SimpleBasic - інтерпретатор простої Basic-подібної мови програмування для платформ Linux та Windows.
Взагалі історія цього проекту тісно пов'язана з тим, що мені давно ще зі шкільних років дуже хотілося розробити свою мову програмування. Декілька років тому це бажання стало реальністю коли я почав розробляти розрахунковий пакет у рамках своєї дисертації. Мені потрібно було інтегрувати у свою програму нескладну мову програмування з допомогою якої можна було б описувати параметричні моделі елементів будівельних конструкцій. Глюків було досить багато, тому інтерпретатор годився лише для внутрішнього користування, тим хто всі його глюки знає. Останнім часом я вирішив переписати його з нуля, паралельно змінивши ряд алгоритмів. Певним поштовхом до цього стало моє спілкування зі своїми студентами, деяким з яких дуже важко дається навчання програмуванню. Чесно кажучи, я іноді з ностальгією згадую часи розквіту DOS, коли програми писалися швидко і просто. Це дуже важливо для навчання, бо кінцевий результат спостерігається раніше. Останнім часом же спостерігається тенденція постійного ускладнення мов програмування, віконні інтерфейси відчутно ускладнили сам процес написання програм. Тому я й вирішив спробувати розробити максимально просту мову програмування яка б дозволяла максимально швидко отримувати готовий результат і дуже б легко вчилася. Крім того мені хотілося на практиці продемонструвати роботу алгоритмів та застосування різних структур даних (як стеки наприклад) про які досить сухо згадується в університетському курсі і які студенти не розуміють де можна застосувати. Ну і ще хотілося б зробити інтерпретатор таким щоб його можна було використовувати у складі інших своїх програм. Таким чином нещодавно і з'явилася версія 0.1 мови програмування яку я назвав SimpleBasic.

Інтерпретатор написано на мові програмування Free Pascal, тому його легко можна перекомпілювати під будь-яку з платформ яка нею підтримується, а це досить суттєвий перелік. Представляє він собою єдиний бінарний файл якому у якості параметру передається ім'я файлу з програмою. Я покищо підготував варіанти для Linux та Win32.
sbrun
sbrun.exe
Для підтримки графіки також потрібно щоб у системі була присутня бібліотека GLUT, яка не входить у стандартну поставку Windows (в Ubuntu з цим проблем немає)
glut32.dll
Я ще не вирішив чи буду відкривати коди самого інтерпретатору для публічного доступу чи ні. Поки що все знаходиться на досить ранній стадії і у мене ще набагато більше планів ніж реально зроблено.

Тепер щодо самої мови. Як і у звичайному Basic кожна команда задається у окремому рядку, якщо потрібно задати декілька команд в один рядок, то вони відділяються символом двокрапки ( : ), коментарі вводяться апострофом ( ' ). Приклад стандартної програми, що виводить у консоль рядок з привітанням:

' Перша програма на SimpleBasic
print "Hello, World!"


Змінні не оголошуються, пам'ять для них виділяється автоматично при першому ж згадуванні нової змінної у тексті. Типи даних не розрізняються, одна й та ж змінна на протязі виконання програми може зберігати як числові так і символьні дані. Великі і малі літери у назвах не розрізняються, допускається використання у складі ідентифікатору латинських букв, цифр, символу підкреслення та точки. Можна використовувати масиви будь-якої розмірності вказуючи індекс у квадратних дужках. Масиви як і звичайні змінні також оголошувати не потрібно, достатньо просто почати їх використовувати. Допускається використання асоціативних масивів, де у якості індексу можна задавати символьний рядок. Більше того, допускається використання навіть дробових індексів. Але не допускається присвоювати один масив іншому, лише поелементно. Крім того, тип елементів масиву не обов'язково повинен бути однаковим, у рамках одного масиву допускається зберігати дані різних типів. Після закритої квадратної дужки можна через крапку дописувати ідентифікатор поля структури, таким чином можна працювати з записами.

a=2
b=3
print a+b

a["Hello"]="Hi!"
a["Good bye"]="Bye!"
print a["Hello"]+" --> "+a["Good bye"]

for i=1 to 10
 print "Name:"+people[i].name+"  Age:"+people[i].age
next


У виразах використовуються стандартні операції: +, -, *, /, ^ (піднесення до степеня), \ (ділення націло), % (залишок від ділення). Логічні операції: =, <, >, <=, >=, != (не дорівнює), ! (NOT), | (OR), & (AND). До символьних рядків також можна застосовувати операції: + (конкатенація), - (відкидання символів з кінця), * (розмноження). Тут я дозволив собі трохи творчості і відійшов від синтаксису класичного Basic. Також реалізовано великий набір різноманітних функцій, які включають у себе арифметичні, текстові, введення/виведення, роботи з файлами, роботи з текстовим терміналом, функції графічного режиму та ін. Функція eval дозволяє використовувати у своїх програмах парсер арифметичних виразів.

Є ряд стандартних конструкцій. Це оператори циклів do..until, while..wend, for..next. Їх синтаксис ідентичний Basic, за винятком циклу do який завершується не loop, а until (варіант loop while не передбачено). У next змінна циклу не вказується, а сам цикл for на етапі прекомпіляції зводиться інтерпретатором до звичайного while.

i=1
do
 print i
 i=i+1
until i>10
'----------------
i=1
while i<=10
 print i
 i=i+1
wend
'----------------
for i=1 to 10 'допускається використання модифікатору step
 print i
next


Для перевірки умов використовується if..else..end if. Причому реалізовано лише повну форму, використання однорядкової скороченої форми не допускається, якщо потрібно зекономити місце, то використовують : для відокремлення ключових слів. Використання ключового слова then після умови є необов'язковим.

if i=1 then
 print "One"
else
 print "Two"
end if
' або так
if i=1 : print "One" : else : print "Two" : end if


Користувач може оголошувати власні функції. При цьому оголошувати вкладені функції не допускається, але дозволяється використовувати рекурсію. Функції не можуть приймати у якості параметрів масиви. Всі параметри передаються за значенням, їх зміни у тілі функції не впливають на значення глобальних змінних. Для того щоб отримати доступ до глобальних змінних, потрібно перед ім'ям змінної додати два символи підкреслення.

sub fact(i) 'обчислення факторіалу
if i=1 then
return 1
else
return i*fact(i-1)
end if
end sub

print fact(5)


От коротко і все. А тепер продемонструю декілька прикладів.

Робота у текстовому режимі. Класична задача про готель, можна селити і виселяти жильців, переглядати їх список. Дані автоматично зберігаються у зовнішній файл.

hotel.sb

' Hotel example program in SimpleBasic
sub menu(x)
 terminal.background 0
 terminal.color 7
 terminal.clear

 i=x
 do
  terminal.locate 10,10
  if i=1 then : terminal.background 7 : terminal.color 0 :
else : terminal.background 0 : terminal.color 7 : end if
  print "Поселити"
  terminal.locate 10,11
  if i=2 then : terminal.background 7 : terminal.color 0 :
else : terminal.background 0 : terminal.color 7 : end if
  print "Виселити"
  terminal.locate 10,12
  if i=3 then : terminal.background 7 : terminal.color 0 :
else : terminal.background 0 : terminal.color 7 : end if
  print "Показати"
  terminal.locate 10,13
  if i=4 then : terminal.background 7 : terminal.color 0 :
else : terminal.background 0 : terminal.color 7 : end if
  print "Вихід"
 
  c=terminal.key()

  if c="up" then : i=i-1 : end if
  if c="down" then : i=i+1 : end if
  if i<1 then : i=4 : end if
  if i>4 then : i=1 : end if

 until (c="esc")|(c="enter")
 if c="enter" then : return i : else : return 0 : end if

 terminal.background 0
 terminal.color 7
 terminal.clear
end sub

size=10
open 1,"r","hotel.dat"
for j=1 to size
      
a[j].name=inputf(1)
      
a[j].from=inputf(1)
      
a[j].to=inputf(1)
next
close 1

i=1
do
  i=menu(i)

  if i=1 then   ' Селимо
    print "="*37
    print "|"+" "*11+"Селимо жильця"+"
"*11+"|"
    print "="*37
    j=input("У яку кімнату?")
    a[j].name=input("Ім'я:")
    a[j].from=input("Поселився:")
    a[j].to=input("Вибуває:")
  end if

  if i=2 then   ' Виселяємо
    print "="*38
    print "|"+" "*10+"Виселяємо жильця"+"
"*10+"|"
    print "="*38
    j=input("З якої кімнати?")
    a[j].name=""
    a[j].from=""
    a[j].to=""
  end if

  if i=3 then   ' Показати список жильців
    print "="*37
    print "|"+" "*10+"Перелік жильців"+"
"*10+"|"
    print "="*37
    for j=1 to size
      if a[j].name!=""
then  
       
print j+"  Ім'я: "+a[j].name+"  Поселився:
"+a[j].from+"  Вибуває: "+a[j].to
      else
       
print j
      end if
    next
    c=terminal.key()
  end if
until (i=4)|(i=0)

' Зберігаємо у файл
open 1,"w","hotel.dat"
for j=1 to size
  printf 1,a[j].name
  printf 1,a[j].from
  printf 1,a[j].to
next
close 1


Результат буде таким



Робота з графікою. Як показала практика, найкраще люди вчаться програмуванню саме в процесі роботи з графікою. Тому я вирішив цій складовій приділити особливу увагу. Особливо хотілося якомога більше зменшити кількість маніпуляцій при програмуванні графіки у сучасних операційних системах. Для відображення графіки використовується OpenGL, а для роботи з віконним інтерфейсом використовується бібліотека GLUT. Ось приклад програми яка малює графік синуса:

sinus.sb

' A graph sample for SimpleBasic
sub redraw
 graph.clear 0.9,0.9,1
 graph.color 0,0,0
 graph.linewidth 1
 graph.line -5,0,5,0
 graph.line 0,5,0,-5
 graph.textsize 0.0025
 graph.print 0.2,4.5,"y=sin(x)"
 graph.print 4.7,0.2,"x"
 graph.textsize 0.0015
 for x=-5 to 5
   graph.line x,0.1,x,-0.1
   if x!=0 then : graph.print x,-0.3,x : end if
 next
 for y=-5 to 5
   graph.line 0.1,y,-0.1,y
   if y!=0 then : graph.print -0.3,y,y : end if
 next

 graph.linewidth 3
 graph.color 1,0,0
 graph.moveto -5,sin(-5)
 for x=-5 to 5 step 0.25
   graph.lineto x,sin(x)
 next
end sub

graph.createwindow 640,480,"y=sin(x)"
graph.drawfunc "redraw"
graph.setcs -5,5,-5,5
graph.mainloop


Ця програма створює вікно, малює у ньому систему координат та графік синуса і закривається при натисненні клавіші Esc.



Ще один графічний приклад для демонстрації інтерактивності. Квадрат можна рухати у вікні використовуючи стрілки, змінювати його розміри кнопками + та -, переміщувати з допомогою мишки, а права кнопка мишки виводить на екран контексне меню.

rects.sb

' A graph sample for SimpleBasic

sub redraw
 graph.clear 0,0,0.5
 graph.color 1,0.5,0
 graph.rect __x-__size,__y+__size,__x+__size,__y-__size
end sub

sub readkey(key)
 if key="up" then : __y=__y+__step : end if
 if key="down" then : __y=__y-__step : end if
 if key="left" then : __x=__x-__step : end if
 if key="right" then : __x=__x+__step : end if
 if key="+" then : __size=__size+0.1 : end if
 if key="-" then : __size=__size-0.1 : end if
end sub

sub mouse(b,x1,y1)
 if b="left" then
   __x=-5+10*x1/640
   __y=5-10*y1/480
 end if
end sub

sub menu(i)
 if i=1 then : __size=__size+0.1 : end if
 if i=2 then : __size=__size-0.1 : end if
 if i=3 then : halt : end if
end sub

x=0 : y=0 : step=0.2 :size=0.5

graph.createwindow 640,480,"Moving Rectangle"
graph.drawfunc "redraw"
graph.keyfunc "readkey"
graph.mousefunc "mouse"
graph.menufunc "menu"

graph.menuitem "Larger"
graph.menuitem "Smaller"
graph.menuitem "Exit"

graph.setcs -5,5,-5,5
graph.mainloop


Ось так виглядає результат роботи програми:



Звісно ж, оскільки інтерпретатор є кросплатформеним, то цю ж саму програму без будь-яких змін можна запустити і у Windows:



І на завершення ще наведу простеньку іграшку - арканоід. У даному прикладі продемонстровано роботу з таймером для створення анімації.

arkanoid.sb

' An Arkanoid example for SimpleBasic
sub redraw
 if __gameover=0 then
   graph.clear 0,0,0.5
   graph.color 1,0.5,0
   graph.rect __pos-__size,-8,__pos+__size,-9
   graph.color 1,0,0
   graph.circlef __x,__y,__ball
 else
   graph.color 1,0,0
   graph.textsize 0.01
   graph.print -4,0,"GAME OVER"
 end if
end sub

sub readkey(key)
 if key="left" then : __pos=__pos-__step : end if
 if key="right" then : __pos=__pos+__step : end if
end sub

sub timer
 if __x>=10 then : __tx=-1 : end if
 if __x<=-10 then : __tx=1 : end if
 if __y>=10 then : __ty=-1 : end if
 l=__pos-__size : r=__pos+__size
 if (__x>l)&(__x<r) then
   if __y<-8 then : __ty=1 : end if
 else
   if __y<-8 then : __gameover=1 : end if
 end if
 __x=__x+__tx*__f
 __y=__y+__ty*__f
end sub

gameover=0
pos=0 : f=0.5 : tx=1 : ty=1 : ball=0.5
x=0 : y=-3 : step=1 : size=2

graph.createwindow 400,400,"SimpleArkanoid"
graph.drawfunc "redraw"
graph.keyfunc "readkey"
graph.timerfunc "timer"
graph.timer 1000\60*2
graph.setcs -10,10,-10,10
graph.mainloop


Ось така іграшка вийшла:



Ось так. Крім вже описаних можливостей підтримується також робота у повноекранному режимі (наприклад graph.gamemode "1024x768:32"). Через деякий час планую реалізувати 3D графіку, підтримку мультимедіа даних та багатопоточність. Потім піду далі, подивлюся, що з цього вийде. По ходу і документацію ще підготую.

Через деякий час планую написати статтю про те як пишуться інтерпретатори арифметичних виразів, зокрема про алгоритм побудови зворотньої польскої нотації (постфіксної форми запису операцій, без використання дужок) з прикладами коду на FreePascal. Також розповім і про інші аспекти створення інтерпретатору, зокрема про реалізацію управляючих структур та підтримки функцій користувача. На сьогодні ж мабуть все.

вівторок, 4 грудня 2007 р.

Встановлюємо NetBeans IDE 6.0

Нещодавно вийшла нова версія популярного середовища програмування NetBeans. Крім підтримки Java (як дорослої так і мобільної версій) нова IDE дозволяє також розробляти програми на Ruby (включаючи підтримку Ruby on Rails) та C++. Я коротко опишу лише процес встановлення даного середовища.

Завантажити інсталятор можна звідси:
http://www.netbeans.org/index.html
Також можна замовити DVD який розсилають безплатно у будь-яку точку світу.

Інсталятор являє собою звичайний архів, який сам розпаковується у вигляді скрипта netbeans-6.0-linux.sh.
sudo sh netbeans-6.0-linux.sh

Сам процес інсталяції нагадує встановлення програм для Windows, майстер виконано у такому ж стилі.



За замовчуванням NetBeans встановлюється у папку /usr/local/netbeans-6.0. Додати відповідний пункт у меню Програми доведеться вручну, з допомогою Система -> Параметри -> Головне меню (потрібно вказати файл /usr/local/netbeans-6.0/bin/netbeans). Все, тепер можна запускати.



Ось так виглядає NetBeans:



Серед нововведень нової версії:
нова програма встановлення;
  • Update Center и Module Manager об'єднано у Plugins manager;

  • оновлено редактор GUI для роботи з бібліотекою Swing;

  • новий візуальний редактор для проектування інтерфейсів програм для J2ME;

  • розширено можливості розробки програм для Web та ін.

Реклама

авто-сервис в аренду в москве.,Создайте сами интернет-магазин создание интернет магазина.,

Реклама

Bongio domino настенный излив для ванны.,гостиницы Днепропетровска,Создайте сами интернет-магазин создание интернет магазина.,Рестораны Киев кейтеринг Блинофф.,

Оброблюємо фотокопії документів з допомогою ImageMagick

Останнім часом я став помічати, що все рідше і рідше користуюся сканером (про копіювальні апарати взагалі мовчу). А й справді, майже завжди зі мною цифровий фотоапарат, чи то солідний Fuji чи то компактний Canon, тому у будь який момент я можу зняти копію з будь якого паперу, що потрапив до рук. Крім того, з допомогою фотокамери перезняти документ виходить швидше ніж сканером. Але є одна проблема - картинка виходить не такою красивою. Але з допомогою ImageMagick зображення можна легко відкорегувати таким чином щоб вони виглядали так як мовби їх зроблено з допомогою сканера.

Ну, ось наприклад у нас є знімок сторінки з методички. Я зробив його з допомогою Fuji s6500fd без спалаху, при звичайному кімнатному освітленні на ISO400.



Темнувато, правда? Та і як бачимо, аркуш по своїй площі освітлений не однаково. Це стандартна проблема з якою стикаєшся при фотографуванні текстових документів, особливо з близької відстані. Але проблема вирішується досить просто, для цього достатньо дати команду по типу наступної:
mogrify -format tif -monochrome -compress group4 -resize 1252x1800 -normalize -threshold 30% *.jpg

Тут опція -format задає формат вихідного файлу (у даному випадку найкращим вибором буде tif), опція -monochrome конвертує зображення у чорно-білий варіант, -compress задає тип компресії, -resize використовується для зміни розмірів, -normalize дозволяє повернутися до повного диапазону кольорів, -threshold дозволяє задати поріг яскравості після якого пікселі стануть білими. Найбільш цікавим є саме остання опція, її значення задається експериментально, в залежності від експозиції початкового зображення (якщо зображення темне, то значення потрібно зменшити, в іншому випадку навпаки).

Результат виконання даної команди буде таким:



Звісно, ж якщо у папці буде лежати декілька файлів з зображеннями, то всі вони будуть зконвертовані наступним чином. Для зручності, щоб не тримати у пам'яті опції команди mogrify я порекомендував би створити сценарій для Nautilus, як це робиться я вже описував раніше.

Оригінальна англомовна сторінка яка підказала мені розв'язок даної проблеми знаходиться тут:
http://staff.washington.edu/corey/camscan/
А тут можна знайти вичерпну інформацію по всім опціям ImageMagick:
http://www.imagemagick.org/script/command-line-options.php

четвер, 29 листопада 2007 р.

Sweet Home 3D: розставляємо меблі у вашій квартирі

Нещодавно переглядаючи список проектів на SourceForge.org натрапив на програмку Sweet Home 3D. З її допомогою можна накреслити план квартири, розставити меблі, а потім прогулятися по вашій віртуальній домівці і подивитися як це буде виглядати в реалі. Програма дуже корисна для тих хто планує ремонт, або просто хоче купити нові меблі. Інтерфейс - інтуітивно зрозумілий, особливо для тих хто хоча б трохи мав справу з CAD пакетами по типу AutoCAD.



Завантажити Sweet Home 3D можна звідси:
http://sourceforge.net/project/platformdownload.php?group_id=152568

Дистрибутив являє собою звичайний .tgz архів який достатньо просто розпакувати у каталог /optgivenchy very irresistible for men,монтаж настенных котлов,Заселяйтесь в квартирах посуточно.,Консультации юридические услуги.,восстановление данных от 20 минут.,оптимизация сайта,

неділю, 25 листопада 2007 р.

Керуємо Ubuntu з мобільного телефону через Bluetooth

У даній статті я розповім як перетворити ваш мобільний телефон у пульт дистанційного керування для вашого комп'ютера на базі Ubuntu.

Скористаємося ми чудовою програмою AnyRemote, яку можна завантажити звідси:
http://sourceforge.net/project/showfiles.php?group_id=162923
Або можете взяти необхідні пакети прямо з мого сайту:
anyremote_3.6-2_i386.deb
anyremote-data_3.6-2_i386.deb
anyRemote.jar
ganyremote_2.2-2_i386.deb

Отже, встановлюємо три deb пакети стандартним методом, просто клацаючи по ним мишкою. Що ж стосується jar-файлу, то його потрібно завантажити на телефон, для цього достатньо клацнути на ньому правою кнопкою мишки і у контекстному меню обрати Надіслати до, після чого вказати на ваш телефон.

Ще додатково встановимо pyBluez:
sudo apt-get install python-bluez

Тепер запустивши ganyremote у правому верхньому куті на панелі з'явиться синя піктограмка програми. Клацнувши по ній ми зможемо побачити вікно зі списком програм відомих anyremote, щоб отримати змогу керувати якоюсь з них, потрібно просто двічі клацнути по відповідному запису.



Після цього запустимо відповідну програму на мобільному телефоні і оберемо Connect. Після завершення інтуітивно зрозумілих процедур по підключенню телефону до комп'ютеру ми зможемо використовувати його у ролі пульту дистанційного керування. Ось так це виглядає на екрані моєї Nokia E50:



От і все. Додаткову інформацію по проекту завжди можна знайти тут:
http://anyremote.sourceforge.net/docs.html

середу, 14 листопада 2007 р.

Miro 1.0 - вікно у світ онлайн-відео

Нещодавно вийшла версія 1.0 програми для перегляду потокового відео - Miro. З його допомогою можна не лише переглядати відео-файли на локальній системі але й здійснювати пошук та завантаження відео з таких ресурсів як YouTube, Google Video та ін. Також можна переглядати TV-програми, що транслюються в онлайні. Програма має величезну базу даних по доступним у Інтернеті для вільного перегляду телевізійним каналам та відоподкастам на різні теми і різними мовами. Власне, дуже рекомендую, програма реально цікава і корисна.





Офіційний сайт: http://www.getmiro.com/

Особливості встановлення:
Щоб регулярно отримувати нові версії програми, підключаємо офіційний репозиторій
deb http://ftp.osuosl.org/pub/pculture.org/miro/linux/repositories/ubuntu gutsy/

Після чого відмічаємо у Synaptic на встановлення пакет miro.Данная программа является действительно нужным инструментом

Реклама

icq 5 1 скачать бесплатно русская.,внутренняя отделка дома, звоните.,

Реклама

icq 5 1 скачать бесплатно русская.,музыка для озвучки,внутренняя отделка дома, звоните.,

четвер, 8 листопада 2007 р.

Ubuntu 7.10 та Nokia E50

На днях купив собі смартфон Nokia E50. Цей апарат базується на SymbianOS 9.1 з графічним інтерфейсом s60 третього покоління. Ну власне сам смартфон мені дуже подобається і я дуже радий, що придбав саме його, а не 6233 до якого також приглядався. Все ж таки смартфон і звичайний хоч і наворочений телефон це дві величезні різниці.



У даній статті, я розповім як підключити цей смартфон в Ubuntu щоб мати змогу синхронізувати контакти, а також працювати з файлами використовуючи Bluetooth.

Копіювати файли на смартфон та назад насправді дуже просто, для цього достатньо просто натиснути правою кнопкою мишки по значку Bluetooth на панелі і у контексному меню обрати Browse Device, а потім вказати свій смартфон. Після цього на екрані смартфону з'явиться повідомлення про підключення на яке потрібно буде відповісти ствердно. У результаті відкриється вікно Nautilus з допомогою якого тепер можна ходити по файловій системі вашого апарату. Але перед цим швидше за все знадобиться все ж таки встановити такі пакети obex:

sudo apt-get install obexfs gnome-vfs-obexftp



Тепер щодо синхронізації контактів між адресною книгою E50 та Evolution.

Спочатку підключимо наступні репозиторії:

deb http://opensync.gforge.punktart.de/repo/opensync-0.21/ feisty main
deb-src http://opensync.gforge.punktart.de/repo/opensync-0.21/ feisty main


Не дивуйтеся, що тут йде посилання на feisty, просто даний репозиторій ще не має розділу для gutsy.

Далі встановлюємо необхідні ключі:

gpg --keyserver hkp://subkeys.pgp.net/ --recv-keys CB210090B029CB84
gpg --export CB210090B029CB84 | sudo apt-key add -


Тепер оновлюємо інформацію про репозиторії:
sudo apt-get update

І встановлюємо необхідні пакети:
sudo aptitude install opensyncutils opensync-plugin-evolution opensync-plugin-syncml multisync-tools multisync0.90 multisync-gui

Далі зконфігуруємо multisync, для чого скористаємося Multisync-gui (меню Програми -> Стандартні).
1. Додамо нову групу: nokia
2. Додамо до нашої групи плагіни Evolution та SyncML over OBEX client



Наступним кроком налаштуємо плагіни. Перше, що нам потрібно, це взнати MAC-адресу смартфону, для цього запустимо команду
hcitool scan

У резільтаті на екран буде виведено щось типу
XX:XX:XX:XX:XX:XX Phone name

Тепер потрібно у multisync-gui перейти у налаштування плагіну syncml-obex-client і вставити у вікно наступний текст:

<config>
<bluetooth_address>XX:XX:XX:XX:XX:XX</bluetooth_address>
<bluetooth_channel>10</bluetooth_channel>
<interface>0</interface>
<identifier>PC Suite</identifier>
<version>1</version>
<wbxml>1</wbxml>
<username></username>
<password></password>
<type>2</type>
<usestringtable>1</usestringtable>
<onlyreplace>0</onlyreplace>
<recvLimit>10000</recvLimit>
<maxObjSize>0</maxObjSize>
<contact_db>Contacts</contact_db>
<calendar_db>Calendar</calendar_db>
<note_db>Notes</note_db>
</config>


Де замість XX:XX:XX:XX:XX:XX звичайно ж потрібно підставити MAC-адресу смартфону.

Плагін evo2-sync налаштовується multisync-gui автоматично, тому тут нічого робити не потрібно.

Все. Тепер ми можемо натиснути на кнопку Оновити щоб виконати синхронізацію. При цьому на екрані смартфону з'явиться повідомлення про підтвердження передачі даних, на яке потрібно буде відповісти ствердно. Якщо тепер запустити Evolution, то у ньому можна буде побачити контакти з вашого смартфону.

неділю, 28 жовтня 2007 р.

Налаштування примусової перерви у роботі

Ті хто більшу частину свого часу просиджують за комп'ютером знають наскільки легко втрачаєш контроль за часом коли робиш якусь роботу. У робочому середовищі Gnome є цікава можливість, про яку можливо не всі знають - тут можна задати період часу через який комп'ютер буде вам нагадувати, що пора трохи відпочити, пройтися і можливо випити чашку кави. Клацнувши првою кнопкою мишки по перемикачу розкладок клавіатури на панелі і вибравши Параметри клавіатури ви побачите закладку Перерва у роботі де власне і зосереджені необхідні налаштування, просто ставите галочку і тепер комп'ютер візьме на себе роботу по нагляду за вашим здоров'ям. Рекумендую тільки відмітити одночасно і галочку Дозволити відкладання перерв, ніколи ж не знаєш, що насправді може статися.

Реклама

срочный вклад,Стулья для ресторанов, собственная фабрика.,лэп,

середу, 24 жовтня 2007 р.

Підключаємо принтер Canon PIXMA iP1800 в Ubuntu

Прикупив я тут сьогодні вищезгаданий принтер на додачу до свого старенького але працьовитого лазерного LBP-810. Я ніколи не любив струменеві принтери, але з'явилася необхідність друкувати у кольорі, тому й вирішив прикупити щось недороге. Щодо самого принтера, то він мені досить таки сподобався. Щодо якості друку тексту то з лазерним принтером його звичайно й порівнювати не можна, терпимо але не більше того, після LBP-810 відверто не вражає. А от фотографії і взагалі кольорова графіка виходять досить якісні, тим більше з погляду на ціну принтера у 277 грн., ну власне для цього я його і купляв.

Тепер щодо того як підключити принтер в Ubuntu. З недавніх пір я використовую Ubuntu 7.10, тому дії описуватиму саме для цієї останньої на сьогоднішній день версії.

1. Підключаємо принтер до USB порту, вмикаємо у розетку, натискаємо кнопку на принтері, відкриваємо кришку і вставляємо кадриджі.

2. У області повідомлень у правому верхньому куті з'явиться повідомлення, що до системи підключено принтер Canon iP1800 але система не може знайти для нього драйвер. Натискаємо на кнопку щоб додати принтер використовуючи запропонований базовий текстовий драйвер.

3. Качаємо два файли з власне драйвером принтеру
cnijfilter-common_2.70-2_i386.deb
cnijfilter-ip1800series_2.70-2_i386.deb

4. Встановлюємо вищенаведені пакети клацнувши по ним мишкою

5. Заходимо у Система -> Адміністрування -> Друк, обираємо наш принтер iP1800 і праворуч від поля Виробник та модель тиснемо на кнопку Змінити

6. Вказуємо /usr/share/cups/model/custom/canonip1800.ppd



7. У вікні налаштування принтерів натискаємо Застосувати

Все. Тепер новий принтер Canon iP1800 готовий до роботи в Ubuntu.

PS для Jaunty З Ubuntu 9.04 даний рецепт не працює. Пробуйте наступний скрипт: http://www.mediafire.com/?dsn21hmzlzyвирусный маркетинг,

Реклама

монтаж настенных котлов,колеса тюмень,вирусный маркетинг,интернет реклама тюмень, контекстная.,Хватит рисковать, лечение за рубежом.,

Реклама

колеса тюмень,интернет реклама тюмень, контекстная.,

вівторок, 23 жовтня 2007 р.

Ubuntu 7.10: Compiz Fusion

Вчора я нарешті оновив свою систему до версії 7.10 і тепер буду потроху публікувати огляди нових можливостей. Почну з огляду Compiz-Fusion який з'явився у результаті об'єднання проектів Compiz та Beryl.

Scale дозволяє відобразити на екрані одночасно зменшені копії всіх відкритих програм, так між ними дуже легко перемикатися. Викликається кнопками Shift+Alt+Up, але мені більше подобається викликати цю функцію простим підведенням мишки у верхній правий кут.



Expo - показує всі наявні робочі столи у одну стрічку. Комбінація клавіш - Win+E.



Shift Switcher - ще один спосіб перемикатися між вікнами програм, вікна відображаються своїми зменшеними копіями у тривимірному просторі, натискаючи комбінацію Win+Tab їх можна гортати.



Вікна можуть прилипати до країв екрану, це досить кумедно виглядає



Звісно ж залишилися і всі старі можливості (прозорість, негатив та ін.), про них я вже говорив раніше



Для того щоб можна було налаштовувати можливості Compiz-Fusion, вмикати та вимикати різні плагіни я рекомендую встановити Compiz configuration settings manager
sudo apt-get install compizconfig-settings-manager



Насправді Compiz завдяки ряду своїх особливостей є дуже зруною штукою. І якщо деформацію вікон можна вважати просто дитячою забавкою, то функції Scale, Expo, Shift Switcher, прозорість, Zoom та ін. є на мою думку дуже корисними.

Реклама

китайские телефоны продажа,

Реклама

Быстро и качественно, разработка сайта.,аренда погрузчика, строительство коттеджей.,автошкола,Туры выходного дня со скидкой.,

неділю, 14 жовтня 2007 р.

Конвертуємо відео для перегляду на КПК

Відомий всім власникам КПК плеєр TCPMP звичайно може програвати avi файли і без конвертації, проте не має сенсу задарма витрачати місце на карточці пам'яті, коли розмір екрану всеодно обмежено 320х240 точок. Для того щоб зтиснути відео можна скористатися або консольними ffmpeg чи mencoder, а можна для зручності встановити фронтенд iriverter. Ця програма призначена для конвертації відео для різноманітних популярних плеєрів, зокрема вироблених iRiver, проте вона чудово підійде і для наших задач.

sudo apt-get install iriverter mencoder

Обираємо Jobs -> New -> Single Video і вказуємо ім'я файлу.
Обираємо тип пристрою: Device -> iRiver -> PMP Series (цей варіант цілком підходить для наших задач)
Обираємо розмір картинки: Device -> Size -> 320x240
Якщо є бажання, то можна ще погратися значеннями бітрейтів, а можна обрати інший пристрій і менший розмір екрану.
І тиснемо на кнопку Convert.



Все, через певний час ми отримуємо зконвертований відео-файл який можна записати на карточку і дивитися на вашому мобільному присторої (у моєму випадку КПК).

Реклама

Установка кондиционеров, электромонтажные работы в Кирове.,

суботу, 6 жовтня 2007 р.

Ігри в Ubuntu

Я вирішив зробити невеличку підбірку ігор для Linux. У даному випадку я говорю саме про нативні ігри, тобто ті які не потребують використання емуляторів, а написані саме для Linux, і крім того я не беру до уваги комерційні ігри яких насправді не так і багато. Один з основних недоліків який приписують Linux коли порівнюють її з Windows, це практично повну відсутність ігор. Ну насправді, це не зовсім так, ігри звичайно ж є, проте їх менше і ними не займаються відомі компанії, але це не значить, що тут не можна грати.

З Ubuntu вже поставляється близько 17 ігор, включаючи Магджонґ, Судоку, всілякі пасьянси та навіть Шахи. Поговоримо ж про те, що можна встановити додатково.

Спортивні ігри

Foobillard
Офіційний сайт: http://foobillard.sunsite.dk/



Чудовий OpenGL більярд. Доступно декілька варіантів столів, різних кольорів та розмірів, є декілька варіантів ігор включаючи снукер. Чудові графіка, фізика та реалістичний звук обов'язково повинні сподобатися. Можна грати як з комп'ютером так і удвох.

Особливості встановлення:
sudo apt-get install foobillard

Tennix
Офіційний сайт: http://icculus.org/tennix/



Дуже простий симулятор настольного тенісу який тим не менш затягує. Можна грати як з комп'ютером так і удвох. Кнопки W та S переміщують ракетку, а D використовується для удару. Кнопка F розгортає вікно на весь екран.

Особливості встановлення:
Качаємо пакет звідси
http://www.getdeb.net/download.php?release=1529&fpos=0
потім просто встановлюємо його подвійним кліком

Blobby Volley 2
Офіційний сайт: http://blobby.redio.de/content/en/index.php



Прикольна реалізація пляжного волейболу. Роль гравців тут виконують різнокольорові желеподібні фігури.

Особливості встановлення:
Качаємо пакет звідси
http://www.ubuntugames.org/BlobbyVolley2?action=AttachFile&do=get&target=blobby_volley-2_i386.deb
потім просто встановлюємо його подвійним кліком

Slam Soccer 2006
Офіційний сайт: http://www.xenoage.com/bp2k6/en/



Симулятор футболу з мультяшною графікою.

Особливості встановлення:
Качаємо архів з офіційного сайту, розпаковуємо і запускаємо інсталяційний скрипт.

Planet Penguin Racer
Офіційний сайт: http://tuxracer.sourceforge.net/



Легендарна гра. Пінгвін Tux з'їзджає на пузі з гори і при цьому пробує наїстися досхочу риби.

Особливості встановлення:
Заходимо у Програми -> Add/Remove і у розділі Ігри знаходимо Planet Penguin Racer, ставимо галочку і тиснемо Застосувати.

XMoto
Офіційний сайт: http://xmoto.tuxfamily.org/



Симулятор мототріалу з 2D графікою.

Особливості встановлення:
sudo apt-get install xmoto

Симулятори

Racer
Офіційний сайт: http://www.racer.nl/



Автомобільний симулятор. Основна мета проекту - якомога точніше моделювання поведінки автомобіля, а геймплей штука другорядна. Існує багато доступних трас та автомобілів на всякий смак. Графіка досить якісна, реалістичність поведінки автомобілів досить висока, але не реалізовано модель пошкоджень. Грати можна як у мережі так і з ботами, але останній режим доступний не для всіх трас і не для всіх автомобілів.

Особливості встановлення:
Йдемо на офіційний сайт, качаємо архів, розпаковуємо його у будь-яку папку (наприклад /opt) і граємо. На деяких комп'ютерах на жаль Linux версія вилітає з помилкою, у такому разі раджу завантажити Windows версію, через Wine вона працює нічим не гірше.

TORCS - The Open Racing Car Simulator
Офіційний сайт: http://torcs.sourceforge.net/



Автомобільний симулятор. Доступно різноманітні гоночні серії, багато трас та автомобілів. Досить реалістична фізика та якісний AI. Часто проводяться онлайн-чемпіонати.

Особливості встановлення:
sudo apt-get install torcs

vDrift
Офіційний сайт: http://vdrift.net/



Ще один непоганий автомобільний симулятор з високореалістичною фізикою. Доступно 19 реально існуючих моделей трас, включаючи такі легендарні як Спа та Нордшляйфе, а також 28 автомобілів різних класів. Можна ганятися як у мережі так і з ботами.

Особливості встановлення:
Йдемо на getdeb.net і качаємо три пакети
http://www.getdeb.net/download.php?release=679&fpos=0
http://www.getdeb.net/download.php?release=679&fpos=1
http://www.getdeb.net/download.php?release=679&fpos=2
встановлюємо їх і граємо

ManiaDrive
Офіційний сайт: http://maniadrive.raydium.org/



Аркадні гонки з динамічним геймплеєм по акробатичних треках.

Особливості встановлення:
Йдемо на getdeb.net і качаємо два пакети
http://www.getdeb.net/download.php?release=705&fpos=0
http://www.getdeb.net/download.php?release=705&fpos=1

Targetware
Офіційний сайт: http://www.targetware.net/



Військовий авіасимулятор. Дозволяє створювати свої моделі та кампанії. Наразі доступні кампанії, що моделюють Корейську війну та битву при Рабаулі.

Особливості встановлення:
Йдемо на офіційний сайт і качаємо звідти пакет з інсталятором, а також додаткові моди

FlightGear
Офіційний сайт: http://www.flightgear.org/



Масштабний проект авіасимулятора. Доступно багато моделей літальних апаратів та практично вся поверхня земної кулі включаючи 20000 реально існуючих аеропортів по всьому світу. Основна мета проекту - якомога точніша імітація фізики. Моделюються також різноманітні погодні ефекти.

Особливості встановлення:
sudo apt-get install flightgear

У стандарті доступно лише невелику частину земної поверхні поблизу Сан-Франциско та простенька Cessna. З офіційного сайту можна завантажити додаткові ділянки земної поверхні, а також нові літаки, гелікоптери та ін. літальні апарати. Гру також можна знайти на DVD у різних інтернет-магазинах.

3D шутери

OpenArena
Офіційний сайт: http://openarena.ws/



Відкритий клон Quake III Arena.

Особливості встановлення:
sudo apt-get install openarena

Tremulous
Офіційний сайт: http://www.tremulous.net/



Мультиплеєрний шутер. Можна грати як за людей так і за чужих. Боти не підтримуються.

Особливості встановлення:
sudo apt-get install tremulous

Cube 2: Sauerbraten
Офіційний сайт: http://sauerbraten.org/



Ще один шутер з непоганою графікою. Є як мультиплеєрний так і звичайний режими.

Особливості встановлення:
Качаємо пакети з getdeb.net
http://www.getdeb.net/download.php?release=1320&fpos=0
http://www.getdeb.net/download.php?release=1320&fpos=1
http://www.getdeb.net/download.php?release=1320&fpos=2

Стратегії

Battle for Wesnoth
Офіційний сайт: http://www.wesnoth.org/



Мабуть найкраща стратегія реального часу на платформі Linux. Багато фантастичних персонажів, цікавий геймплей.

Особливості встановлення:
sudo apt-get install wesnoth

FreeCol
Офіційний сайт: http://www.freecol.org/



Гра, що базується на ідеї Colonization і по ідеї близька до Civilization.

Особливості встановлення:
Качаємо пакет з getdeb.net
http://www.getdeb.net/download.php?release=1391&fpos=0

Glest
Офіційний сайт: http://www.glest.org/en/index.html



Ще одна стратегія реального часу з безліччю фантастичних персонажів.

Особливості встановлення:
Качаємо пакети з getdeb.net
http://www.getdeb.net/download.php?release=1061&fpos=0
http://www.getdeb.net/download.php?release=1061&fpos=1

Savage : The Battle for Newerth
Офіційний сайт: http://www.s2games.com/savage/index.php?page=savageindex



Фантастична стратегія реального часу.

Особливості встановлення:
Качаємо інсталятор з офіційного сайту

OpenTTD
Офіційний сайт: http://www.openttd.org/



Відкритий клон популярної гри Transport Tycoon Deluxe.

Особливості встановлення:
Качаємо пакет звідси
http://downloads.sourceforge.net/openttd/openttd-0.5.3-1-i386.deb

Пригоди

Secret Maryo Chronicles
Офіційний сайт: http://www.secretmaryo.org/



Нарешті веселий водопровідник відомий нам здавна по продукції Nintendo разом зі своїми друзями радує нас і у Linux.

Особливості встановлення:
Качаємо пакети з getdeb.net
http://www.getdeb.net/download.php?release=1263&fpos=0
http://www.getdeb.net/download.php?release=1263&fpos=1

Pingus
Офіційний сайт: http://pingus.seul.org/



Гра побудована на концепції Lemmings. Включає 22 рівні.

Особливості встановлення:
sudo apt-get install pingus

Звісно ж у даній статті я не зміг осягнути і найменшої частини всіх існуючих ігор, а для тих кому цікаво я приведу адреси декількох сайтів присвячених іграм для Linux:
http://www.ubuntugames.org/
http://www.linuxgames.com/
http://www.happypenguin.org/
http://www.linuxgames.ru/