Python: Kann mir jemand beim Programmieren helfen?

Hallo erstmal. Ich bin Anfänger und bräuchte eure Hilfe.

Ich soll mit Raycasting etwas in Python implementieren.

Das ist die Aufgabe:

import math

class Canvas():
  def __init__(self, width, height, background = " "):
    """Initialisation method for the Canvas class"""
    pass

  def render(self):
    """
    Rendering method for the raytracer. Renders all objects attached to the canvas.
    Everything is drawn using raycasting. The canvas is positioned at (0.0, 0.0, -1.0) and has the endpoints(-1.0, -1.0, -1.0), (-1.0, 1.0, -1.0), (1.0, 1.0, -1.0), (1.0, -1.0, -1.0).
    The camera is positioned at (0.0, 0.0 , -10.0).
    Rays are send from the camera to the sampling points on the canvas.
    You do not need to implement clipping, backface culling or similar methods.
    Make sure to send one ray per entry in the canvas.
    In addition make sure that only the nearest collision is drawn per ray, i.e. implement z-occlusion.
    The color returned by a given ray is the color of the nearest collison's hit object.
    When no attached object is hit, the color returned for that ray is the background of the canvas.
    Returns the content of the canvas as a string and does *not* print it.
    """
    pass

class Sphere():
  def __init__(self, origin, radius, color):
    """
    Initialisation method for Sphere class
    Expects the origin as an arrays in the form of [x, y, z].
    Radius is the radius of the sphere.
    Color is the color the triangle is drawn in.
    """
    pass

class Triangle():
  def __init__(self, a, b, c, color):
    """
    Initialisation method for the Triangle class
    Expects points as arrays in the form of [x, y, z]. Color is the color the triangle is drawn in.
    """
    pass
Computer, Programm, Programmieren, Programmierung, Informatik, Python
2 Antworten
Einzigartiger Name + Dateiendung erkennen (PHP)?

Ich habe folgenden Code:

<?php
     if(isset($_FILES['image'])){
      $errors= array();
      $uniquesavename = time().uniqid(rand());
      $file_name = $uniquesavename . ".pdf";
      $file_size = $_FILES['image']['size'];
      $file_tmp = $_FILES['image']['tmp_name'];
      $file_type = $_FILES['image']['type'];
      $file_url = "https://meine-domain.com/uploads/" . $file_name;
      $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));

      $extensions= array("pdf", "png", "doc");

      if(in_array($file_ext,$extensions)=== false){
        $errors[]="<span>Bitte wähle eine .pdf, .png oder .doc-Datei!</span>";
      }

      if($file_size > 20000000) {
        $errors[]="<span>Deine Datei muss kleiner als 200 MB sein.</span>";
      }

      if(empty($errors)==true) {
        move_uploaded_file($file_tmp,"d/".$file_name);
        echo "<span>Du hast erfolgreich ein neues Dokument geteilt!</span>";
      } else {
        print_r($errors[0]);
      }
     }
   ?>

Ich möchte, dass bei $file_name = $uniquesavename . ".pdf"; ein einzigartiger String generiert wird (funktioniert bereits) und dass die Endung der Datei die hochgeladen wurde, hinzugefügt wird. Also z.B. wenn ich eine .doc-Datei hochlade, wird die Datei als 271sgt1721dee.doc auf meinem Server abgespeichert.

Kann die Datei eigentlich auch extern abgespeichert werden? z.B. auf einer externen Webseite/Server? Wenn ja, wie?

Ich hoffe ich habe hier keinen mit dieser Frage überfordert oder genervt, habt vielen Dank für eure Antworten bereits im Voraus!

Server, Computer, Programmieren, Programmierung, PHP
2 Antworten
C PROGRAMMIERUNG TESTAT BRAUCHE HILFE?

Da in diesem Semester im Hack@Home keine Arduinos und blinkenden Leds eingesetzt werden können, werden diese einfach simuliert, indem statt der blinkenden Leds Ausgaben auf der Konsole erfolgen. Die Bitoperationen werden auf die Variable char leds durchgeführt. Der Zustand der Bits kann mit der folgenden Funktion auf der Konsole ausgegeben werden:

// Zeichen in Bitstring konvertieren char *showbits(char c)

{ static char s[12]; // enthält die Bitfolge als String int i, m;

// i - Laufindex im String: 0...7

// m - Bitmaske zur Pruefung des Bits: 7...0

for(i = 0, m = 7; i < 8; i++, m--) s[i] = c & (1 << m) ? '1' : '0';

s[i] = '\0'; } return s;

Gehen Sie bei dieser Aufgabe so vor, dass Sie jede Aufgabe als eigene Funktion implementieren, die von main() aufgerufen wird.

a. Bit 4 ein- und ausschalten – Funktion auf1a()

Setzen Sie leds zunächst auf 0 und schalten Sie dann das Bit 4 mit den Operationen Bit-Oder und Bit-Und (| und &) in einer Schleife 5 mal ein und dann wieder aus. Geben Sie jeweils die Bitfolgen auf der Konsole aus.

b. Bit 3 und Bit 5 ein- und ausschalten – Funktion auf1b()

Setzen Sie leds auf 12910 bzw. 8116 und schalten Sie dann das Bit 3 und das Bit 5 mit den Bitoperationen | und & in einer Schleife 5 mal ein und dann wieder aus ohne den Zustand der anderen Bits zu beeinflussen. Geben Sie jeweils die Bitfolgen auf der Konsole aus.

c. „Lauflicht“ über alle 8 Bits – Funktion auf1c()

Setzen Sie zunächst leds auf 0. Dann laufen Sie in einer Schleife durch leds und

schalten jeweils 1 Bit beginnend mit Bit 0, dann Bit 1 usw. ein und wieder aus. Nutzen Sie dazu die Shift-Operation und zeigen Sie jeden Schritt auf der Konsole an.

d. Zufallszahlen als Bitmuster – Funktion auf1d()

Generieren Sie in einer Schleife 10 Zufallszahlen im Bereich von 0 bis 255 und stellen Sie diese als Bitmuster auf der Konsole dar.

e. Zeichen als Bitmuster – Funktion auf1e()

Lesen Sie von der Konsole einen String ein und geben Sie den String Zeichen für Zeichen als Bitmuster auf der Konsole aus.

Computer, Studium, Technik, Programmieren, Programmierung, C Programmierung, Informatik, Programmiersprache, Technologie, C-Programmieren, C Programmiersprache
1 Antwort
Wie markiert man Anführungszeichen?
Hallo zusammen, wie behebe ich den Fehler? 

Muss ich die Anführungszeichen maskieren, nur wie mache ich das? 


Fehlermeldung:

error: expected ',' or ';' before 'bme'
char INSERT_SQL[] = "INSERT INTO Wetterdaten (Temperatur , Luftfeuchtigkeit ,Luftdruck , Himmelstemperatur) VALUES ('"bme.readTemperature()"','"bme.readHumidity()"','"bme.readPressure() / 100.0F"','"mlx.readObjectTempC()"')";



Code:

char INSERT_SQL[] = "INSERT INTO Wetterdaten (Temperatur , Luftfeuchtigkeit ,Luftdruck , Himmelstemperatur) VALUES ('"bme.readTemperature()"','"bme.readHumidity()"','"bme.readPressure() / 100.0F"','"mlx.readObjectTempC()"')";


WiFiClient client;              
MySQL_Connection conn(&client);
MySQL_Cursor* cursor;

float Temperatur,Luftfeuchtigkeit,Luftdruck,Himmelstemperatur;


void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  mlx.begin();

  // create MySQL cursor object
  cursor = new MySQL_Cursor(&conn);


}

void loop() {

   Temperatur = bme.readTemperature();
   Luftfeuchtigkeit = bme.readHumidity();
   Luftdruck = bme.readPressure() / 100.0F;

   Himmelstemperatur = mlx.readObjectTempC();

  
  
  if (conn.connect(server_addr, 3306, user, passwordDB))
  {
     Serial.println("OK.");
    cursor->execute(INSERT_SQL);
  }  
  else
  {
    Serial.println("FAILED.");

  }

}


Computer, sql, Programmierung, arduino, Datenbank
3 Antworten
Java: Cannot make a static reference?

Ich habe heute damit angefangen wieder Minecraft Bukkit Plugins (1.15.2) zu schreiben. Jezt habe ich ein kleines Plugin geschrieben, aber da ich noch Anfänger darin bin Minecraft Plugins zu schreiben, habe ich jezt einenen Fehler im Code.

Cannot make a static reference to the non-static method sendMessage(String) from the Type CommandSender

Ich würde gerne wissen was da nicht stimmt.

Danke im Voraus! Der Code:

package main.Bukkit.plugin.mcp;

import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import com.mojang.brigadier.Command;

public class Plugin extends JavaPlugin {
   public String PluginName=this.getDescription().getName();
   public String PluginVers=this.getDescription().getVersion();

   public void onEnable(String[] args) {

      System.out.println("&f[&5"+PluginName+"&f] &aPlugin gestartet! Version: "+PluginVers);
   }

   public void onDisable(String[] args) {
      System.out.println("&f[&5"+PluginName+"&f] &aPlugin ausgeschaltet!");
   }

   @SuppressWarnings("rawtypes")
   public boolean onCommand(CommandSender sender, Command command, String label, String[] args){

      Player player=null;
      if(sender instanceof Player) {
         player=(Player) sender;
      }

      if(((CommandSender) command).getName().equalsIgnoreCase("gesundheit")) {
         if(player==null) {
            return true;
         } else {
            Player.sendMessage(getDescription().getAuthors().get(0));
            return true;
         }
      }


   }
}
PC, Computer, Software, Programmieren, Java, Programmierung, Minecraft, Informatik, minecraftserver
3 Antworten
Wie programmiert man einen virtuellen 3D-Raum ohne Game Engine?

Heutzutage haben kleinere Entwickler den Vorteil, dass es Game Engines gibt, die einen den großteil der eigentlichen Arbeit abnehmen und bereits beim starten eines neuen Projektes einen leeren und fertigen 3D Raum anzeigen, wo Sie nur noch ihre mit Blender z.b. modelierten Objekte reinplatzieren müssen und simple Script Dateien programmieren müssen um die reinplatzierten Objekte aufgaben zu geben. Wie das bewegen auf Koordinaten sobald der Spieler W,A,S,D benutzt. Dann braucht man das "Spiel" nur noch exportieren und man hat eine ausführbare .exe datei die einen 3D Raum beinhaltet mit einem objekt das man steuern kann.

Aber das was mich interessiert ist, wie genau macht man den eigentlich den leeren Raum den es bereits schon immer als Vorlage gibt bei Game Engiens wie Unity oder Unreal ENgine? Allein Blender um überhaupt die 3D Modelle zu machen ist ja schon selber ein vorgefertigter 3D Raum der als Werkzeug dient um Objekte zu modellieren!

Also wie programmiert man eigentlich überhaupt denn 3D Raum den man überhaupt zuerst braucht um darauf dann ein spiel bauen zu können?

Um das ganze zu verbildlichen:

Das hier ist ein 3D Raum worin man sich frei umschauen kann und das jeder hat der ein neuen und Leeren Projekt startet in einer Engine wie Unity:

Aber wie macht man denn überhaupt den vorgefertigten 3D Raum / die eigentliche Scenen-Ansicht die man im Editor bereits von Unity hat?

Benutzt man dafür ein Visual Studio-Forms Projekt um überhaupt einen 3D Raum aus dem Nichts zu erschaffen oder wie macht man den eigentlichen leeren 3D Raum überhaupt indem dann später erst alles stattfinden kann?

Wie programmiert man einen virtuellen 3D-Raum ohne Game Engine?
Computer, Technik, programmierer, Programmieren, Programmierung, Programmiersprache, Technologie, Unity 3D, Visual Studio, Unity, Unreal Engine, Unreal Engine 4, Spiele und Gaming
4 Antworten
Python wie löse 'NoneType' object is not subscriptable?

Hallo!

Ich schreibe ein kleines Pythonprogramm, das als Web Crawler fungieren soll.Leider erhalte ich in Zeile 36 ein Fehler:

  brand = make_rating_sp[0].img["title"].title()
TypeError: 'NoneType' object is not subscriptable

Leider, finde ich keine Lösung. Wie könnte ich diesen Fehler lösen? Danke im Voraus!

make_rating_sp[0].img is None.

from bs4 import BeautifulSoup as soup  # HTML data structure
from urllib.request import urlopen as uReq  # Web client

# URl to web scrap from.
# in this example we web scrap graphics cards from Newegg.com
page_url = "http://www.newegg.com/Product/ProductList.aspx?Submit=ENE&N=-1&IsNodeId=1&Description=GTX&bop=And&Page=1&PageSize=36&order=BESTMATCH"

# opens the connection and downloads html page from url
uClient = uReq(page_url)

# parses html into a soup data structure to traverse html
# as if it were a json data type.
page_soup = soup(uClient.read(), "html.parser")
uClient.close()

# finds each product from the store page
containers = page_soup.findAll("div", {"class": "item-container"})

# name the output file to write to local disk
out_filename = "graphics_cards.csv"
# header of csv file to be written
headers = "brand,product_name,shipping \n"

# opens file, and writes headers
f = open(out_filename, "w")
f.write(headers)

# loops over each product and grabs attributes about
# each product
for container in containers:
    # Finds all link tags "a" from within the first div.
    make_rating_sp = container.div.select("a")

    # Grabs the title from the image title attribute
    # Then does proper casing using .title()
    brand = make_rating_sp[0].img["title"].title()

    # Grabs the text within the second "(a)" tag from within
    # the list of queries.
    product_name = container.div.select("a")[2].text

    # Grabs the product shipping information by searching
    # all lists with the class "price-ship".
    # Then cleans the text of white space with strip()
    # Cleans the strip of "Shipping $" if it exists to just get number
    shipping = container.findAll("li", {"class": "price-ship"})[0].text.strip().replace("$", "").replace(" Shipping", "")

    # prints the dataset to console
    print("brand: " + brand + "\n")
    print("product_name: " + product_name + "\n")
    print("shipping: " + shipping + "\n")

    # writes the dataset to file
    f.write(brand + ", " + product_name.replace(",", "|") + ", " + shipping + "\n")

f.close()  # Close the file
Programmieren, Programmierung, Informatik, Python, python-3
1 Antwort

Meistgelesene Fragen zum Thema Programmierung