Maintenant, faut le faire avec des bloc de commandes
Voilà un programme en AutoIt qui vous ouvre paint, et vous dessine plein de space invaders !
Je suppose que ce programme ne marche que sur windows 7 ! Les «touches» ne sont pas au même endroit.
De plus, je n'ai pas trouver un moyen simple d'ouvrir paint, donc j'ai donné le chemin d'accès, je ne sais pas si c'est possible, mais il pourrait être installer à un autre endroit, il vous suffirait de modifier la ligne 43.
Global $pos[2] Global $taille = 10 Global $space[26][2] = [[0,0],[0,$taille],[$taille,$taille],[$taille,2*$taille],[$taille,3*$taille],[$taille,4*$taille],[2*$taille,0],[2*$taille,$taille],[2*$taille,4* $taille],[2*$taille,5*$taille],[3*$taille,$taille],[3*$taille,2*$taille],[3* $taille,3*$taille],[3*$taille,4*$taille],[ 4*$taille,0], [4*$taille, $taille],[4*$taille ,4*$taille],[4*$taille,5 *$taille],[5*$taille ,$taille],[5*$taille,2* $taille], [5*$taille,3*$taille],[5*$taille,4*$taille],[6 *$taille,0],[6*$taille,$taille],[2* $taille,2*$taille],[4*$taille, 2*$taille]] Global $i Global $y Global $oeil
func Quitter() Exit EndFunc
Func dessin() $pos[0] = int (Random(83,1164)) $pos[1] = int (Random(211,798))
for $i=0 to 23 for $y = 0 to 6 step + 2 MouseClickDrag("left", $pos[0] - $space[$i][0],$pos[1] - $space[$i][1] - $y,$pos[0] - $space[$i][0] - 6,$pos[1] - $space[$i][1] - $y, 0) Next Next
for $i=24 to 25 $oeil = int (Random(0,2)) for $y = 0 to 6 step + 2 MouseClickDrag("right", $pos[0] - $space[$i][0],$pos[1] - $space[$i][1] - $y - $oeil * 10,$pos[0] - $space[$i][0] - 6,$pos[1] - $space[$i][1] - $y - $oeil * 10, 0) Next Next
Désolé, c'est moche, mais je ne sais pas trop quel langage de programmation s’approche de la syntaxe de l'AutoIt. Et, le programme met pas mal de temps à dessiner, en tout cas chez moi.
Le simple fait d'appuyer sur échap ferme le programme.
J'y est mis du temps mais je vient de faire une version en java-script. Comme le programme fait 1 Mo je l'ai mit ici. Le refresh ce fait toutes les 15s car les calculs sont super lourds.
Salut, super ce petit défi ! Je n'ai pas lu toutes les réponses du post mais j'aimerais savoir si il y avait un moyen de le faire entièrement en HTML/CSS ? Merci !
Au passage, ça peut sembler long 8 pages mais il n'y a pas trop de flood inutile. Donc si tu les lis tu verras pleins de façon de faire différentes en plein de langages. C'est tres sympa pour l'apprentissage !
Surtout si tu es dev web, des version web il y en a eu sur toutes les pages ou presques !
@Eskimon: Je ne pense pas que ce soit possible, ce serait pas drôle sinon .
Après pour faire une simili-pause tu peux toujours faire une énorme boucle avec des milliards d'itérations, mais ce n'est pas d'une propreté exceptionnelle et ça risque d'être délicat pour régler le délai ...
Normalement vu que le BrainFuck est "Turing Compliant" ca devrait etre possible de faire des appels systèmes, mais j'ai pas trouvé de ressources qui expliquerait comment faire...
Wikipédia a écrit:
Le brainfuck est pourtant un langage Turing-complet1, ce qui signifie que, malgré les apparences, il est théoriquement possible d'écrire n'importe quel programme informatique en brainfuck.
Une version pourrie en C#, vous excuserez la qualité du code (et, surtout, surtout, de la sortie), il se fait tard et j'ai mal aux yeux.
using System;
using System.Windows.Forms;
using System.Drawing;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
const int BLOCK_SIZE = 32;
int[,] map = new int[,]
{
{0,0,1,0,1,0,0},
{0,1,1,1,1,1,0},
{0,1,2,1,2,1,0},
{0,1,0,1,0,1,0},
{1,1,1,1,1,1,1},
{1,0,1,0,1,0,1}
};
int startX;
int startY;
Bitmap bmp;
Graphics graph;
Pen pen;
public Form1()
{
InitializeComponent();
InitializeGrapher();
tim_Timer.Start();
}
private void InitializeGrapher()
{
bmp = new Bitmap(Width, Height);
graph = Graphics.FromImage(bmp);
}
private void InitializePosition()
{
startX = GetRandom(Width / BLOCK_SIZE - 7);
startY = GetRandom(Height / BLOCK_SIZE - 6);
}
private int GetRandom(int max)
{
Random rand = new Random();
return rand.Next(max);
}
private void Render()
{
InitializeRender();
GetNewEyesPosition();
for (int x = 0; x < 6; x++)
{
for (int y = 0; y < 7; y++)
{
int posX = (startX + y) * BLOCK_SIZE;
int posY = (startY + x) * BLOCK_SIZE;
if (map[x, y] == 1) DrawCell(posX, posY);
if (map[x, y] == 2) DrawEye(posX, posY);
}
}
pb_Ozone.Image = bmp;
}
private void InitializeRender()
{
pen = GetPen();
InitializePosition();
graph.Clear(Color.White);
}
private void GetNewEyesPosition()
{
int first = GetRandom(10);
int second = GetRandom(10);
PlaceFirstEye(first);
PlaceSecondEye(second);
}
private void PlaceFirstEye(int first)
{
map[2, 2] = 0;
map[3, 2] = 0;
if (first <= 4) map[2, 2] = 2;
else map[3, 2] = 2;
}
private void PlaceSecondEye(int second)
{
map[2, 4] = 0;
map[3, 4] = 0;
if (second >= 4) map[2, 4] = 2;
else map[3, 4] = 2;
}
private void DrawCell(int posX, int posY)
{
graph.FillRectangle(new SolidBrush(pen.Color),
new Rectangle(new Point(posX, posY),
new Size(BLOCK_SIZE, BLOCK_SIZE)));
}
private void DrawEye(int posX, int posY)
{
graph.FillEllipse(new SolidBrush(pen.Color),
new Rectangle(new Point(posX, posY),
new Size(BLOCK_SIZE, BLOCK_SIZE)));
}
private Pen GetPen()
{
int r = GetRandom(255);
int g = GetRandom(255);
int b = GetRandom(255);
return new Pen(Color.FromArgb(r, g, b));
}
private void tim_Timer_Tick(object sender, EventArgs e)
{
Render();
}
}
}
Avec les yeux qui deviennent lourds, je n'ai eu ni le courage, ni l'envie de repasser les fonctions au propre.
EDIT : je viens d'y penser, mais l'effet est encore meilleur avec TransparencyKey = Color.White; dans le constructeur de la Form ! Notre petit extraterreux envahi l'écran sans même nous gêner !
- Edité par Chiheb2012 4 mai 2013 à 23:56:54
"Il est impossible pour un homme d'apprendre ce qu'il croit déjà connaître"
Bon je tenterais peut être une version BF++ pour faire un gif (si il fait moche et que j'arrive à m'ennuyer )... Ce qui serait cool c'est que quelqu'un me sorte une spec du format gif (j'en avais trouvé une mais elle allais pas assez à l'essentiel et j'ai pas de temps à perdre ce soir) ou un algo de codage de ces derniers...
EDIT : bon aller je vous le fait aussi en Ti Basic
[[0,0,1,0,1,0,0][0,1,1,1,1,1,0][0,1,0,1,0,1,0][0,1,0,1,0,1,0][1,1,1,1,1,1,1][1,0,1,0,1,0,1]]->[A]
While 1
entAléat(0,8)->Y
entAléat(0,2)->X
EffEcr
For(A,1,6)
For(B,1,7)
If [A](A,B)
End
End
For(Z,0,7)
69!
End
End
(Et oui, la syntaxe est deroutante et on fais avec les moyens du bord ...)
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
🍊 - Étudiant - Codeur en C | Zeste de Savoir apprenez avec une communauté | Articles - ♡ Copying is an act of love.
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !