Skocz do zawartości

Rekomendowane odpowiedzi

Ta minigierka występuje chyba na każdym forum. Gra polega na tym, że jedna osoba wystawia .AMX oraz opis skryptu, a druga, pokazuje .PWN, które jeśli zostanie zaakceptowane przez pierwszą osobę, druga musi wystawić w poście następny skrypt i tak w kółko.

UWAGA: skrypt musi być w 100% napisany przez ciebie, nie wolno używać czyichś prac.

PG #1

Stwórz funkcję odwracającą tekst, by zaczynał się od końca, przykładowo:

/123456789

->

987654321/

.AMX w załączniku.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
#include a_samp.inc

new tablica[] = "/123456789";

public OnFilterScriptInit()
{
    new tmp[11];
    for(new x=sizeof(tablica)-1, y=-1; x != y; x--)
    {
        format(tmp, 11, "%s%c", tmp, tablica[x]);
    }
    print(tmp);
    return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zaliczam. Mój kod:

native strlen(const string[]);
native print(const string[]);

forward OnRconCommand(cmd[]);
forward OnFilterScriptInit();

ReverseText(text[])
{
	new str2[256],
		len;

	for(new i = strlen(text) - 1; i >= 0; i--)
	{
		str2[len] = text[i];
		len++;
	}
	return str2;
}

public OnFilterScriptInit()
{
    print("Wpisz tekst w konsoli, a zostanie odwrócony!");
    return 1;
}

public OnRconCommand(cmd[])
{
	print(ReverseText(cmd));
	return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

PG #2

To ja napiszę :)

Teraz coś prościutkiego. Napisz skrypt, który po podaniu boku kwadratu, oblicza jego obwód, pole i przekątną. Nie wolno używać żadnych funkcji pomocniczych, tylko print, printf i strval.

Mała pomoc co do przekątnej:

d = a * (pierwiastek kwadratowy z 2)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Proszę bardzo:

#include a_samp.inc

public OnRconCommand(cmd[])
{
    new bok=strval(cmd);
    printf("Obwód:\t%d", 4*bok);
    printf("Pole:\t%d", bok*bok);
    printf("Przekątna:\t%f", bok*1.41421356);
    return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Chyba jednak przesadziłem :(

#include <a_samp>

public OnFilterScriptInit()
{
    print("Podaj bok kwadratu, a dostaniesz jego obwód, pole i przekątną!");
    return 1;
}

public OnRconCommand(cmd[])
{
    new a = strval(cmd);

    if(a <= 0)
        return print("Zła wartość!");

    printf("Obwód: %d", 4 * a);
    printf("Pole: %d", a * a);
    printf("Przekątna: %f", a * 1.414213);
    return 0;
}

Zaliczam.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

PG #3

Jednak nie oddaję kolejki:

Zadanie zrób skrypt na losowanie: losuje on 2 liczby potem wyświetla ile razy która padła oraz w procentach ile razy padła na ile losowań.

(tylko public OnRconCommand - podajemy ilość losowań)

.amx w załaczaku

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jestem początkujący, ale zrobiłem coś takiego:

public OnRconCommand(cmd[])
{
	new a = strval(cmd);
	new Float:c,Float:d;

	if(a <= 0) return print("Ilość losowań musi być większa od 0");

	for(new i=0; i<a; i++)
	{
	if(random(2) == 0) c++;
	else d++;
	}

	printf("Losowań: %d", a);
	printf("0 wypadło: %0.0f razy", c);
	printf("1 wypadło: %0.0f razy", d);
	printf("0 -> %0.0f%% || 1 -> %0.0f%%", (c/a)*100, (d/a)*100);
	return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

PG #4

Napisz funkcję, która na start pokazuje aktualny czas, w formacie

DD.MM.RRRR GG:MM:SS

Zakazane jest używanie instrukcji warunkowych, tylko gettime, getdate oraz printf.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

#PG 4 = Banał :P

#include a_samp

public OnFilterScriptInit()
{
    new t[6];
    getdate(t[2], t[1], t[0]);
    gettime(t[3], t[4], t[5]);
    printf("%02d.%02d.%04d %02d:%02d:%02d", t[0], t[1], t[2], t[3], t[4], t[5]);
}

Oddaję kolejkę proszę coś trudniejszego :D

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zaliczam.

#include <a_samp>

public OnFilterScriptInit()
{
	new Year,
		Month,
		Day,
		Hour,
		Minute,
		Second;

	getdate(Year, Month, Day);
	gettime(Hour, Minute, Second);

	printf("%02d.%02d.%d %02d:%02d:%02d", Day, Month, Year, Hour, Minute, Second);
    return 1;
}

Zaraz wymyślę coś hardcorowego.

Dodane po jakimś czasie:

PG #5

Stwórz skrypt, który po wpisaniu liczbę w konsoli, wyświetla silnię danej liczby.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
#include <a_samp>

public OnRconCommand(cmd[])
{
	printf("%d", Factorial(strval(cmd)));
	return 1;
}

/*
	nazwa: Factorial by Sam Wiesz Kto ;P
	opis: oblicza silnię
	argumenty:
		* liczba
*/
stock Factorial(liczba)
{
	if(liczba == 0 || liczba == 1)
		return 1;

	new w = 1;

	for(new i = 2; i <= liczba; i++)
	{
		w *= i;
	}
	return w;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie wiem co to jest ta silnia :P ale wynki wychodzą takie same:

public OnRconCommand(cmd[])
{
    new liczba = strval(cmd);

	if(liczba == 0 || liczba == 1)
		return print("Wpisz liczbę, aby obliczyć jej silnię!") & 1;

    new w = 1;
    for(new i = 2; i <= liczba; i++)
	{
		w *= i;
	}

	printf("%d! = %d", liczba, w);
	return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ja napisałem własne, ale i tak wyszło podobne do tego co pokazał DrunkeR, innego sposobu nie znam:

public OnRconCommand(cmd[])
{
	new a = strval(cmd);
 	new b = 1;

	for(new i = a; i > 0; i--)
	{
	    b = b*i;
	}
	printf("%d! = %d", a, b);
	return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

PG #6

Zrób skrypt, który po podaniu liczby wyświetli w pionie i poziomie tyle (losowo wybranych) jedynek i zer ile było podane i policzy ile jedynek jest nad przekątną, ile na niej, a ile pod nią.

Chodzi o przekątną \

Pewnie niejasno wyjaśniłem więc przedstawię na kolorach.

Jeśli ktoś wpisał np. 4, program wyświetli:

1 0 1 0

0 1 0 1

1 1 0 1

1 1 0 0

W tym wypadku są:

3 jedynki nad przekątną

2 na niej

i 4 pod nią

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

#include <a_samp>

public OnRconCommand(cmd[])
{
	new x = strval(cmd);
	new string[128], przekatna, pod, nad;
	for(new m=0; m<x; ++m)
	{
		for(new i=0; i<x; ++i)
		{
		    new str[4];
		    new l = random(2);
		    valstr(str, l);
		    strins(string, str, strlen(string));
		    
		    if(l == 1)
		    {
			    if(m == i)      przekatna++;
			    else if(m > i)  pod++;
			    else if(m < i) 	nad++;
			}
		}
		print(string);
		strdel(string, 0, strlen(string));
	}
	print("___________________");
	printf("Jedynek NAD przekatna: %d", nad);
	printf("Jedynek POD przekatna: %d", pod);
	printf("Jedynek NA przekatnej: %d", przekatna);
	print("___________________");
	print("___________________");
	return 1;
}

Może później dam jakieś zadanie, ale nie czekajcie i jak ktoś ma pomysł niech pisze.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Oczywiście zaliczam. Mój kod:

public OnRconCommand(cmd[])
{
	new a = strval(cmd);
	new b,x,y,z;

	for(new u; u < a; u++)
	{
		new string[100];
		new string2[100];
		for(new i; i < a; i++)
		{
		    b = random(2);
			valstr(string2, b);
			strins(string, string2, i);
			if(b == 1)
			{
				if(u < i) x++;
				if(u == i) y++;
				if(u > i) z++;
			}
		}
	    print(string);
	}
	print("_______");
	printf("Jedynek nad przekątną -> %d", x);
	printf("Jedynek na przekątnej -> %d", y);
	printf("Jedynek pod przekątną -> %d", z);
	print(" ");
	return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×