• Как правильно спланировать обучение?

    @whatislov
    вопрос к +- опытным людям

    Человек я неопытный, опыта работы в какой-либо области IT пока не имею, но хочу поделиться своим мнением.
    смогу ли я адекватно совмещать учёбу в вузе и учёбу фронтенду?

    На сколько знаю максимальное количество пар может быть - четыре(это 6 часов занятий + перерывы минут по 10-20 + время на дорогу в вуз/с вуза). Итого получаем примерно 8 часов в день уйдет на занятия в вузе в худшем случае и все равно остается время на самообучение. Но не будем забывать про дни, когда бывает 2 пары(3 часа занятий), тогда останется время даже на прогулку.
    Именно поэтому мне кажется возможно совмещать без проблем. У меня например, получалось совмещать университет, написание статей и выполнение задач на фрилансе. Занятия конечно пропускал, но было некритично.
    В итоге все зависит от тебя(как бы банально это не было). Есть примеры людей, которые совмещают учебу и работу, а бывают люди которые не успевают ничего не занимаясь ничем.
    И стоит ли вообще сейчас смотреть на фронт новичку?

    Если тебе это интересно, то однозначно да. Тем более ты уже имеешь какие-то знания в этой области, немного подучишься и будешь хорошим спецом.
    Ответ написан
    Комментировать
  • Как решить эту задачку?

    @whatislov
    У меня как-то так получилось. Немного доработал условие, чтобы интереснее было.
    Смысл программы:
    Монстры находятся в списке, список каждую итерацию сортируется(по убыванию жизней). У охотника имеется какое-то количество патрон и он имеет урон наносимый за один выстрел(сколько за один выстрел отнимаем жизней у монстра). Охотник делает выстрел и от жизни самого "жирного" монстра(который всегда будет находиться на 0 позиции списка) отнимается урон охотника. После чего делается проверка на количество жизней монстра, если их меньше 0, то удаляем монстра из списка и выводим сообщение о том, что он побежден.
    Если у охотника остаются патроны и все монстры побеждены(список монстров пуст), то охотник победил, иначе победили монстры(патронов у охотника нет, а список не пуст).
    Код конечно некрасивый и скорее все неэффективный(из-за постоянной сортировки списка монстров), так как сам ещё учусь, но может Вам поможет. С радостью приму советы по коду.

    Файл Monster.java
    class Monster implements Comparable<Monster>{
    	private String nameMonster;
    	//количество жизней монстра
    	private int health;
    	
    	public Monster(int health){
    		nameMonster = "unknown";
    		this.health = health;
    	}
    	
    	public Monster(String name, int health){
    		nameMonster = name;
    		this.health = health;
    	}
    	
    	public void setHealth(int health){
    		this.health = health;
    	}
    	
    	public String getName(){
    		return nameMonster;
    	}
    	
    	public int getHealth(){
    		return health;
    	}
    	
    	public int compareTo(Monster m){
    		return m.getHealth() - this.health;
    	}
    	
    	@Override
    	public String toString(){
    		return "Имя: " + nameMonster + ", жизни: " + health;
    	}
    }


    Файл Hunter.java
    class Hunter{
    	private String nameHunter;
    	// количество патрон
    	private int numOfBullets;
    	// урон наносимый за один выстрел
    	private int damage;
    	
    	public Hunter(int numOfBullets){
    		this.numOfBullets = numOfBullets;
    	}
    	
    	public Hunter(String nameHunter, int numOfBullets){
    		this.nameHunter = nameHunter;
    		this.numOfBullets = numOfBullets;
    	}
    	
    	public Hunter(String nameHunter, int numOfBullets, int damage){
    		this.nameHunter = nameHunter;
    		this.numOfBullets = numOfBullets;
    		this.damage = damage;
    	}
    	
    	public int shot(){
    		numOfBullets--;
    		System.out.println("патрон осталось: " + numOfBullets);
    		return damage;
    	}
    	
    	public int getNumOfBullets(){
    		return numOfBullets;
    	}
    	
    	@Override
    	public String toString(){
    		return "Охотник:" + nameHunter + "\nКоличество патрон:" + numOfBullets + "\n";
    	}
    }


    Файл MainClass.java
    import java.util.ArrayList;
    import java.util.Collections;
    
    public class MainClass{
    	public static void main(String[] args){
    		//объект класса охотник
    		Hunter hunter = new Hunter("Sebastian", 5, 5);
    		
    		//список монстров
    		ArrayList<Monster> listMonster = new ArrayList<>();
    		
    		listMonster.add(new Monster("Скелет", (int)(((Math.random() * (10 - 1)) + 1))));
    		listMonster.add(new Monster("Призрак", (int)(((Math.random() * (10 - 1)) + 1))));
    		listMonster.add(new Monster("Зомби", (int)(((Math.random() * (10 - 1)) + 1))));
    		
    		System.out.println(hunter);
    		
    		while(hunter.getNumOfBullets() > 0){
    			Collections.sort(listMonster);
    			
    			System.out.println(listMonster);
    			
    			//всегда будем стрелять в самого жирного монстра
    			Monster monster = listMonster.get(0);
    			
    			System.out.print("Охотник выстрелил в " + monster.getName() + ", ");
    			monster.setHealth(monster.getHealth() - hunter.shot());
    				
    			// если у монстра не осталось жизней, то удаляем его из списка	
    			if(monster.getHealth() <= 0){
    				System.out.println("Монстр " + monster.getName() + " убит");
    				listMonster.remove(monster);
    			}		
    			
    			// если список пуст, то все монстры убиты
    			if(listMonster.isEmpty()){
    				System.out.println("Все монстры убиты");
    				return;
    			}	
    		}	
    		//если все патроны потрачены, то охотник проиграл
    		System.out.println("Монстры победили, охотнику не хватило патрон");		
    	}
    }
    Ответ написан
  • Как подписать значения оси X, на компоненте Chart?

    @whatislov Автор вопроса
    Приветствую! Кому интересно, смог так решить вопрос.
    //вывод марки авто на ось X
                string[] autos = { "Chevrolet", "BMW", "Hyundai", "Citroen", "Hyundai", "Ford", "Honda", "Daewoo", "Chevrolet", "Honda", "Ford", "Volvo", "Chery", "BMW", "Geely" };
                int startOffset = -2;
                int endOffset = 2;
                foreach (string auto in autos)
                {
                    CustomLabel autoLabel = new CustomLabel(startOffset, endOffset, auto, 0, LabelMarkStyle.None);
                    chart1.ChartAreas[0].AxisX.CustomLabels.Add(autoLabel);
                    startOffset = startOffset + 1;
                    endOffset = endOffset + 1;
                }
                chart1.ChartAreas[0].AxisX.LabelStyle.Angle = -90;
    Ответ написан
    Комментировать
  • Почему при выборе количества товара, в зависимости от того, что не выберешь, все равно добавляется один товар?

    @whatislov Автор вопроса
    Исправил путем добавления этого кода
    add_filter( 'woocommerce_loop_add_to_cart_link', 'quantity_inputs_for_loop_ajax_add_to_cart', 10, 2 );
    function quantity_inputs_for_loop_ajax_add_to_cart( $html, $product ) {
        if ( $product && $product->is_type( 'simple' ) && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually() ) {
            // Get the necessary classes
            $class = implode( ' ', array_filter( array(
                'button',
                'product_type_' . $product->get_type(),
                $product->is_purchasable() && $product->is_in_stock() ? 'add_to_cart_button' : '',
                $product->supports( 'ajax_add_to_cart' ) ? 'ajax_add_to_cart' : '',
            ) ) );
    
            // Embedding the quantity field to Ajax add to cart button
            $html = sprintf( '%s<a rel="nofollow" href="%s" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="%s">%s</a>',
                woocommerce_quantity_input( array(), $product, false ),
                esc_url( $product->add_to_cart_url() ),
                esc_attr( isset( $quantity ) ? $quantity : 1 ),
                esc_attr( $product->get_id() ),
                esc_attr( $product->get_sku() ),
                esc_attr( isset( $class ) ? $class : 'button' ),
                esc_html( $product->add_to_cart_text() )
            );
        }
        return $html;
    }
    
    add_action( 'wp_footer' , 'archives_quantity_fields_script' );
    function archives_quantity_fields_script(){
        ?>
        <script type='text/javascript'>
            jQuery(function($){
                // Update data-quantity
                $(document.body).on('click input', 'input.qty', function() {
                    $(this).parent().parent().find('a.ajax_add_to_cart').attr('data-quantity', $(this).val());
    
                    // (optional) Removing other previous "view cart" buttons
                
                });
            });
        </script>
        <?php
    }
    Ответ написан
    Комментировать