Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
 Polski Portal COLOBOTa - COLOBOT Polish Portal
Forum - Polski Portal COLOBOTa
Strona głównaStrona główna UżytkownicyUżytkownicy GrupyGrupy StatystykiStatystyki


Poprzedni temat «» Następny temat
Przesunięty przez: Abadon
20-02-2010, 13:55
Radar3.0

Jak oceniasz przydatność tego programu?
1-wogle nie przydatny
20%
 20%  [ 3 ]
2-żadko sie przydaje
0%
 0%  [ 0 ]
3-czasami się przyda
40%
 40%  [ 6 ]
4-no przydatny
26%
 26%  [ 4 ]
5-jak ja mogłem bez niego żyć??
13%
 13%  [ 2 ]
Głosowań: 15
Wszystkich Głosów: 15

Autor Wiadomość
jedrus113 
Wielki Geniusz


Twoja ulubiona misja: Na pewno nie 1: Na Saari 1: Uran
Wiek: 23
Dołączył: 07 Lip 2009
Posty: 20
Skąd: 127.0.0.1
Wysłany: 08-07-2009, 18:55   

To że można ulepszyć program znaczy że go trzeba ulepszyć, bo jak to wygląda że mój program niejest doskonały??
//jakaś porypana składnia... Warn? -adiblol
dobra adiblol nie czepiaj się, widać, że się stara -DemoLisH
_________________
Moja stronka www.jedrus113.cba.pl
Ostatnio zmieniony przez DemoLisH 22-07-2009, 01:53, w całości zmieniany 2 razy  
 
 
     
pipok 


Dołączył: 24 Cze 2009
Posty: 53
Wysłany: 08-07-2009, 21:10   Re: Radar4.0

Funkcję Compte() wywołujesz tyle razy, ile jest gatunków Obcych. To znaczy, że tyle samo razy (sześć) przeglądasz wszystkie obiekty planszy, sprawdzając, czy są danego typu. A wystarczy obiekty przeglądnąć tylko raz, powiększając w razie napotkania Obcego sumę dla jego kategorii:

Kod:
extern void object::Radar_Arr()
{
  int nr, obcy[], suma[];
  string[] napis;
  object p;
 
  nr = 0;
  suma[nr]=0; obcy[nr] = AlienQueen;  napis[nr++]="krolowych obcych";
  suma[nr]=0; obcy[nr] = AlienAnt;    napis[nr++]="mrowek";
  suma[nr]=0; obcy[nr] = AlienWasp;   napis[nr++]="os";
  suma[nr]=0; obcy[nr] = AlienSpider; napis[nr++]="pajakow";
  suma[nr]=0; obcy[nr] = AlienWorm;   napis[nr++]="robakow";
  suma[nr]=0; obcy[nr] = AlienEgg;    napis[nr++]="jaj";
 
  for (int i=0 ; i<10000 ; i++ )
  {
    p = retobject(i);
    if ( p == null ) break;
    for (int j = sizeof(obcy) - 1; j > 0 ; j--)
    {
      if (p.category == obcy[j]) suma[j]++;
    }
  }
 
  for (int j = sizeof(obcy) - 1; j > 0 ; j--)
  {
     if (suma[j]!=0) message(suma[j]+" "+napis[j]);
  }
}
 
     
Korniszon 
Me Gusta: PPC


Twoja ulubiona misja: Spying...
Pomógł: 1 raz
Wiek: 17
Dołączył: 01 Paź 2010
Posty: 108
Skąd: Stamtąd, gdzie ty.
Wysłany: 14-10-2010, 11:02   

Ja nawet zrobiłem program liczący wszystkie z możliwych do znalezienia obiektów.
Kod:
extern void object::Radar_All_Objects()
{
    errmode(0); //błąd wyskakiwał mi przy którejś pętli for, więc wpisałem errmode(0);
    message("Program daje liczbę różnych obiektów na planszy");
    int [] suma, obj;
    int nr;
    object p;
    string [] napis;
   
    nr = 0;
    suma[nr] = 0; obj[nr] = Houston; napis[nr++] = "centrum kontroli misji";
    suma[nr] = 0; obj[nr] = SpaceShip; napis[nr++] = "statków kosmicznych";
    suma[nr] = 0; obj[nr] = BotFactory; napis[nr++] = "fabryk robotów";
    suma[nr] = 0; obj[nr] = ResearchCenter; napis[nr++] = "centrum badawczych";
    suma[nr] = 0; obj[nr] = RadarStation; napis[nr++] = "radarów";
    suma[nr] = 0; obj[nr] = ExchangePost; napis[nr++] = "stacji przekaźnikowych";
    suma[nr] = 0; obj[nr] = RepairCenter; napis[nr++] = "centrum naprawczych";
    suma[nr] = 0; obj[nr] = DefenseTower; napis[nr++] = "wież obronnych";
    suma[nr] = 0; obj[nr] = AutoLab; napis[nr++] = "laboratoriów";
    suma[nr] = 0; obj[nr] = PowerStation; napis[nr++] = "stacji energytycznych";
    suma[nr] = 0; obj[nr] = PowerPlant; napis[nr++] = "fabryk ogniw elektrycznych";
    suma[nr] = 0; obj[nr] = NuclearPlant; napis[nr++] = "elektrowni atomowych";
    suma[nr] = 0; obj[nr] = Converter; napis[nr++] = "hut";
    suma[nr] = 0; obj[nr] = Derrick; napis[nr++] = "kopalni";
    suma[nr] = 0; obj[nr] = PowerCaptor; napis[nr++] = "piorunochronów";
    suma[nr] = 0; obj[nr] = Vault; napis[nr++] = "skrytek";
    suma[nr] = 0; obj[nr] = AlienNest; napis[nr++] = "gniazd obcych";

    suma[nr] = 0; obj[nr] = PracticeBot; napis[nr++] = "robotów ćwiczebnych";
    suma[nr] = 0; obj[nr] = TargetBot; napis[nr++] = "robotów - celów";
    suma[nr] = 0; obj[nr] = WheeledGrabber; napis[nr++] = "transporterów na kołach";
    suma[nr] = 0; obj[nr] = TrackedGrabber; napis[nr++] = "transporterów na gąsienicach";
    suma[nr] = 0; obj[nr] = WingedGrabber; napis[nr++] = "transporterów latających";
    suma[nr] = 0; obj[nr] = LeggedGrabber; napis[nr++] = "transporterów na nogach";
    suma[nr] = 0; obj[nr] = WheeledSniffer; napis[nr++] = "szperaczów na kołach";
    suma[nr] = 0; obj[nr] = TrackedSniffer; napis[nr++] = "szperaczów na gąsienicach";
    suma[nr] = 0; obj[nr] = WingedSniffer; napis[nr++] = "szperaczów latających";
    suma[nr] = 0; obj[nr] = LeggedSniffer; napis[nr++] = "szperaczów na nogach";
    suma[nr] = 0; obj[nr] = WheeledShooter; napis[nr++] = "dział na kołach";
    suma[nr] = 0; obj[nr] = TrackedShooter; napis[nr++] = "dział na gąsienicach";
    suma[nr] = 0; obj[nr] = WingedShooter; napis[nr++] = "dział latających";
    suma[nr] = 0; obj[nr] = LeggedShooter; napis[nr++] = "dział na nogach";
    suma[nr] = 0; obj[nr] = WheeledOrgaShooter; napis[nr++] = "dział organicznych na kołach";
    suma[nr] = 0; obj[nr] = TrackedOrgaShooter; napis[nr++] = "dział organicznych na gąsienicach";
    suma[nr] = 0; obj[nr] = WingedOrgaShooter; napis[nr++] = "latających dział organicznych";
    suma[nr] = 0; obj[nr] = LeggedOrgaShooter; napis[nr++] = "dział organicznych na nogach";
    suma[nr] = 0; obj[nr] = Subber; napis[nr++] = "nurków";
    suma[nr] = 0; obj[nr] = PhazerShooter; napis[nr++] = "dział fazowych";
    suma[nr] = 0; obj[nr] = Thumper; napis[nr++] = "uderzaczy";
    suma[nr] = 0; obj[nr] = Shielder; napis[nr++] = "osłaniaczy";
    suma[nr] = 0; obj[nr] = Recycler; napis[nr++] = "recyklerów";

    suma[nr] = 0; obj[nr] = Me; napis[nr++] = "astronautów";
    suma[nr] = 0; obj[nr] = Tech; napis[nr++] = "inżynierów";

    suma[nr] = 0; obj[nr] = TitaniumOre; napis[nr++] = "rud tytanu";
    suma[nr] = 0; obj[nr] = UraniumOre; napis[nr++] = "rud uranu";
    suma[nr] = 0; obj[nr] = Titanium; napis[nr++] = "tytanów";
    suma[nr] = 0; obj[nr] = PowerCell; napis[nr++] = "ogniw elektrycznych";
    suma[nr] = 0; obj[nr] = NuclearCell; napis[nr++] = "atomowych ogniw elektrycznych";
    suma[nr] = 0; obj[nr] = OrgaMatter; napis[nr++] = "materii organicznych";
    suma[nr] = 0; obj[nr] = BlackBox; napis[nr++] = "czarnych skrzynek";
    suma[nr] = 0; obj[nr] = TNT; napis[nr++] = "materiałów wybuchowych";
    suma[nr] = 0; obj[nr] = KeyA; napis[nr++] = "klucz a";
    suma[nr] = 0; obj[nr] = KeyB; napis[nr++] = "klucz b";
    suma[nr] = 0; obj[nr] = KeyC; napis[nr++] = "klucz c";
    suma[nr] = 0; obj[nr] = KeyD; napis[nr++] = "klucz d";

    suma[nr] = 0; obj[nr] = Mine; napis[nr++] = "min";
    suma[nr] = 0; obj[nr] = Barrier; napis[nr++] = "barier";
    suma[nr] = 0; obj[nr] = Wreck; napis[nr++] = "wraków";

    suma[nr] = 0; obj[nr] = BlueFlag; napis[nr++] = "niebieskich flag";
    suma[nr] = 0; obj[nr] = YellowFlag; napis[nr++] = "żółtych flag";
    suma[nr] = 0; obj[nr] = RedFlag; napis[nr++] = "czerwonych flag";
    suma[nr] = 0; obj[nr] = GreenFlag; napis[nr++] = "zielonych flag";
    suma[nr] = 0; obj[nr] = VioletFlag; napis[nr++] = "fioletowych flag";

    suma[nr] = 0; obj[nr] = WayPoint; napis[nr++] = "punktów kontrolnych";
    suma[nr] = 0; obj[nr] = Target2; napis[nr++] = "powietrznych punktów kontrolnych";
    suma[nr] = 0; obj[nr] = Target1; napis[nr++] = "słupów z kolcami";
    suma[nr] = 0; obj[nr] = TitaniumSpot; napis[nr++] = "złóż tytanu";
    suma[nr] = 0; obj[nr] = UraniumSpot; napis[nr++] = "złóż uranu";
    suma[nr] = 0; obj[nr] = PowerSpot; napis[nr++] = "złóż energii";

    suma[nr] = 0; obj[nr] = AlienAnt; napis[nr++] = "mrówek";
    suma[nr] = 0; obj[nr] = AlienSpider; napis[nr++] = "pająków";
    suma[nr] = 0; obj[nr] = AlienWorm; napis[nr++] = "robali";
    suma[nr] = 0; obj[nr] = AlienWasp; napis[nr++] = "os";
    suma[nr] = 0; obj[nr] = AlienEgg; napis[nr++] = "jaj";
    suma[nr] = 0; obj[nr] = AlienQueen; napis[nr++] = "królowych obcych";
   
    while(true)
    {
        for(nr = 0; nr < 1000; nr ++)
        {
            p=retobject(nr);
            if(p==null) break;
            for(int j = 0; j < sizeof(obj); j ++)
            {
                if(p.category == obj[j])
                {
                    suma[j] ++;
                }
            }
        }
        for(nr = 0; nr < sizeof(obj); nr ++)
        {
            if(suma[nr] != 0)
            {
                message(suma[nr]+" "+napis[nr]);
                suma[nr] = 0;
                wait(3);
            }
        }
    }
}

\\prawie bym zapomniał - liczy też obcych :D :!: :mrgreen: :-)
_________________
Nazywajcie mnie KL582 (nick w Minecraft)
Ostatnio zmieniony przez Korniszon 24-12-2010, 13:39, w całości zmieniany 1 raz  
 
     
adiblol 
Administrator forum
FLOSS FTW!


Twoja ulubiona misja: porównywanie formatów audio
Pomógł: 18 razy
Dołączył: 21 Kwi 2008
Posty: 1313
Skąd: pokój odsłuchowy
Wysłany: 14-10-2010, 12:32   

W wieku 9 lat taki zaawansowany program? No, gratuluję.
_________________
1Tbps Project && Telecomix Network

 
 
     
Korniszon 
Me Gusta: PPC


Twoja ulubiona misja: Spying...
Pomógł: 1 raz
Wiek: 17
Dołączył: 01 Paź 2010
Posty: 108
Skąd: Stamtąd, gdzie ty.
Wysłany: 14-10-2010, 13:32   

He he - ja już myślę nad trudniejszymi programami. :D
_________________
Nazywajcie mnie KL582 (nick w Minecraft)
 
     
Berserker 
Dark Ness


Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy
Wiek: 24
Dołączył: 24 Mar 2009
Posty: 496
Skąd: Bigos
Wysłany: 14-10-2010, 20:03   

Bys napisal co on dokladnie robi, bo mam wrazenie, ze widze pare potencjalnych usprawnien ale nie bede ich wytykal odrazu bo jeszcze sie przyczepisz, ze nie rozumiem go :P
_________________
 
 
     
Korniszon 
Me Gusta: PPC


Twoja ulubiona misja: Spying...
Pomógł: 1 raz
Wiek: 17
Dołączył: 01 Paź 2010
Posty: 108
Skąd: Stamtąd, gdzie ty.
Wysłany: 24-12-2010, 13:37   

Teraz możesz już je wtykać. :)
_________________
Nazywajcie mnie KL582 (nick w Minecraft)
 
     
Berserker 
Dark Ness


Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy
Wiek: 24
Dołączył: 24 Mar 2009
Posty: 496
Skąd: Bigos
Wysłany: 24-12-2010, 17:31   

Teraz to ich juz nie pamietam ;d

@edit

Niepotrzebnie jest tu tyle pisane. Mogles wykorzystac to, ze kategorie to tak naprawde stale typu int i za pomoca tych stalych adresowac elementy tablicy. Przyklad:

Kod:

p = retobject(i);
(p != null) ? list[p.category]++ : break;


Drugim elementem ktory by sporo ulatwil byloby stworzenie prostej klasy do zapamietywania takich bzdur jak napis. Ulatwiloby ci to zycie. Przyklad:
Kod:
public class noob
{
int cat = 0;
string msg = "";
void noob(int c, string m)
{
cat = c;
msg = m;
}
}
extern void object::Test()
{
noob list[];
list[AlienAnt] = new noob(AlienAnt, "mrowka");
message(list[AlienAnt].msg);
}

Tak kombinujac bys mogl jeszcze go uproscic (rezygnacja z wlasnych napisow i wyswietlanie po prostu kategorii w stylu "AlienAnt: 2"), ale pewnie bedziesz i tak mial problem ze zrozumieniem tego, co tu napisalem wiec nie bede sie rozpisywac :P
_________________
 
 
     
Korniszon 
Me Gusta: PPC


Twoja ulubiona misja: Spying...
Pomógł: 1 raz
Wiek: 17
Dołączył: 01 Paź 2010
Posty: 108
Skąd: Stamtąd, gdzie ty.
Wysłany: 25-12-2010, 08:56   

Mała zmiana:
Zamiast:
Kod:
message(suma[nr]+" "+napis[nr]);

może być:
Kod:
message("Ilosc "+napis[nr]+": "+suma[nr]);
_________________
Nazywajcie mnie KL582 (nick w Minecraft)
 
     
Berserker 
Dark Ness


Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy
Wiek: 24
Dołączył: 24 Mar 2009
Posty: 496
Skąd: Bigos
Wysłany: 25-12-2010, 10:30   

Drastyczna ta zmiana :)
_________________
 
 
     
Korniszon 
Me Gusta: PPC


Twoja ulubiona misja: Spying...
Pomógł: 1 raz
Wiek: 17
Dołączył: 01 Paź 2010
Posty: 108
Skąd: Stamtąd, gdzie ty.
Wysłany: 25-12-2010, 16:16   

Ale może wyświetlić:
Kod:
4 mrówek

a to może być dla niektórych niezrozumiałe.

Kod:
Ilość mrówek: 4

jest bardziej zrozumiałe. :)
_________________
Nazywajcie mnie KL582 (nick w Minecraft)
 
     
Wyświetl posty z ostatnich:   
Nie możesz pisać nowych tematów
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum

Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Polski Portal COLOBOTa © 2008 - 2012