Forum huvudsida -> Programmering -> Programmerings lek
Python | 17:56 - 24:e Juli 2008 | Post #151 | |
Medlem Inlägg: 157 Skicka PM |
Slängde ihop en lite snabbt i Python med Pygame
Koden behöver Python + PyGame installerat för att funka. ------------------------- ------------------------- Senast redigerad 10:19 - 25:e Juli 2008 |
FunkyChicken | 12:31 - 28:e Juli 2008 | Post #152 | |
Nyhetsredaktör Inlägg: 800 Skicka PM |
Blinkenlights påtvingade radnummer (feature-request: en knapp för att hämta code-texten utan nummer!) avskräcker mig från att provköra (sen har jag inte python på jobbet heller...) men det ser ju rätt ut. +1 internet! Eftersom ingen annan vill vara med och leka får Python hitta på ny uppgift! |
Python | 13:14 - 28:e Juli 2008 | Post #153 | |
Medlem Inlägg: 157 Skicka PM |
Jag vill ha en BASIC-Interpretator. Den ska stöda minst IF-THEN-ELSE, Variabler, GOTO, FOR-NEXT, PRINT och INPUT. Exempel på kod som tolken ska köra:
C eller C++. ------------------------- ------------------------- Senast redigerad 09:10 - 29:e Juli 2008 |
HärJ | 19:22 - 28:e Juli 2008 | Post #154 | |
Moderator Inlägg: 1198 Skicka PM |
20 namn = INPUT så har man inte skrivit i någon av de BASIC-varianter jag har pysslat med snarare 20 INPUT namn men det är i min lilla värld ------------------------- Tänk om jag vore en skalärprodukt! |
Python | 23:17 - 28:e Juli 2008 | Post #155 | |
Medlem Inlägg: 157 Skicka PM |
Citat av HärJ:
Jo det är sant, jag ändrar. ------------------------- ------------------------- |
Nissebosselasse | 23:20 - 28:e Juli 2008 | Post #156 | |
Medlem Inlägg: 490 Skicka PM |
Borde det inte vara INPUT namn$ också? Så var det på min tid... ------------------------- http://pushingcows.se Gula Nallen |
HärJ | 01:20 - 29:e Juli 2008 | Post #157 | |
Moderator Inlägg: 1198 Skicka PM |
Citat av Nissebosselasse:Borde det inte vara INPUT namn$ också? Så var det på min tid... förutsatt att du inte har ett namn som enbart består av siffror ------------------------- Tänk om jag vore en skalärprodukt! |
FunkyChicken | 16:44 - 29:e Juli 2008 | Post #158 | |
Nyhetsredaktör Inlägg: 800 Skicka PM |
Detta är nog en vanlig missuppfattning om variabler i BASIC. Suffixet $ betyder att variabeln är en sträng (% betyder int, osv). Detta låter BASIC-språket vara starkt typat utan att man ens behöver deklarera sina variabler. Det är dock fullt möjligt att explicit deklarera variabler att vara av en viss typ om man vill. INPUT namn är alltså helt okej om man tidigare gjort DIM namn AS STRING eller DEFSTR n |
jla | 13:54 - 27:e September 2009 | Post #159 | |
Medlem Inlägg: 18 Skicka PM |
Händer det något i den här tråden?? /jla |
stampe90 | 08:16 - 28:e September 2009 | Post #160 | |
Medlem Inlägg: 0 Skicka PM |
Vi kör igång med ny fråga: Ett program skrivet i valfrittspråk och utseende. När man startar skall man välja vilken gånger tabell man vill se, väljer man 3:an så skall 3:ans gånger tabell printas ut 0 - 10. |
martin310 | 09:38 - 28:e September 2009 | Post #161 | |
Medlem Inlägg: 132 Skicka PM |
Så:
Funkar i VC++ ------------------------- Hjälp jorden med Granola, det är gratis och funkar på både Windows och Linux, och försämrar inte datorns prestandad! Senast redigerad 09:44 - 28:e September 2009 |
stampe90 | 10:28 - 28:e September 2009 | Post #162 | |
Medlem Inlägg: 0 Skicka PM |
Det där gick fort, shit.. Ingen skola eller jobb idag eller?:P |
jla | 17:15 - 28:e September 2009 | Post #163 | |
Medlem Inlägg: 18 Skicka PM |
Ny uppgift?? /jla |
Vitdom | 20:03 - 28:e September 2009 | Post #164 | |
Medlem Inlägg: 71 Skicka PM |
Citat av jla:Ny uppgift?? Skriv ett program(valfritt språk) som ber användaren att skriva in en sträng av 10 olika tecken i intervallet '0' - '9' & 'A' - 'Z' & 'a' - 'z'. Programmet ska sedan ta dessa tecken och skriva ut dem i en ordning sorterad efter hur ofta varje tecken förekommer i denna fil: http://vitdom.webs.com/tecken.txt I filen har exakt 10 000 tecken mellan intervallen '0' - '9' & 'A' - 'Z' & 'a' - 'z' slumpats ut. De tecken som förekommer mest ska skrivas ut först. Förekommer två tecken lika många gånger i filen så ska det tecken som skrevs in först skrivas ut först. -------------------------
Senast redigerad 20:38 - 28:e September 2009 |
martin310 | 17:12 - 29:e September 2009 | Post #165 | |
Medlem Inlägg: 132 Skicka PM |
Citat av stampe90:Det där gick fort, shit.. Ingen skola eller jobb idag eller?:P Faktiskt inte! (Studiedag) LOL, har basen (skriven på max tio min.) men vet inte resten. Så går det när man går i 8:an . ------------------------- Hjälp jorden med Granola, det är gratis och funkar på både Windows och Linux, och försämrar inte datorns prestandad! Senast redigerad 17:34 - 29:e September 2009 |
Kekke | 16:28 - 30:e September 2009 | Post #166 | |
Medlem Inlägg: 4 Skicka PM |
Tror jag lyckades lösa det i C#.NET, är inte helt säker på att det är rätt så du kan väl kolla om den sorterar rätt. Edit* Vet fan inte vad som är fel med formateringen, mellanslag/tabsen visas ju inte.. Edit** Verkar inte vara rätt, uppdaterar snart igen. Edit*** Nu ska det fungera, ny screenshot: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace BlinkenlightsProg01 { public partial class Form1 : Form { int[] intNumOfTimes = new int[200]; int[] banned = new int[3000]; static int bannedCounter = 0; public Form1() { InitializeComponent(); for (int i = 0; i < 200; i++) { intNumOfTimes[i] = 0; } } int [] FindHighestNumber() { int[] iTemp = new int[15]; int[] iTemp2 = new int[15]; int iTimes = 0; for (int i = 0; i < 200; i++) { if (intNumOfTimes[i] > iTemp[0]) { bool wasitbanned = false; for (int j = 0; j < 1000; j++) { if (i == banned[j]) wasitbanned = true; } if (!wasitbanned) { iTemp2[0] = i; iTemp[0] = intNumOfTimes[i]; } } } for (int i = 0; i < 200; i++) { if (intNumOfTimes[i] == iTemp[0]) { iTemp[++iTimes] = i; } } return iTemp2; } private void button1_Click(object sender, EventArgs e) { if (tboInput.Text.Length == 10) { string strOutput = ""; StreamReader srStream = new StreamReader(@"C: ecken.txt"); int k = 0; while (!srStream.EndOfStream) { k = srStream.Read(); intNumOfTimes[k]++; } while (tboOutput.Text.Length != 10) { int[] nums = FindHighestNumber(); for (int i = 0; i < 10; i++) { for (int j = 0; j < 15; j++) { if ((int)tboInput.Text[i] == nums[j]) strOutput += tboInput.Text[i]; } } tboOutput.Text = strOutput; for (int i = 0; i < 15; i++) { banned[bannedCounter++] = nums[i]; nums[i] = 0; } } lblStatus.Text = "Sorted"; } else { lblStatus.Text = "Please enter 10 characters and/or numbers"; } } } } ------------------------- Ingen signatur! Senast redigerad 17:07 - 30:e September 2009 |
Vitdom | 23:33 - 30:e September 2009 | Post #167 | |
Medlem Inlägg: 71 Skicka PM |
Verkar funka bra enligt den senaste bilden! Har själv ingen C#-kompilator så jag kan inte köra den. -------------------------
Senast redigerad 23:37 - 30:e September 2009 |
Kekke | 17:56 - 1:a Oktober 2009 | Post #168 | |
Medlem Inlägg: 4 Skicka PM |
Jag tar en tävling vi hade på ett annat forum, som Slush från cout.se gav oss. Jag tänkte att de som känner sig manad skulle implementera en lite floodfill-funktionalitet. Jag har skrivit en liten bas i C++ och lämnat funktionen "floodfill" tom. Funktionens uppgift är att fylla ett fält med en ny färg. Ett fält definieras av att den ska vara samma färg som sträcker sig till en heldragen eller diagonal linje, eller till kanten på den totala ytan. Detta är alltså på samma sätt som "hinken" fungerar i MS Paint och liknande enklare ritprogram. För att slippa GUI och allt sådant så representeras en "färg" av ett tecken. Den totala ytan representeras av Area-klassen som har metoder för att hämta och rita en färg på en given xy-position. Utdata från programmet ska se ut såhär om det fungerar som det är tänkt: Before: ...#.....#...#.. ..#.......#.#.#. ..#........#...# ..#............# ..#....#####...# ..#...#.....#..# ..#...#......##. ..#...#.#....... ..#....#.#.##... ..#.......#..#.. ..#..........#.. ..##########.#.. ..#..........#.. ..#########..#.. ..#..........#.. ..############.. After: ...# #...#.. ..# #.# #. ..# # # ..# # ..# ##### # ..# #.....# # ..# #......##. ..# #.#....... ..# # #.##... ..# # #.. ..# #.. ..########## #.. ..# #.. ..######### #.. ..# #.. ..############.. Det vill säga, ytan i mitten av figuren har fyllts med mellanslag istället för punkter. Baskoden ser ut så här och ska inte behöva förändras med undantag för floodfill-funktionen: #include <iostream> #include <algorithm> class Area { public: /*
Area(int width, int height, const char* initdata) : m_width(width), m_height(height) { data = new char[width
} /*
void setChar(int x, int y, int ch) { if (isValid(x, y)) data[y*m_width+x] = ch; } /*
char getChar(int x, int y) const { if (isValid(x, y)) return data[y*m_width+x]; return 0; } /*
int getWidth() const { return m_width; } /*
int getHeight() const { return m_height; } /*
bool isValid(int x, int y) const { return x >= 0 && x < m_width && y >= 0 && y < m_height; } private: int m_width, m_height; char* data; }; /*
std::ostream& operator<<(std::ostream &stream, const Area &a) { for (int y = 0; y < a.getHeight(); y++) { for (int x = 0; x < a.getWidth(); x++) { stream << a.getChar(x, y); } stream << std::endl; } return stream; } /**********************************************************************
void floodfill(Area &a, int x, int y, char ch, char back) { // FIXME } int main() { // Positionen där vi ska börja fylla const int x = 4; const int y = 4; const char data[] = { "...#.....#...#.." "..#.......#.#.#." "..#........#...#" "..#............#" "..#....#####...#" "..#...#.....#..#" "..#...#......##." "..#...#.#......." "..#....#.#.##..." "..#.......#..#.." "..#..........#.." "..##########.#.." "..#..........#.." "..#########..#.." "..#..........#.." "..############.." }; Area area(16, 16, data); std::cout << "Before:" << std::endl << area; // Fyller fältet som finns på (x, y) med mellanslag floodfill(area, x, y, ' ', area.getChar(x, y)); std::cout << "After:" << std::endl << area; } } Mellanslagen vid After verkar inte fungera, hänvisar er till http://www.cout.se/forum/5785-post57.html om ni inte förstår. Lycka till! ------------------------- Ingen signatur! |
Kekke | 16:20 - 6:e Oktober 2009 | Post #169 | |
Medlem Inlägg: 4 Skicka PM |
Ingen som tänker göra ett försök? ------------------------- Ingen signatur! |
jla | 16:09 - 7:e Oktober 2009 | Post #170 | |
Medlem Inlägg: 18 Skicka PM |
Den e lite för svår för mig :-( |
Kekke | 18:49 - 7:e Oktober 2009 | Post #171 | |
Medlem Inlägg: 4 Skicka PM |
Eftersom att ingen verkar lösa den postar jag en ny lättare uppgift. Du ska skapa ett program som ska känna igen och hitta en 10x10 pixlar stor bild (Bild 1) som finns någonstans i en större a skriva ut vilken top-left position den lilla bilden har i den stora bilden. Detta ska givetvis fungera med vilka bilder som helst, även om den hittar flera resultat! Den andra bilden är riktigt stor, men det får ni nöja er med. Lycka till! ------------------------- Ingen signatur! |
Vitdom | 23:22 - 7:e Oktober 2009 | Post #172 | |
Medlem Inlägg: 71 Skicka PM |
Problem med bilderna löst: bildhittare.zip images.h innehåller bilddata som kan kompileras direkt till ett data som programmet kan använda efter kompileringen. Den genererades med GIMP 2.6.7 efter de två bifogade .BMP filerna. Källkod för programmet:
-------------------------
|
jla | 15:47 - 23:e Oktober 2009 | Post #173 | |
Medlem Inlägg: 18 Skicka PM |
Ny uppgift?? |
Forum huvudsida -> Programmering -> Programmerings lek
Du får inte posta i den här tråden | Till toppen
Datum
2024-12-22 04:59
Vecka: 51
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.